Mobile engineers who come to Uber are empowered do the best work of their careers. Uber expects them to define and shape how the business works at breathtaking speed without sacrificing quality, regardless of how many people are working on a given app. Our team is responsible for eliminating obstacles that get in the way of this vision in the mobile development , from simple things like creating libraries to implementing architectural changes that enable safer development and developing new service-oriented architecture for mobile code.
We currently focuses on a few core areas to make this vision a reality:
- Architecture - From the very beginning, part of the magic of the Uber experience is how easy, seamless, and quick it is to access reliable transportation. Creating an app as feature-rich as this incredibly intricate problem space requires a change in how code is stitched together. This means building things like reactive programming and a custom breakdown of view and business logic we call RIBs. We’re actively committed to pushing the envelope to enable better results.
- Scaling - As Uber adds more features into a small amount of app real estate, traditional approaches stop scaling. Our team explores which patterns work well? Which ones support the best experience for users? How can we better guide users through the most effective patterns?
- Reliability - Uber is an important source of income for millions of drivers and a trusted source of transportation for even more riders around the world. Our team is focused on ensuring the mobile infrastructure behind our app is consistently reliable.
- New Technologies - Mobile development is fragmenting in a number of directions, which creates exciting opportunities for mobile engineers working with Kotlin, Swift, RX, React Native, Xamarin, mobile web, etc. Our team explores new directions to identify the best option for Uber, enabling developers to continue innovating quickly at scale with the solutions that work best for their systems.