As an Autopilot Camera Software Engineer, your technical skills will be applied to a variety of components within the imaging pipeline to optimize system performance and fundamentally improve image quality for computer vision. By partnering closely with hardware and computer vision engineers, this position will be a critical addition to a cross functional, ongoing initiative of delivering the best possible view of the world for consumption by neural networks and driver-facing displays. Your code will connect with cameras, image signal processors, vision, codecs, telemetry, and a variety of other components executing on the FSD computer. Additionally, the camera software team builds tools for benchmarking, characterizing, and optimizing camera 3A and ISP configurations, and is responsible for testing and evaluation pipeline integration to ensure the system and functional stability of our stack.
- Write, debug and maintain robust C/C++ software for the Autopilot software stack; you will work on code related to our high-framerate Camera & Vision stack, write GPU kernels, implement high-performance inter-process communication data buffers, or improve/extend our image & raw data logging/telemetry code
- Architect, tune, and evaluate camera 3A and ISP algorithms for the next-generation FSD system
- Design and optimize video codec configurations for telemetry collection and back-end processing
- Develop and maintain image quality analysis tools in Python or Matlab
- Optimize hardware resource usage, leveraging custom hardware components where appropriate
- Advocate for best coding practices amongst the group
- Generalize software frameworks when necessary while keeping in mind that too much abstraction can sometimes become a bottleneck
- Work autonomously across the stack make Autopilot the best product overall
- 5+ years’ experience programming in C/C++ software, including modern C/C++ (C++11/14/17), multithreading, and Python
- Knowledge of camera systems and related concepts, including color filters, exposure control, timing, and in-sensor HDR techniques. Experience with imager bring-up.
- Experience or familiarity with ISP pipelines and associated tunings
- Experience or familiarity with Computer Vision, Machine Learning & related software concepts
- Experience with performant software design, object-oriented C++
- Proficient developing software on a Linux host, for embedded Linux targets (cross-compilation, etc.)