Mobile Infrastructure @ Uber
Mobile Infrastructure team stands between our Users and Uber's Mobile Engineers. While our program engineers are focused on building and shipping cool features and enhancements to the magical Uber experience, Mobile infra team ensures we do it in a reliable way by shipping a stable app every time.
Mobile Infrastructure team at a glance:
- Developer workflow and Productivity
This team is responsible for building productivity tools for mobile engineers including gradle plugins, binary size optimization, local build times, static code analyzers, linters, dependency management and much more.
- Test Infrastructure Team
This team is inventing tools and building test frameworks that powers hundreds of UI automation tests for every single flow of our mobile apps. The team built an inter-app communication service named Octopus for Rider and Partner apps to communicate for end to end trip flow automation. e.g. check out the UberPool automation test that ensures the quality of our UberPool flow.This is one of the many automation tests that run at different stages of our CI to ensure stability and quality of our app shipped weekly to million of our riders and partners.
- Build & CI
This team is responsible for the CI infrastructure that ensures the integrity of our apps and keep bad code out. We run thousands of jobs each day that monitor various states of our apps including binary size, app startup time, test automation for core flow, unit testing etc. The team will see our CI infrastructure scale from 100+ machines to over 1,000 in a relatively short time.
And the team has also built the remote physical device labs connected to our CI infrastructure for performance testing. The presence of physical office space in every city we operates allow us to set up remote device labs, where devices are connected to real carrier network.
Once operational, not only this will allow our engineers to test their new features with real network conditions, but it will ensure we don't regress on our app performance in slow network markets. - Release Engineering
This team is responsible for releasing our apps to end users every week. The team monitors metrics across multiple services and their actions stand between us shipping an awesome feature or a broken experience.
Imagine this entire pipeline fully automated where the release will automatically advance through each stage at a preset schedule based on various metrics and notify engineers to resolve issues if blocked.
Needless to say stakes are quite high for every single release, where a broken experience can leave our Riders stranded on the streets and our Partners not able to make money. But we love every bit of it and enjoy building tools that make sure it never happens.
If this kind of work excites you, I would love to hear from you. Email me at vg@uber.com or apply here:
Vikas, thanks for sharing!
Vikas, awesome !
Vikas, thanks for sharing!
Nick Snyder Carleton Miyamoto Deep Majumder
"Auto hotfix patching" is to fetch hotfixes for third party tools/libs ? I like it.