Python Tooling at Mozilla
Speaker
Tadas Korris
Tadas Korris is a software engineer at Mozilla, currently working on the Sync Backend Storage team, which is responsible for safely and securely synchronizing browser data for millions of Firefox users. His work focuses on building reliable, privacy-preserving systems that users can trust with their most sensitive data.
Previously, Tadas worked on Mozilla’s Contextual Services team, where he contributed to the Merino service, which provides private, contextual suggestions while maintaining strong privacy guarantees. Across his roles, he has been a strong advocate for online privacy and security, with hands-on experience developing secure software throughout its lifecycle. Tadas presented at PyConLT in 2024, discussing the Merino service in detail.
Tadas is deeply engaged in the ethics of AI and emerging technologies and has given talks on the dangers of unchecked automation and the steps technologists can take to protect democratic institutions and social trust in tech. He has presented this work at Mozilla Festival 2025 in Barcelona, the IIA International Conference in Amsterdam, and various conferences in Canada.
Tadas was born to a Lithuanian-Canadian family in Toronto and grew up in Edmonton. He maintained close ties to the local Lithuanian community, learning the language and participating in cultural and community activities from an early age. He cherishes his Lithuanian heritage and has gotten quite good at making vegan versions of almost all Lithuanian dishes. His Močiute Emilija would be proud!
Before transitioning into software engineering, Tadas began his professional career as a classical musician. He earned both his Bachelor’s and Master’s degrees from the Manhattan School of Music in New York City. In 2018, he completed a diploma in Web and Software Development from the University of North Carolina and began working in the technology sector. He joined Mozilla in 2022 and continues to perform as a regular substitute musician in several orchestras.
Abstract
The tools and workflows we use as developers are often as important as the code we write. The beauty of the Python ecosystem is that there are many options to the types of linters, formatters, type checkers, testing frameworks, and security scanners we can choose. However, too many options can paralyze decision making and often we use sub-optimal tools just because we've used them before. Learn some lessons from the tooling we use for maintaining, testing, and deploying our Python code at Mozilla.
Description
Learn about our decision making process for evaluating internal tooling. It's never a linear path. We have never arrived at the optimal place where every part of our development toolchains or CI pipelines are perfect. However, it's important to evaluate your needs and also get feedback from other's experiences as your Python journey evolves. This short, informative session will discuss the bright stars in our tooling and what we've found works for some of our services.