C++ Tools Engineer, Autonomy

Tesla

The Role

Tesla’s Autonomy Tools team builds systems, apps and
services used in the development, debugging, and ongoing validation of Autonomy software, both for our car and our Humanoid robot – essentially
boosting the entire R&D group’s productivity.

You’ll write complex tools spanning across the entire software stack, replaying
accurately prerecorded streams of events from our vehicles with
hardware-in-the-loop, interacting with/mocking our real-time compute scheduler,
aiming at complete determinism, while minimizing system & resources impact
on the actual embedded computer itself. You’ll come up with smart ways to
bolster our tools’ capabilities, such as advanced compute performance analysis,
and effective software crash/dump analysis.

Responsibilities

  • Build features for open loop simulation on our embedded Linux platform
  • Improve metrics and performance of the system to scale with the growth of our data sets
  • Modify the simulation framework for new sensors and platforms
  • Work closely with all consumers of our tools, including planning, controls, neural network training, and data telemetry teams
  • Contribute to other parts of the Autopilot and Humanoid robot software stack, including driving and control algorithms

Requirements

  • Practical experience programming C/C++ software, including modern C/C++ (C++11/14/17/20) and multithreading 
  • Strong Linux fundamentals (embedded environments, preferred)
  • Excellent problem solving, critical thinking, and communication skills
  • Contributions to involvement with open source projects is a plus
  • Experience with RTOS or bare-metal embedded development is a plus