Logo
Aurora Innovation

Staff Software Engineer

Aurora Innovation, Mountain View, California, us, 94039


Aurora hires talented people with diverse backgrounds who are ready to help build a transportation ecosystem that will make our roads safer, get crucial goods where they need to go, and make mobility more efficient and accessible for all. We’re searching for a

Staff level or higher Software Engineer

to work with the Core-Simulator team. The team empowers Aurorans to test, train, and evaluate the Aurora Driver in simulation. The Core Simulator team is composed of simulation domain and software engineering experts working towards the goal of enabling quick and thorough evaluation of motion planning, control, localization and autonomy system level software.

The team is responsible for the primary simulation engine and offline testing framework. They build models for subsystems of the autonomy stack, models for the physical world, and tooling to generate complex scenarios. They build the technology for producing realistic virtual interactions at scale, modeling the physics and behaviors of agents in the world, and gaining and presenting insights about our rich simulation data. The team's goal is to enable rapid development and validation of the autonomy stack through comprehensive offline analysis.

In this role, you will:

Develop software in standard C++17 and Python, using modern best practices. This is a hands-on software development role.

Contribute to engineering best practices on a large and complex code base.

Optionally manage a small number of direct reports.

Tackle end-to-end simulation and autonomy behavior evaluation challenges across various areas of the autonomy system.

Lead, design, and develop critical simulation and offline testing engines and tools.

Create and extend software for world entities, adaptive behavior, pathfinding, road networks, computational mathematics, spatial queries, collision detection, vehicle control, vehicle dynamics, etc.

Example projects that a candidate may contribute to include:

Accelerating our efforts to automatically generate simulation scenarios, procedurally and data inspired, at massive scale, using analytical or learned techniques.

Accelerating our efforts to automatically evaluate autonomy behavior, with high precision, at massive scale. Drive quality-at-scale efforts for autonomy-behavior labels.

Contributing to modeling real world errors in, and testing closed-loop interactions between, planning, localization, mapping, and control subsystems in simulation.

Required Qualifications:

Good development skills in C++, including modern C++ (11, 14, 17, 20).

Good sense of systems and data-oriented design.

Understanding of common software performance issues and design tradeoffs.

Domain experience in simulation, motion planning, localization, controls, or other areas of robotics.

BS or higher degree in robotics, computer science, software development, mathematics, or similar technical field of study, or equivalent practical experience.

5+ years of industry experience designing and programming C++ software.

5+ years of experience in autonomous vehicles, simulation, robotics, motion planning, localization, controls, computer vision or machine learning.

Desirable Qualifications:

10+ years of industry experience designing and programming C++ software.

Good development skills in Python.

Knowledge of linear algebra, computational geometry, or numerical methods.

Excellent communication and people engagement skills.

Mindset for ownership, growth, and a bias for progress.

Customer orientation.

Experience with rigid body simulation.

Experience with automotive dynamics.

Experience with Lie groups (modern geometry).

Experience at an autonomous vehicle company.

Experience designing domain specific languages (DSLs).

Experience with procedurally generated game or video content.

Experience with machine learning (especially modern ML / transformers) applied to game or video content.

Experience with labeling pipelines and label quality for computer vision, perception, or machine learning applications.

Experience with classical machine learning (ML) algorithms.

Experience writing localization or runtime mapping (i.e. simultaneous localization and mapping, SLAM) software.

The base salary range for this position is $189,000-$302,000 per year. Aurora’s pay ranges are determined by role, level, and location. Within the range, the successful candidate’s starting base pay will be determined based on factors including job-related skills, experience, qualifications, relevant education or training, and market conditions. These ranges may be modified in the future. The successful candidate will also be eligible for an annual bonus, equity compensation, and benefits.

#J-18808-Ljbffr