The team:
Your expertise writing robust software can make a key contribution to one of our core robotics teams, motion planning & controls. The software you’ll write will go directly on production ready autonomous vehicles and impact how they decide to drive.
Our Motion Planning teams receive inputs on the many things going on around the vehicle (perception, localization, mapping) and then decides precisely what is the best plan and decisions to make in real time. An example of motion planning includes building routes, navigating traffic, braking, acceleration, turning, lane-change among other actions, all while trying to optimize safety & comfort.
You’ll have the opportunity to grow in robotics, including:
- Learning how full end-to-end robotics systems work
- Research and apply Motion Planning and Controls concepts in production-level software
- Test code for autonomous vehicles in real-time environments
- Build next generation software architecture for Motion Planner including how planner communicates with infrastructure layer/car.
- Advise algorithmic domain experts on their software design
Our software developers practice clean and scalable code, which includes:
Problem solving:
- Large groups of developers working on a shared codebase, documentation, and testing
- Complex software projects with multiple processes and modules interaction
- Design patterns
- Codebase refactoring
- Realizing cutting edge robotics algorithms with limited compute resources in real-time/soft real-time environment
Software development practices:
- Unit testing
- CI/CD
- Version control
- Familiarity with modern C++ features
- Providing/receiving code reviews
Languages/tools:
- C++
- Python
- Bazel/Git
The experience we are looking for / our interview process will evaluate:
- C++ software design, algorithm implementation, debugging
- Background in software development environment(s) that include some of the aspects mentioned above (Our software developers…section)
- Python (bonus)
- Background in Robotics/Automation (optional)
Education:
- Bachelors, Masters, or PhD degree in Computer Science, Computer Engineering, Mechanical Engineering, Robotics, Applied Math, or related field
- Strong fundamentals in Computer Sciences data structure and algorithms. Familiarity with graph search based concepts and basic geometry.
Similar Jobs
- View Job
Principal Software Engineer - Motion Planning Architecture C+
Milpitas - View Job
Principal Software Engineer - Motion Planning Architecture C+
Milpitas - View Job
Principal C+ Software Engineer
San Jose - View Job
Principal C+ Software Engineer
San Jose - View Job
Principal Software Engineer (C/C+, SDWAN)
San Jose