All engineering interviews are conducted virtually.

Duolingo is the most popular language-learning app in the world, thanks to the incredible people working behind the scenes. Our software engineers are passionate about accessibility to education, data-driven decision making, and finding elegant solutions to cross-functional problems.

We’re here to walk you through the engineering interview process because we believe in setting candidates up for success! Visit our careers page to see all current openings.

A stack of books. An open laptop shows a waving Duo on screen.

The technical interview process

After a resume review, you’ll be paired with one of our in-house recruiters. In the initial phone interview, your recruiter will ask questions to better understand your background, your skillset, and your personal connection to Duolingo. Additionally, your recruiter will be your main point of contact throughout the full interview process – so as questions arise, feel free to go directly to them.

The engineering interview process consists of two phases: (1) a set of virtual interviews followed by (2) a virtual “onsite". Our different types of technical interviews are outlined below, but no one role has all of these interviews in their process (again, your recruiter will outline your full interview process during your initial conversation). See the table below for a full breakdown of accepted programming languages.

At the end of the interview, you are always welcome to ask the interviewer any questions you have about what it’s like to work at Duolingo.

Accepted programming languages

Interview type Programming languages
Technical video interview Python, Java, JavaScript, Kotlin, Swift
Online coding task
University/New Grad only
Python, Java, JavaScript
Whiteboard interview Any
Pair programming interview Python*, Java
Swift for iOS engineer roles
Kotlin for Android engineer roles
*If your preferred interviewing language is neither Python nor Java, don't fret! It's helpful to be familiar with reading and writing either Python or Java, but we're here to help with language-specific details you may need when you're coding.

Types of pre-onsite interview sessions

Online coding task

Depending on the role, you may be asked to do an algorithmic coding task in HackerRank. You will write code in one of our accepted programming languages (see table above). Your code will be automatically graded based on accuracy of the output and time-efficiency. The time to complete the task varies per role, but it’ll take an hour at most. This session is typically given for our University positions.

Time allotted: 60 minutes

Technical video interview

You will work with a Duolingo engineer on an algorithmic coding task, using HackerRank CodePair as your live development environment. You will write code in one of our accepted programming languages.

Time allotted: 60 minutes

Types of virtual on-site sessions

Code review interview

You'll identify issues and suggest improvements to a set of code changes. Similar to the Pair Programming interview, we'd like to see how well you work with improving existing code. If code reviewing or a code review interview is new to you, don't worry! We're here to help you navigate the session.

Time allotted: 60 minutes

Whiteboard interview

You will work with a Duolingo engineer on an algorithmic problem and write the solution on a virtual whiteboard. This interview normally requires more analytical thinking and less coding than technical video interviews. You can write the code in whichever programming language you prefer (we aren’t too picky with the syntax since we can’t compile a whiteboard). If the interviewer is not familiar with the language you’ll use, make sure you're explaining your code and your reasoning—they will be interested in the way you communicate your approach to the problem, too!

Time allotted: 60 minutes

Pair Programming

You will work with a Duolingo engineer on a coding problem in a codebase that is similar to what we use in production. We want you to feel what it would be like to be an engineer at Duolingo! The main goal of our Pair Programming interview is to see if you can work with code written by other engineers and learn on your feet. You will write code in one of our accepted programming languages. The interview will be conducted using Visual Studio Code.

Time allotted: 75 minutes

Design interview

Design interviews are high-level discussions on how to architect a solution. We're not necessarily looking for one particular solution but are more interested in how you approach the problem. This interview is typically administered for industry roles such as Backend, Android, iOS, and Web.

Time allotted: 60 minutes

Brainstorming interview

Some roles will have interviews where you will have high-level discussions about an engineering problem with a Duolingo engineer. For example, machine learning engineers will discuss machine learning approaches and problem framing. In these interviews, we're interested in how you reason about open-ended engineering problems.

Time allotted: 60 minutes

woman_university

Preparing for your interview

  • Practice coding questions: Brush up on your problem solving and coding skills. Be familiar with common data structures and programming techniques, and be able to discuss big-O notation complexity of your approaches.
  • Prepare your space for video interviews: Make sure you’re in a quiet location with a good internet connection for video interviews.
  • Prepare questions to ask your interviewers: We strive to make Duolingo a great place to work for everyone, and we want to make sure that you think Duolingo is a good fit for your career. You’ll have time to ask questions to your interviewers, so you can use that time to get to know more about the things that are important for you to make a well-informed decision. (Our employee interviews are a great resource if you're unsure what questions to ask!)
  • Let the recruiter know if you need any specific accommodations: We want you to be able to perform at your best!

During your interview

  • Think out loud: Share your reasoning with the interviewer. We are interested in how you approach a problem.
  • Be pragmatic: All interview questions can be finished within the allotted time. Propose a solution for which you can actually write code in the given time. Start with the simplest approach, then work on optimizing (you don't necessarily need to come up with the optimal answer as the first thing you say).
  • Work with your interviewer: We are not here to trick you! Interviewers will give you hints if you get stuck.
  • Ask clarifying questions: Make sure you fully understand the question and that you’re not enlarging the scope of the problem.
  • Think about edge cases: Make sure your code account will work as expected for all accepted input.

We are always looking for talented and passionate engineers to join Duolingo – apply today!

💡 Check out these interviews with engineering Duos!