Software Engineer - Automation Infrastructure at Uber

Expires in 5 days

CareersSearch open rolesOpen Roles
iOS, Engineering in Palo Alto, CA
We’re changing the way people think about transportation. Not that long ago we were just an app to request premium black cars in a few metropolitan areas. Now we’re a part of the logistical fabric of more than 600 cities around the world. Whether it’s a ride, a sandwich, or a package, we use technology to give people what they want, when they want it.
For the people who drive with Uber, our app represents a flexible new way to earn money. For cities, we help strengthen local economies, improve access to transportation, and make streets safer.
And that’s just what we’re doing today. We’re thinking about the future, too. With teams working on new modalities, self-driving cars and even urban air transportation, we’re in for the long haul. We’re reimagining how people and things move from one place to the next.

About the Role

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

What You’ll Need

  • Expertise in Java
  • Good working understanding of the Android platform
  • Good debugging skills
  • 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

About the Team

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.
#productplatform Apply Now
See our Candidate Privacy Statement
At Uber we don’t just accept difference—we celebrate it, we support it, and we thrive on it for the benefit of our employees, our products and our community. Uber is proud to be an equal opportunity workplace. We are committed to equal employment opportunity regardless of race, color, ancestry, religion, sex, national origin, sexual orientation, age, citizenship, marital status, disability, gender identity or Veteran status.
Apply now

Remember to mention that you found this position via Trinity CareerGate