iOS Engineer - Mobile Test Platform
The Mobile Test Platform team aims to provide a framework to enable program teams to write test automation covering their user flows, replacing manual sanity tests. Our tools allow safeguarding features and preventing regressions before diffs land, hence empowering mobile developers to build reliable apps quickly. These solutions have tremendous impact on Uber's business by reducing the number of bugs from going out the door, which dramatically impacts user trust and retention. We also have huge potential to increase the productivity of every mobile developer at Uber by making writing tests a breeze, and eliminating any manual work during release. For some teams, we can save up to 1 engineering day per week using our tooling!
Looking ahead, you'll be working on various long term app reliability tooling, not just UI test frameworks, but also unit testing, frameworks for writing testable code, tools to drive up test coverage, tools improve code safety, and any other projects you can come up with to improve reliability of our apps. The impact is huge: faster development speed for all mobile engineers, fewer betafixes, hotfixes and outages, fewer crashes, ANRs, and bugs in our apps, making the Uber app experience truly magical.
For this role, we are seeking software engineers with good understanding of the iOS development flow, and familiarity with Xcode and related build tools. Some distributed systems experience will be beneficial but not required, as long as you have an open mind in learning new technologies - this is a new territory we'll be venturing into, which is super exciting.
What You'll Do
- Building mobile UI test infrastructure that greatly increases developer productivity.
- Diving deep into our UI test runner infrastructure and tooling to make it more performant and reliable.
- Create tooling, infrastructure, and frameworks that enable teams to automate their sanity tests and prevent regressions to their features.
- Work with program teams to help define bottlenecks in UI test infra
- Participate in design and code reviews
- Help define the future of mobile UI test runner for Uber
- Experience in Objective-C or Swift
- Good working understanding of the iOS platform
- Experience with developing complex software systems scaling to millions of users with production quality deployment, monitoring and reliability.
- Ability to collaborate and communicate with other teams to help discover gaps in our tooling and infrastructure and help drive solutions
Bonus points if
- Experience in one or more object oriented programming language (e.g. Python, Java, etc) or the eagerness to learn
- Experience in distributed systems
Mobile Test Platform team is part of the Core Product Platform's Reliability effort. Uber's mission is transportation as reliable as running water - for all of our products, customers depend on Uber for reliable transportation and logistics experiences. A bad experience in one of our apps can completely ruin a customer's trust in our products. Our long term goal within Reliability is that everyone is seamlessly able to use our applications without issues. We build tools and frameworks to cover the detection, prevention and mitigation of reliability issues such as crashes, ANRs, and unexpected behaviors.
This is a great opportunity to build innovative frameworks and tooling from scratch, and make tremendous impact along the way. We are looking for engineers who are passionate about the quality and reliability of our apps, and interested to build scalable systems.
Meet Some of Uber's Employees
Community Management Specialist
Brian makes sure that every Uber user has an amazing experience. He troubleshoots roadblocks to customer happiness and also does outreach to attract new Uber users.
Back to top