About the Team
Our team is at the core of Avride's self-driving stack. We build the framework that powers all autopilot code, along with the runtimes that execute it both onboard and in simulation.
For the onboard runtime, we aim to achieve the best possible performance while operating under strict latency guarantees and reliability requirements. For the simulation runtime, our focus is reproducibility and determinism, which underpin the offline quality evaluations and A/B testing that are crucial for improving our autonomy technology. Engineers on our team set the bar for code quality and reliability, and we share these standards with the rest of the development teams at Avride.
About the Role
We're looking for a Senior C++ Engineer to work full-time on critical components at the heart of our self-driving software stack. This role requires a thorough understanding of how the system performs and how all its moving parts fit together.
You'll work closely with autonomy and hardware teams across Avride to understand their needs and determine which features we should provide to unblock the most efficient and reliable solutions. You'll also communicate closely with QA and R&D operations teams to get quick feedback on actual issues and validate your ideas. While we move at a high pace, our product isn't a place for quick fixes. Each design is expected to be solid and aligned with long-term goals. Analyzing the lasting consequences of every change is a must. Candidates are expected to be highly autonomous and capable of driving their ideas through every stage, from initial concept to production use.
What You'll Do
  • You’ll be working on the implementation and design of Avride’s core framework - both developer APIs and runtimes - building and optimizing execution graph consisting of GPU and CPU computations, scheduling execution to guarantee latency and reliability
  • Building internal instrumentation and tools to keep the system observable.
  • Participate in system performance evaluations and help with full-system debugging
  • Take long-term ownership of subsystems owned by the team, tracking their requirements and improving them over time.
  • Design and automate of testing of the team’s components to make validation and issue-detection loops shorter
  • Advocate for simplicity and long-term maintainability. Write well-structured code, produce clear design documents, and help the team resist unnecessary complexity.
What You'll Need
  • 5+ years of experience with C++
  • 3+ years of programming experience in multi-threaded environments - multiple processes, threads, timers, and interrupts
  • Experience with Linux and understanding of OS fundamentals
  • Experience in diagnosing and resolving performance issues
  • Proven experience of designing and shipping complex systems including scoping the problem, evaluating trade-offs, and verifying outcomes after delivery.
  • Strong cross-team collaboration skills - being ready to communicate with multiple teams to validate your ideas and manage testing and rollout out of your solutions
Nice to Have
  • Python experience for scripting and non-time-critical tooling
  • Background in autonomous vehicles, robotics, or other safety- or performance- critical systems.
  • Experience implementing middleware systems - execution scheduling, inter-process/inter-host transport layer, issue detection
  • Experience working with large and complex systems and codebases

Candidates are required to be authorized to work in the U.S. The employer is not offering relocation sponsorship, and remote work options are not available.

Avride is an equal opportunity employer and committed to providing reasonable accommodations to qualified applicants and employees with disabilities to ensure they have equal access to employment opportunities. Avride complies with the Americans with Disabilities Act (ADA), if you need a reasonable accommodation to assist with the application or hiring process, or to perform the essential functions of a job, please email jobs@avride.ai.