Software Engineer II, Android
Job description
About the role
At Duolingo, we are driven by a singular mission: to develop the best education in the world and make it universally available. This is a large-scale ambition that requires talented individuals who thrive on solving hard technical problems and making data-driven decisions for a global user base. As an Android engineer on the Subscriber Conversion team, you will work at the intersection of product, design, and backend to own complex features that directly influence learner engagement and conversion. You will develop, release, and maintain native Android applications in Kotlin, balancing rapid experimentation with long-term maintainability. The role involves significant collaboration, mentorship, and clear communication across technical and non-technical stakeholders. You will be responsible for ensuring that new features are reliable, performant, and scalable for our half a billion learners while actively contributing to an experimental culture that runs dozens of concurrent A/B tests. If you are passionate about building educational technology that impacts millions, this role offers the opportunity to shape the learning experience for users around the world.
What you'll do
You will collaborate closely with product design and backend teams to define and deliver Android features that move core conversion metrics across the Duolingo mobile ecosystem. This includes developing and maintaining native Android application features using Kotlin with a strong focus on high quality, scalability, and performance. You will design and implement clean, maintainable APIs that abstract business logic and simplify UI integration across the app, ensuring that features can be rapidly iterated upon. Ownership of technical decisions and architecture from conception through launch and post-launch iteration is a key responsibility, as you balance short-term optimizations with long-term investments in infrastructure and developer experience.
A core part of this role is writing comprehensive unit tests and production code that is easy to maintain, review, and extend over time. You will mentor junior engineers, provide technical direction, and raise the overall engineering bar by setting and enforcing coding standards, best practices, and code review expectations. You will analyze experiment results and work closely with data analysts to iterate quickly on high-traffic user flows, translating insights into technical improvements. The role also involves clear communication of progress, risks, and tradeoffs to both technical and non-technical stakeholders during planning and reviews. Additional responsibilities include contributing to on-call duties and incident response to ensure high availability, participating in scoping and estimation sessions, and exploring new Android technologies, libraries, and patterns to future-proof the codebase. You will also ensure that all implementations comply with privacy, security, and accessibility guidelines relevant to a global audience, and support the release process by writing release notes, verifying builds, and monitoring key metrics after deployment.
Requirements
To be considered for this role, you must hold a Bachelor's degree in Computer Science or a related technical field. You should have demonstrated programming experience in Kotlin on Android, with a strong understanding of Android development fundamentals. Strong verbal and written communication skills are essential for effective collaboration with both technical and non-technical stakeholders. You must be able to mentor less experienced engineers and set technical direction within your team, helping to elevate the overall engineering standard. Experience designing clean, maintainable, and well-documented APIs is required, along with comfort working in a fast-paced, experimental environment that relies heavily on A/B testing. A proven track record of writing unit tests and testable production-grade code is necessary, as is self-direction in learning new techniques and actively mentoring others to improve team capabilities.
Nice to have qualifications include strong experience building reactive Android user interfaces with modern architecture patterns, a history of contributing to open source projects or publishing reusable libraries, and experience with continuous integration and automated testing frameworks on Android. Backgrounds in education, language learning, or consumer-facing products can be advantageous, as can familiarity with payment systems, subscription models, and monetization concepts. Experience working with analytics platforms and interpreting large-scale experiment results is also valuable.
Compensation and location
This is a full-time position based in Pittsburgh, PA, and requires employment authorization for U.S. work. Visa sponsorship may be available for qualified candidates. The compensation range for this role is $153,000 to $207,000 USD, reflecting factors such as work experience, skills, and internal peer comparisons. Equity compensation is also part of the total package. The offered salary and benefits details are subject to change, and candidates are encouraged to discuss specific compensation components with their recruiter.
Benefits and next steps
Duolingo provides a range of benefits focused on the holistic well-being of our employees. You can learn more about these benefits on our careers site. If you need accommodations during the interview process, please contact accommodations@duolingo.com, and we will do our best to support you. Duolingo is an Equal Employment Opportunity employer and does not discriminate based on race, religion, color, national origin, gender, sexual orientation, gender identity, gender expression, age, disability, veteran status, or other legally protected status. If you are passionate about education and eager to make a meaningful impact at scale, we encourage you to apply and take the next step in your career with Duolingo.