As an Autopilot Simulation Systems Engineer, you will contribute to the development of the simulation by working at the interface between simulation and Autopilot firmware. You will be expected to collaborate with a variety of Autopilot software and hardware engineers with the aim of improving robustness, performance, and correctness of the simulation. These improvements will streamline simulation's footprint and capabilities, enabling the broader Autopilot organization to run experiments at larger scales.
- Coordinate with Autopilot's framework team to create robust and efficient interfaces between vehicle firmware and the simulation.
- Responsible for systems-level isolation and correctness of both software and hardware-in-the-loop simulations.
- Work with the Autopilot hardware team to accurately model and spoof data from new sensors and vehicle inputs.
- Monitor and improve the performance of autopilot simulation as a whole.
Extra but not required:
Excellent software development/architecture skills in C++.
- Extensive experience with developing, deploying and debugging applications in Linux.
- BS/MS/PhD in Engineering, Computer Science, or the equivalent in experience and evidence of exceptional ability.
- Extensive experience with multi-threaded programming and synchronization.
- Experience with performance tracing across multiple compute devices (CPU/GPU) in Linux.
- Experience with both Software-In-the-Loop and Hardware-In-the-Loop testing practices.
- Familiarity with real-time programming and embedded environments.
- Desirable to have experience with one or more video handling APIs
- Desirable to have experience with one or more game engines or rendering APIs