Software Engineer, Self-Driving

Uber Overview

About Uber

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 autonomous trucking and self-driving cars, we're in for the long haul. We're reimagining how people and things move from one place to the next.

Job Description

About the Role

You will participate in the unique effort of bringing innovative state-of-the-art deep-learning models for self-driving into production, and onto autonomous vehicles. You will collaborate closely with a team of highly skilled researchers and engineers, tackling an array of challenges related to applying machine learning to self-driving vehicles. You will work on a variety of software engineering tasks related to development and deployment of algorithms for detection & perception, prediction, motion planning & automated map production, to name a few.


What You'll Do

  • Design, develop, test, deploy, maintain & document innovative solutions for challenging problems with robust, scalable, reusable, efficient, production-quality software
  • Collaborate and communicate closely with researchers to identify, propose and build infrastructure, large-scale data and computation pipelines, data storage strategy, common libraries and useful tools needed to optimize research and development of deep-learning models
  • Collaborate and communicate closely with cross-site testing, integration, and triage teams to ensure proper delivery and performance of productized models
  • Research and incorporate emerging software infrastructures, tools, and technologies
  • Usher and evangelize adoption of engineering best-practices and methodology

What You'll Need

  • Minimum 4 years experience building production level software systems, preferably with Python and C++ (candidates not meeting this requirement but excel in other competencies will be considered)
  • Comfortable developing in a Linux environment (or happy to quickly get up to speed)
  • Demonstrable track-record of learning and deep-diving as needed into complex existing and new technologies
  • Intense sense of ownership, initiative-taking, and a can-do attitude
  • Great attention to detail and a data-driven approach to problem solving
  • Team-player with a strong collaboration and communication skills, who is able to motivate and mobilize cross-functional teams, and respond positively to feedback

Bonus Points (optional)

  • Experience in architecting and building large-scale batch processing pipelines using Big Data tools such as Hadoop, Spark, Cassandra, etc.
  • Experience with 3D data transformations common in game engines and 3D-graphics programming
  • Knowledge of applied machine learning, and in particular distributed training of deep learning models utilizing GPU processing in compute clusters
  • Familiarity with considerations related to sensor data (RGB, LiDAR) such as calibration, data capturing, noise sources, transformations, etc.
  • Familiarity with standard web software frameworks for implementing internal research tools

About the Team

At the Advanced Technologies Group (ATG), we are building technologies that will transform the way the world moves. Our teams are building self-driving systems that will one day move people and things around more safely, efficiently, and cost effectively. To achieve this goal, we are creating the most advanced technologies that we can dream up.

Working alongside world-renowned researchers who are developing computer vision deep-learning algorithms for various self-driving tasks, our team delivers these algorithms to the real world and bring them into production. We are provided the rare opportunity to create a ground-breaking product changing the future of transportation globally, using the most advanced and exciting technologies, tools, and techniques.

See Inside the Office of Uber

Back to top