The Waymo Onboard Infrastructure team is responsible for low-level software and infrastructure on various components of the Waymo self-driving system. The team’s scope covers everything from low-level system software to high-bandwidth data logging, IPC (low-latency and high-throughput), performance analysis, full-system debugging, etc. We work closely with the Hardware, Sensor, Perception, Behavior/Planning and Machine-Learning teams to build the most performant and low-latency self-driving solution in the industry.
We are looking for a generalist software engineer to help develop our hardware-in-the-loop simulation tool. Simrack tests self-driving software by scheduling it on rack-mounted instances of our custom compute platform.
Waymo uses real-world driving and cloud-based simulation to improve the driving quality of our software. When it comes to understanding and improving real-time performance and latency, we’ve found there’s no substitute for this form of hardware-in-the-loop testing. Engineers around the company use simarck as their primary tool for iterating on performance improvements as well as getting early feedback about their designs prior to driving on the roads. It has also become a critical piece of our release process to ensure that regressions are found quickly.
You will work closely with many teams across the Software organization (e.g. Planning, Perception) as well as Release Engineering, Compute Hardware, Data Analytics, and Offboard Infrastructure teams. You will work to add support for HIL simulation of new hardware platforms including new accelerators, sensors (LIDARs, cameras, radars, etc.). You will work on improving simulation fidelity to better correlate performance with real vehicles.
In this Systems Software Engineering role, you will:
- Architect, develop and maintain industry-leading real-time simulation infrastructure for self-driving systems
- Integrate sensor data decode and replay into simulation framework to accelerate speed of development for partnering software teams.
- Automate test infrastructure for regression testing and culprit finding
- Add functionality into the HIL platform and API that other teams (e.g. Perception, Planner, ML Infra) will use to automate their software testing
- Design innovative solutions to problems that normally rely on specialized hardware in the vehicle.
At a minimum we’d like you to have:
- BA/BS degree in Computer Science, Computer Engineering or relevant technical field or equivalent practical experience
- 4+ years of relevant work experience.
- Experience with C++
- Experience in a highly-concurrent, multi-processor, and multi-threaded environment.
- Advanced software architecture, design, and development skills
- Advanced problem-solving and debugging skills
It’s preferred if you have:
- Experience with Linux Operating system
- Knowledge of common approaches to building simulation systems (prior data replay, scheduling events, time management, etc.)
- Hands-on experience (or general comfort) with working on prototype hardware.
- Experience with analyzing and optimizing software performance at various levels of the stack.
We appreciate your interest in Waymo. Waymo is an equal employment opportunity employer. Waymo’s policy is not to discriminate against any applicant or employee based on race, color, sex, religion, national origin, age, disability, military status, genetic information or any other characteristic protected by law. Waymo also prohibits harassment of applicants or employees based on any of these protected categories. Waymo will also consider for employment qualified applicants with criminal records in accordance with applicable law. Waymo also makes workplace accommodations for qualified individuals with disabilities as required by applicable law.