Nailing the Software Engineering Interview at Codecademy

Lindsay Landry
Codecademy Engineering
7 min readOct 1, 2020

At Codecademy we want to set up job candidates for success from the very beginning. Two of the most common questions candidates have when interviewing for a Software Engineering role at Codecademy are around the interview process itself and how leveling is determined. We want all candidates to have as much information as possible to do well during the interview process and have an opportunity to get to know the company regardless of whether they decide to join us. We want candidates to have an excellent experience and really get to know the company regardless of whether it results in us extending an offer.

In this article we will share the details of the interview process here at Codecademy.

Preparing for the Interview

Our recruiting team sends detailed information to all candidates before their technical screen and onsite interview. The information we provide comes directly from our engineering team and the interviewers you will be meeting with throughout the process. We highly encourage candidates to read through these details and be prepared to have conversations around the information we share. It’s also important that you spend some time with our product, because we’ll ask you about it throughout the interview process. The information we share is also constantly updated and refreshed based on feedback we receive from candidates and our own employees.

The Interview Process

Our interview process consists of four major steps: the recruiter phone screen, the technical screen, an onsite interview, and finally a reference check.

Recruiter Phone Screen

If you’re talking to a recruiter, we’ve already identified your resume and skills as aligning with our job description. The conversation with your recruiter primarily focuses on your experience as it pertains to the job description and seeks to establish that you are truly excited by our company and mission. The second part is just as important as the first. We know interviews take a lot of time and energy and we want to make sure that you’d be excited to join Codecademy if we were to make you an offer. This is a critical time for you to ask all the hard questions up front. Our recruiters can share lots of details with you about the type of company and culture we are and are not.

Passing

If your experience is relevant to the role we are hiring and we mutually feel like you’re excited by our company and mission, you’ll advance to the technical screen.

Technical Screen

We offer two options for our technical screen: a technical phone screen via our partner Karat, or, for frontend and backend roles, we provide a take-home project. We think it’s important that both options are available to our candidates to accommodate varying schedules and personal preferences. The Karat interview can be completed in a shorter amount of time, while the take-home provides more flexibility for the candidate to complete it over the span of several days.

Currently our Infrastructure/DevOps roles do not provide a take-home project. We hope to provide one in the future.

Karat Phone Screen

Karat is a tech company that specializes in technical phone and video screens. You will program your solution in real-time while the interviewer observes and gives feedback. Their technical questions are geared toward the position for which you are applying. The screen typically takes about an hour to complete.

Frontend/Backend Take-home projects

Like the phone screen, our take-home projects are geared toward either frontend or backend software development. The difference is that you will have more time to complete it, and you can take multiple days to complete an answer. On the other side of this, you may have to put more time and effort into completing this project.

The frontend take-home in particular is specific to our business. If you are curious about the type of frontend work to expect here, consider choosing this project for your technical screen.

Passing

Both assessments focus on your ability to problem solve and write code. We want to see that you are able to structure your code in a readable, efficient format, and document it well. If you find yourself stuck, ask for help from the interviewer or recruiter. You are also free to google We encourage you to ask for help; it’s something all of us do in our day-to-day work. In fact, we have chosen not to extend offers to candidates who have shown a lack of willingness to collaborate with others. It’s important to our team culture that we work together and not in silos — we’ll take a strong collaborator over a lone wolf every time.

Onsite Interview

The onsite interview consists of a number of different modules: another coding interview, a design and architecture session, an interview with a product manager or designer, and finally a manager interview. We know how hard it is to take time off to interview, so we try to limit our process to a half day. If you need to split up your interview session over multiple days, we are happy to accommodate you. Also, if you do end up having some extra time, our VP of engineering is always happy to meet with candidates, or to introduce you to more folks who you might end up working with.

Coding Module

The technical screen focused on your ability to solve a software problem that is targeted toward the type of position for which you are applying. In the onsite coding module, we collaborate with you on solving something much more specific to our business. We have different coding modules for frontend, backend, data, and dev ops. You’re free to use your favorite language to solve the coding challenge. Please share any preference with the recruiter before your onsite interview, so we can have everything set up for you in advance.

Passing

Similar to the technical screen, we are looking for you to collaborate with us and come up with an efficient, well-structured, and efficient solution. Continue to ask for help or use resources online to help you along the way. We don’t expect you to remember every library and API in your favorite language.

Design & Architecture Module

The design and architecture model focuses on your ability to devise a solution that is efficient, scalable and extensible. Depending on the role you are interviewing for, we offer a frontend, backend, and infrastructure architecture session. You will be asked to design something very similar to our business; we won’t ask you to design systems and interfaces that aren’t relevant to what we do.

Hint: We are a large content and learning management system that requires code execution for millions of people across web and mobile devices.

Passing

Ask clarifying questions. Be extremely detailed and specific in your decisions and answers. This is the time to collaborate with the interviewer and really make sure that they understand the reasoning behind your design decisions. There are many possible solutions to these challenges. Candidates who can’t explain in great depth how their solution solves for the problem will have a harder time passing this module. This module is also one of the most important ones in determining leveling (a bit more about that later). Treat this as you would treat a design conversation on the job and imagine you are trying to get buy-in from a more junior member of the team who might not have as much experience as yourself.

Product Manager or Design Module

The Product Manager (PM) or Design module focuses on your ability to collaborate with key stakeholders in the business. Most engineers will work closely with both functions throughout their time at Codecademy. This is going to focus on your ability to take a set of business requirements or a challenge we are facing and partner with the PM and Designer to devise a solution.

Passing

Ask questions to really understand the problem, think through how you would start implementing a project within the space, approach the problem from a feature mindset over a technical mindset, and don’t get too into the weeds when it comes to implementation.

Manager Module

We value collaboration, learning, feedback, and teaching at Codecademy, and this part of the interview assesses how you have contributed and would contribute to those values if you were to join us. Most importantly, be yourself. Just like we were assessing whether or not Codecademy is a mutual fit during the recruiter phone interview, the same applies here. Not everyone aligns with our mission and values or how we work together, and that’s okay. We never want to force candidates into a working style that doesn’t suit them.

Passing

Be sure to ask questions about your responsibilities as an engineer at Codecademy. Make sure your working style and goals align with ours.

We also encourage you to be very specific with examples of previous experiences you have had. A good model to follow is the STAR method:

  • Situation
  • Task
  • Action
  • Result

For more details on the STAR method, follow this post.

Finally, we are looking for honest, introspective answers. Have some candor, be yourself, and you’ll do well in this section.

General Insights

For any of the modules, feel free to ask questions about our company, team, and product we make. Our managers in particular might be able to provide additional perspective.

Reference Check

If you pass the onsite interview, congratulations! You’ve moved onto reference checks! You will be asked to provide references from previous managers and coworkers. If all reference checks go well, you will likely receive a job offer. Now you can really celebrate!

We Are Learners

If you went through the interview process and you didn’t end up with a job offer in hand, don’t feel discouraged. We encourage you to reflect on mistakes you may have made, and things you still need to learn and improve upon. We also encourage you to apply again in a year if you want to go for the same role in the future.

Up Next

In Part 2 of this series (currently in progress), we will discuss Codecademy’s engineering levels and engineering competencies. In the meantime, feel free to read up on our competencies, which are available here.

Thinking about applying for a position? View all our open careers at https://www.codecademy.com/about/careers. Arm yourself with knowledge, and good luck!

--

--