Software Engineer, Linux Applications

Waymo is an autonomous driving technology company with the mission to be the most trusted driver. Since its start as the Google Self-Driving Car Project in 2009, Waymo has focused on building the Waymo Driver—The World's Most Experienced Driver™—to improve access to mobility while saving thousands of lives now lost to traffic crashes. The Waymo Driver powers Waymo One, a fully autonomous ride-hailing service, and can also be applied to a range of vehicle platforms and product use cases. The Waymo Driver has provided over one million rider-only trips, enabled by its experience autonomously driving tens of millions of miles on public roads and tens of billions in simulation across 13+ U.S. states.

The platforms team is looking for a software engineer to mature our high-fidelity autonomous driving simulation. This simulation system runs in a software configuration as close as possible to the vehicle, on the same compute hardware as is used in the vehicle. Incorporating the vehicle's compute system enables high-fidelity simulations that can find rare reliability and performance issues. The team's work varies from simulation strategy to whole-system debugging.

In this hybrid role you will report into a Tech Lead Manager.

You will:

  • Work with partners from perception, planning, and other onboard software teams to improve simulation fidelity.
  • Work with teams to mature our simulation strategy for high confidence that we can discover even extremely rare issues before on-vehicle testing.
  • Improve the efficiency, reliability, and trustworthiness of simulations.
  • Bring the simulator to new hardware platforms.

You have:

  • Bachelor's degree in computer science or equivalent practical experience.
  • 5+ years of experience delivering complex, production-quality software.
  • Proficiency in C++ and a scripting language like Python.
  • Experience with applications running on Linux-based embedded devices.
  • Familiarity with operating systems concepts on Linux: networking, filesystems, performance troubleshooting, device I/O, and concurrency.
  • Experience driving change in very large codebases.

We prefer:

  • Master's degree in computer science or equivalent practical experience.
  • Familiarity with robotics concepts: inter-process messaging, logging, reproducibility, diagnostics, and fail-operational designs.
  • Experience with hardware-accelerated compute workloads (e.g., GPU, ML accelerators, image/data processors)
  • Experience simulating complex systems
  • Experience with data center infrastructure

#LI-Hybrid

Job Information

Related vacancies