Developing core software and data processing systems for motion planning and decision-making in autonomous vehicles
Requirements
- Exceptional proficiency in modern C++ and a deep understanding of object-oriented design principles
- Strong foundational knowledge of algorithms and data structures, particularly those relevant to robotics (e.g., graph search, computational geometry, optimization techniques)
- Experience with software development tools and practices, including Git, CI/CD, and code reviews
- Proven success in competitive programming contests such as Google Code Jam, Hash Code, Topcoder Open, ICPC, or similar events
- Knowledge of machine learning techniques (e.g., reinforcement learning, imitation learning) applied to planning or decision-making problems
- Solid mathematical background, including linear algebra and probability theory
- Knowledge of GPU programming (e.g., CUDA, OpenCL) for accelerating algorithms
Responsibilities
- Design, implement, and optimize cutting-edge motion planning algorithms in modern C++ (C++17/20)
- Develop robust solutions for trajectory generation, pathfinding, and behavioral decision-making in dynamic environments
- Analyze and debug system performance using simulation, log playback, and on-vehicle testing data
- Collaborate closely with engineers from Perception, Prediction, and Control teams to build a cohesive and reliable self-driving system
- Write clean, maintainable, and optimized production-quality code
- Profile and optimize algorithms to meet real-time performance constraints
Other
- Authorized to work in the U.S.
- Bachelor's or Master's degree in Computer Science, Robotics, or a related technical field