– Maintain, extend, and optimize software that is part of systems that generate spatial data products related to autonomous driving.
– Maintain, extend, and optimize prototype-level on-vehicle software related to autonomous driving.
– Design and implement software modules for controlling and logging data from specialized hardware devices (e.g., digital cameras, LIDAR scanners, automotive radar sensors, GNSS receivers, inertial measurement units).
– Design and implement unit tests and system-level tests.
– Implement Python extension modules.
– Write application programming interface documentation.
– Participate in software design and review meetings.
– Provide effort estimates for software design and implementation tasks.
– Bachelor’s or graduate degree in computer science, software engineering, or another technical program that involves advanced programming courses.
– Detailed knowledge of the C, C++ (including C++11 features), and Python 2.x programming languages.
– Detailed knowledge of the standard template library for C++ and familiarity with Boost libraries.
– Working knowledge of generic programming techniques in C++.
– Working knowledge of multithreading and synchronizations techniques.
– Proficient in English-language technical writing.
– Working knowledge with Scientific Python (SciPy).
– Working knowledge of CMake.
– Working knowledge with multi-platform (Windows and Linux) software development.
– Working knowledge of geodetic concepts as they apply to spatial data objects, and of spatially enabled database management systems is a plus.
– At least five years of increasing system programming responsibility in an academic or industrial setting, with at least two years in an industrial setting.