Below are a couple of public talks I've given recently.
Continous Testing at Scale
You’ve built a new feature in your app that is ready ship. Or is it? How can you be sure you’ve not introduced regressions in cases you forgot to test? What if your code crashes only on certain devices? Could the feature freeze up for a few users?
Shipping frequently with little to no functional, UX or performance issues or regressions is not easy - but it’s also a problem that has been solved before. Where things get a lot more interesting is how to keep the same quality bar when you have hundreds of pull requests going in every day, with tens or hundreds of developers working on the same project? How do you test that your app still works - with this kind of scale?
This is a talk about the different approaches we combined into a system used by hundreds of mobile engineers at Uber to test our native iOS and Android apps during development, at release as well as when in production. We’ll talk about what did and what did not work for us on our journey of iterating frequently and continuously improving the quality bar.
Payments Integration at Uber: a (Short) Case Study
Uber supports 10+ ways to pay via different payment integrations: from credit cards through Venmo to more regional payment methods like Paytm in India or iDEAL in the Netherlands. This talk goes through the engineering process of building and rolling out a new payment method for Uber.
Recording and slides. Presented at the Engineering Uber's Next-Gen Payment Platform Meetup in SF.
Mobile Architecture at Scale
Most well known mobile architectures start to work against you after your engineering team grows large. A new architecture paradigm is needed to better support the development of mobile applications with hundreds of mobile engineers.
After investigating all other mobile architectures, Uber created RIB's, a cross-platform architecture designed with reliability, testability, isolation, maintainability and developer velocity in mind. In this talk, you'll learn about the motivation to create an entirely new mobile architecture, the process that let us re-write the Uber application in 3 months with 200 engineers and an overview of the architecture itself. We will also share lessons learned throughout this process.