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.
The technical interview process
Our recruiters review every single resume with their own eyes. If the team determines that you are a qualified candidate, a recruiter will reach out to you directly. This recruiter will be your primary point of contact throughout the interview process – so feel free to reach out to them at any time.
After you connect with a recruiter, the engineering interview process consists of two phases:
- Pre-onsite sessions
- A virtual onsite, which consists of multiple interviews (this can be split across two days)
Each role at Duolingo has its own unique interview plan. Your recruiter will share specifics during your initial touchpoint. In the meantime, check out the overview of our interview types below:
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! This interview is conducted using pseudo code. |
Pair programming interview | Python*, Java Swift for iOS engineer roles Kotlin for Android engineer roles |
Types of interview sessions
Online coding task
Depending on the role, you may be asked to do an asynchronous algorithmic coding task. You will write code in one of our accepted programming languages. 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 only given for 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
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.
Time allotted: 75 minutes
Code review
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 reviewing code is new to you, don't worry! We're here to help you navigate the session. We offer specialized versions of this interview for Backend, iOS, and Android candidates.
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
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
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!
- Sammi Siegel, senior software engineer
- Fabio Lessa, engineering manager
- Basim Baig, software engineering manager
- Alina Abidi, software engineer