Waabi
Senior / Staff Software Engineer, Simulation Platform
Toronto, ONfull timeunspecifiedtransportation
Rust — C++ — Python — Multi-threaded System Design — Linux/Unix — Software Performance Optimization — Distributed Systems — API Design
Description
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. You will... - 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: - 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. - Open-minded and collaborative team player with willingness to help others. - Passionate about self-driving technologies, solving hard problems, and creating innovative solutions. Bonus/nice to have: - 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.