Below are a couple of public talks I've given recently.
- Podcast episodes
- Continuous Testing at Scale
- Payments Integration at Uber: a Real-World Case Study
- Mobile Architecture at Scale
- Growing as a software engineer on The Changelog podcast with Adam Stacoviak
My career path from college, through Skype, Skyscanner and Uber and key turning points.
- More than Code Podcast: Episode 5 on the More than Code podcast with Ben Edmunds
From competitive swimming to a career in software and to leaving Uber.
- Tech Resumes & Learnings From an Uber Engineering Manager on the Tech Lead Journal podcast with Henry Suryawirawan
Working at a hypergrowth company, career learnings and tech resume pitfalls.
- Software engineering resume tips on Level Up Engineering management podcast with Karolina Toth
Insights into the process of hiring for a big tech companies and advice on how to stand out with your software engineering resume.
- Discussing recruitment with an engineering manager on the Coffee with a Recruiter Podcast with José Marchena
Career progression from engineers, managing teams, recruitment and why I wrote The Tech Resume Inside Out: what a good developer resume looks like.
- Building a World-Class Onboarding Process For Your Software Engineering Team - Scaling Software Teams podcast
On how we evolved our onboarding process at Uber, in Amsterdam.
- Mentoring Developers: Gergely Orosz Engineering Manager at Uber - Level-up Engineering podcast
Sharing my advice on mentoring developers. See my related blog posts on mentoring practices for software engineers that work well.
- Seniority for software engineers: a tech talk
Continuous 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 Real-World 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.