Sr Software Engineer - Mobile Release (Backend) at Uber
About the Role
Uber is a mobile first company, and it's crucial to quickly ship features to our end users. At our scale, this is a fully automated self service platform. Everyone at Uber, from Engineers and PMs to org leads use our platform.
The mission for the Mobile Release Engineering team is to provide efficient high quality releases with guardrails and visibility for all Uber applications. We are responsible for taking the code from our engineers all the way into the hands of our end users. We are the central view for tracking diff to 100% production via a multi stage pipeline--continuous delivery, daily and weekly employee dogfooding, external beta programs, and staged production rollouts. Our tooling involves an extremely high level of collaboration. We are pushing the envelope with several exciting new capabilities--automatically identifying and removing bad code from our codebase, moving to a continuous release cycle, expanding and improving employee dogfooding to keep all employees on the latest internal versions, and introducing canary production releases.
What You'll Do
- Build world class release platform exclusively for mobile applications at Uber
- Build automation across our services--change management, release state machine and modeling, automated issue tracking, key quality signals for coverage and health, and automated code reverts, provide mitigation tooling via our hotfix, and force upgrade capabilities
- Work with Java, distributed workflows via Cadence, MySQL, terrablob, secret management
- Implement a structured release process for a complex ecosystem
- Work closely with the broader Mobile Infrastructure teams to align priorities and incentives
- Monitor and alert mechanisms for both automated testing and deployment processes
- Encourage and educate the broader mobile team on standard methodologies for stable and well-monitored releases
- Enhance and provide the tooling for all our developers and release managers
- Experience with at least one or more languages: Java, C++, Python
- Sound understanding of computer architecture and CS fundamentals.
- Experience with one or more of the programming languages (Go, C++, Java, etc) and data stores (MySQL, Cassandra, Redis, etc) and distributed systems design
- Bachelor's degree in Computer Science or related technical field or equivalent practical experience
- At least 7 years of software engineering experience
- Experience with database design and architecture, i.e. data modeling and experience with design patterns
- Understanding of messaging and data pipeline technologies like Kafka
- Experience in microservice architecture design
- Excellent understanding of testing methodologies: Acceptance Testing, Integration Testing, Interface Testing, Mock
At Uber, we ignite opportunity by setting the world in motion. We take on big problems to help drivers, riders, delivery partners, and eaters get moving in more than 10,000 cities around the world.
We welcome people from all backgrounds who seek the opportunity to help build a future where everyone and everything can move independently. If you have the curiosity, passion, and collaborative spirit, work with us, and let's move the world forward, together.
Uber is proud to be an Equal Opportunity/Affirmative Action employer. All qualified applicants will receive consideration for employment without regard to sex, gender identity, sexual orientation, race, color, religion, national origin, disability, protected Veteran status, age, or any other characteristic protected by law. We also consider qualified applicants regardless of criminal histories, consistent with legal requirements.
If you have a disability or special need that requires accommodation, please let us know by completing this form.