HomeVacanciesSoftware Engineer, Linux Applications

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