At Duolingo, we pride ourselves on hiring individuals who are passionate about our mission and want to use their expertise to change the world for the better. To give you a peek into what it’s like working for Duolingo, we’ve asked our team members to share more about their experience at the company! Today, meet Julie, an iOS engineer!
Why did you choose Duolingo?
Three years ago I was a rising senior in college, interning for a big tech company during the height of the pandemic. Even though I liked my team and our product, I couldn’t help but feel I was constantly searching for something else—a deeper sense of purpose and a way to contribute to the world.
Duolingo was a match made in heaven. I’ve always been drawn to education—I was a teaching assistant throughout high school and college. As an immigrant who once didn’t speak any English, I also empathized greatly with Duolingo’s mission. Language is a gift that not only helps people connect, but also unlocks doors to new opportunities.
I knew I wanted to work here almost from the moment I met my recruiter. Everyone emanated such strong passion for their work and the mission, and they all seemed genuinely engaged not just with company initiatives, but also with each other. Multiple people described Duolingo as a community, where coworkers are more than faces, and many of them become your friends. I was also drawn to the emphasis on individual impact: Every person’s ideas and expertise are valued, and even a new grad could make a tangible difference to our millions of learners.
What team do you work on? What excites you about what your team is doing?
I’m on the Personalized Sessions team in the Learning R&D area! I can’t say too much right now, but we’re currently working on some *very* exciting projects to improve how we target grammatical weaknesses on an individual basis.
What are some of the technical challenges you face as an Engineer?
We are still a relatively small company, so we have to be efficient with our time. It’s fairly straightforward to develop a cool feature for one course—like adding more free-response exercise types—but it’s a lot harder to scale that to 100+ courses. That level of complexity warrants more content work, which means we then need more coordinators to manage content development, and also requires a lot of engineering support to develop new tooling and build out more backend infrastructure. Every time we make an architectural decision, we also have to think ahead many years into the future: What assumptions are we making, and what upcoming features could challenge those assumptions? Are there any features we’ve put off for years because of technical complexity, that we could now make feasible with some careful design choices?
Another issue we wrestle with a lot is the question of ROI: How can we maximize impact with our limited time? There are always optimizations we can make, and workflows we can improve with better tooling, but when is it worth it? For instance, in the interest of scaling, we want to leverage automatic generation whenever possible, but that often means the logic behind that is sourced from a code file. If any content writers want to tweak the logic, they would have to ask an engineer to make the change for them. These changes don’t take long to make, but they add up cumulatively over time—yet the one-time cost of building a pipeline for non-engineers is also heavy. We wrestle with fascinating dilemmas like these every day, and finding the right balance is crucial to our success.
What is your favorite part about being an iOS engineer at Duolingo?
We have great internal tools! Running an A/B test is as easy as filling out a quick form online and adding a one-line definition in any codebase—including iOS. I also particularly love how easy it is to do end to end testing: our backend staging servers are near-perfect simulations of production environments, and there are client debug settings to specify which staging servers to route local traffic to.
In addition, I really enjoy the fact that we have a Client Architecture team whose sole responsibility is to improve the stability and testability of our client repos. In the two years I’ve been here, a lot of legacy code has been removed thanks to this team, and it’s made my life a lot easier as a result! The oldest parts of the Duolingo app were still written in Objective-C when I first joined, but now that code is almost gone.
What are three words that describe Duolingo’s culture?
Driven, tight-knit, and compassionate
If you could have lunch with one Duolingo character- who would it be and why?
Falstaff, because I’m curious what food bears can eat without opposable thumbs.