Senior / Staff Software Engineer, Simulation Platform

Waabi
Toronto / San Francisco / Dallas2025-02-28Full-time

About the job

Simulation is at the core of Waabi’s approach to autonomous vehicle development. Our closed-loop simulation engine built with the latest in generative AI technologies, Waabi World, provides an extremely realistic environment for training and evaluating self-driving systems. The Simulation Platform team is responsible for delivering a modular and scalable platform which integrates the onboard autonomy system, intelligent actor models, and sensor simulation.

Responsibilities

- Contribute to and improve our state of the art self-driving simulator Waabi World to accelerate autonomous vehicle (AV) development.

- Improve the scalability and performance of the simulation platform to run simulations efficiently at an extremely large scale.

- Design and implement orchestration software between simulation subcomponents including the autonomy system, data-driven actor models, and sensor simulation powered by generative AI.

- Participate and share ideas in technical and architecture discussions, collaborating with researchers and engineers.

- Work closely with internal users to understand their requirements and workflows and propose new features to streamline and improve their experience using the simulator.

- Advocate and set patterns for software development.

- Drive complex cross-functional technical projects with impact across Waabi’s systems and company-wide impact.

Qualifications

Minimum

- MS/PhD or Bachelors degree with a minimum of 5 years of industry experience in Computer Science, Robotics and/or similar technical field(s) of study.

- Experience with a variety of backend technologies and languages. Examples: Rust (Preferred), C++, Python.

- Experience developing and maintaining production quality software, versus only creating prototypes/proof of concepts.

- Linux/Unix experience

- Understanding of test-driven and API-driven development methodologies.

- Experience designing interfaces between systems.

- Experience with multi-threaded system design/architecture, algorithms, data structure design, and systems-level programming.

- Experience working with cross-functional partners/stakeholders when building software frameworks.

- Experience with software performance, optimization, and profiling.

- Experience with concurrency and determinism.

Preferred

- Experience with game engine development, simulation, or other similar application runtime development.

- Experience in autonomous systems, robotics or machine learning.

- Experience working in distributed systems or emulation at scale.

- Docker & Bazel experience

- Experience building software systems from scratch.

- Experience working in an Agile/Scrum environment.

- Experience working with accelerators.

- Experience with sensor data processing.