Name: Joanne Chevalier
Title: Full-Stack Engineer
How long she’s been at The Muse: 3 years
Tell us about your career journey: How did you end up working as a software engineer?
It all started when I was in high school. I grew up in Ivory Coast, and went to a private French school that offered an optional engineering class. They taught us how to code in Python on a Linux environment. It was the early 2000s and classes like that were not that common then, especially in Africa. I was so passionate about the class that I would code for fun at home.
What attracted you to work at The Muse? How did you know it would be a good fit?
I discovered The Muse late in my job search. The job search was very painful at first, especially for an expat who didn’t know the culture. It was also hard because companies want to hire for the long term and I only had a one-year visa.
Before an interview at a small startup, they sent me their Muse profile link and I found it amazing. I watched the videos and looked at the photos before going to the interview. It really made me think that the company culture was a good match for me and I really wanted that job. I didn’t get it. But I realized there were more jobs and cool companies on The Muse website, as well as a lot of advice that helped me understand more about how the hiring process works in the U.S. and what is expected from applicants.
One day I met an engineer whose wife was working at The Muse and she was hiring engineers! I got really excited when I got my first interview and I knew right away it would be a good fit. I not only loved the mission and the product, but the hiring process was so smooth and not stressful at all. The job description was exactly what I was looking for and the few people I met were so kind and respectful. My visa wasn’t an issue for the company, so I felt included even before getting an offer.
What are you responsible for as a software engineer at The Muse?
Being a software engineer at The Muse means developing new features, fixing bugs, and reviewing pull requests. But beyond that, I feel most responsible for the quality of what I deliver—from the code to the final product. I always keep our users in mind so when a product or UX decision does not seem right to me, I am vocal and question it. And as a more experienced engineer, I mentor junior engineers and try to make myself available to them as much as possible.
What does a normal day in your job look like?
I usually start by reading my emails and checking the status of our Jira board. It will give me an idea of what’s being worked on and which tickets are in review. I usually have some discussions going on from the previous day, via email, Slack, or directly in Jira tickets or pull requests. I then start reviewing new pull requests and make sure I don’t block anybody.
After that, I try to work on my personal goals for the quarter, but it’s not always easy, especially when we are approaching a deadline. In that case, I would go back to the ticket I was previously working on or pick up a new one.
Our engineering sprints are two weeks long. We have standup meetings everyday, and once per sprint we have a retrospective and demos of what was accomplished during those weeks. Sometimes we have backlog grooming sessions, where we point estimate new tickets that came in during the sprint.
What are the primary technologies that you use for tooling and development?
On my current project, the languages and frameworks I use on the back end are Python with Tornado. (On other projects, I’ve used Django.) On the front end we use TypeScript with React and Redux, and SCSS for styling. We have a Storybook style guide with all our shared UI components.
When starting a new project, we may decide it’s time to introduce new technologies. For example, we have started to use Django instead of Tornado on some projects, and we switched from CoffeeScript to TypeScript.
I personally still use Sublime Text to code, but everybody’s free to choose their favorite editor. Most people use VS Code and I remember having an engineer here who was using Emacs on a Linux environment.
Speaking of environments, all engineers have Macbook Pros, but installing Linux on your Macbook is possible.
We use Git for code versioning with Github; Datadog for infrastructure and application monitoring, logging and debugging; AWS for deployment and infrastructure; Jira for project tracking; Confluence and Google Docs for documentation; and Invision for design mockups.
How is the engineering team structured?
On the Engineering team we currently have three teams of application developers with three to four full-stack engineers each. We also have a data team and an infrastructure team. Each team has a product manager and works on projects the PM is responsible for. Team structures aren’t set in stone—teams can be reshuffled, and engineers are encouraged to speak up when they would like to switch teams or work on a different project.
We have several remote engineers—I became one myself a few months ago after 3 years in New York. Our conference rooms are well-equipped for video conferencing and the team is used to having remote engineers.
What is the software development process at The Muse?
Our Product team decides what to build and what is going to be worked on next. They work with the Design team to create mockups and prototypes. Engineers may be involved in the process to help understand what is feasible or not. We are always encouraged to question the decisions and to be more involved in product decisions.
It starts with sprint planning, where the product manager will list everything that will be worked on during the sprint. The team will then discuss the tickets and their complexity and the product manager will sort them in order of priority. Then, each engineer picks up the first ticket on the list. Once we are done working on a ticket, we open a pull request on Github and tag other engineers for review. We encourage people to tag engineers who know the most about that part of the codebase. If it is a frontend ticket on a repository that allows it, we also deploy a feature branch to get feedback from the design and product teams.
Once the pull request is approved by at least two engineers (and sometimes Design and Product), we merge it to staging and submit it to QA (Quality Assurance). When it is tested and validated by the owner of the ticket, we can merge to production. We usually wait to have a few tickets ready, but pushes to production are done quite frequently, sometimes several times a day.
What skills are essential to succeeding as an engineer at The Muse?
To succeed at The Muse you need to be curious and able to adapt easily. Technology changes quickly. When I joined The Muse I knew nothing about their stack.
I often hear that our engineers love to learn, which is another essential quality here. Don’t be afraid to pick up a ticket about something you absolutely know nothing about, even if that means spending weeks working on it. It’s a good opportunity to learn and work with a more experienced engineer who will share their knowledge.
Communication is also very important, especially being able to communicate well to our product team and to let people know when you are experiencing challenges.
What are you working on right now that excites or inspires you?
I recently joined a new team that’s working on improving the global search experience on The Muse. When I started here three years ago, everybody agreed that the global search on the website wasn’t great—but we never updated it. Now, it’s finally a priority and that is exciting for me. Everything we do to improve the user’s experience on the site makes me happy. This project will help companies get more visibility and help users get more relevant content.
What other teams or types of people do you interact with on a regular basis?
I work closely with the product and design teams. And when I’m on call, I sometimes get to talk to other teams that are experiencing bugs that prevent them from doing their jobs.
What do you value most about The Muse’s company culture? What sets it apart from other places you’ve worked?
What I value the most is the #NoAssholes core value. People here are genuinely kind and non-judgemental. On the engineering team, we have smart engineers who are always willing to help each other without judging, which is really valuable. As a woman engineer, I always feel included and respected, and my opinion is always valued—which has not always been the case in other places I’ve worked.
What advice do you have for software engineers applying to jobs at The Muse?
It is a bit cliché, but I would say come as you are! If you want to work in an inclusive and healthy environment, if you are curious and love to learn new things—and even if you don’t know our stack, but you are passionate about coding and willing to learn—The Muse is the right place for you.