C++ Software Engineer, Motion Planning
Develops high-performance C++ motion planning algorithms for autonomous vehicles, including trajectory generation, pathfinding, and real-time optimization. Collaborates with perception, prediction, and control teams; requires strong algorithms knowledge and production code experience.
About the job
What You'll Do
- 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
What You'll Need
- 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
Nice to Have
- Proven success in competitive programming contests
- Professional or academic experience in robotics, specifically with motion planning
- Experience with performance-critical software development, including multi-threading and memory optimization
- 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
Skills
C++, C++17, C++20, Algorithms, Data Structures, Graph Search, Computational Geometry, Git, CI/CD, Multi-Threading, CUDA, Opencl
Similar jobs
Embedded Engineering jobsDesign and implement real-time control infrastructure for intelligent, reliable robots, spanning actuators, hardware interfaces, state estimation, and whole-robot behavior. The role requires strong robotics and control fundamentals, hands-on hardware experience, and production-quality C++ or Rust development.
Own end-to-end software integration for semiconductor manufacturing equipment, spanning firmware, control software, electronics, actuators, testing, and production handoff. Requires 3+ years developing software for physical systems, proficiency in C, Rust, and Python, and strong hardware debugging skills.
Develops operating-system platforms, device drivers, and infrastructure for autonomous-vehicle robotics systems. The role requires 4+ years of production software experience, strong Linux internals expertise, and proficiency in C/C++ plus scripting languages.
Researches and expands vehicle telematics coverage by analyzing automotive network traffic, OEM documentation, and field logs. The role requires hands-on vehicle interfacing, reverse engineering, programming, physical debugging tools, and automotive communication standards expertise.
Designs and integrates C++ autonomy software with UAV hardware, autopilots, sensors, and communication systems, supporting SIL/HIL validation and live flight testing. Requires 3+ years of robotics integration experience, U.S. citizenship, and security-clearance eligibility.