Tesla

Autopilot, Systems Software Engineer

Tesla

Palo Alto, California, USA

full time

22 Jan 2020

Tesla

The Role

As a Systems Software Engineer within the Autopilot group, you will have the opportunity to apply your technical skills to a variety of system components & foundational code. The nature of the role means that the code you will write, debug and maintain will almost always connect with a variety of other components. You will be building robust code foundations for the autonomy teams to write their applications on top of, track and optimize performance and framerate across the stack, assist in writing system tools and evangelize best software practices for the better of Autopilot. You will write tests and integrate with our evaluation pipeline, to ensure the system and functional stability of our stack.

Responsibilities

  • Write, debug and maintain robust C/C++ software to the entire Autopilot software stack; depending on needs and your interests/skills, you might have to work on code related to our high-framerate Camera & Vision stack, write GPU kernels, design and implement low memory footprint image compression libraries, implement high-performance inter-process communication data buffers, improve/extend our image & raw data logging/telemetry code, or make our evaluation/replay software more stable and performant
  • Optimize hardware resources usage, leverage custom hardware components where appropriate
  • Advocate for best coding practices amongst the group, build tools helping engineers to write better code (for instance, performance/memory tracking)
  • Generalize software frameworks when necessary, while keeping in mind that too much abstraction can sometimes become a bottleneck

Requirements

  • Experience programming C/C++ software, including modern C/C++ (C++11/14) and multithreading
  • Experience or familiarity with Computer Vision & related software concepts
  • Experience with performant software design, object-oriented C++ and/or hardcore lower-level C code
  • Proficient developing software on a Linux host, for embedded Linux targets (cross-compilation, etc.)
  • Experience with at least one of the following: imaging software, Cuda/OpenCL, SIMD, multithreading, Linux system software (posix etc.), computer vision



For more jobs like this subscribe to the weekly newsletter or follow C++ JOBS on Facebook, Linkedin and Twitter for frequent social updates.