
Sr. Staff Software Engineer, Pose, Localization & Calibration, Autonomy
Role summary
The Sr. Staff Software Engineer on the Pose Team will be responsible for technical and implementation leadership in developing mapping, localization, and calibration solutions for autonomous vehicles. This role involves defining, refactoring, and implementing algorithms and frameworks using C++, focusing on real-time performance and safety-critical systems. Key responsibilities include sensor fusion, state estimation, SLAM, and integrating these solutions into the vehicle's autonomy stack. The engineer will also mentor junior team members and contribute to evaluation pipelines, working closely with cross-functional teams and suppliers to deliver robust localization capabilities.
Our Pose Team is a diverse group of algorithm developers / software engineers focused on delivering mapping, localization, and calibration solutions hosted on the vehicle and in the Cloud. Pose is a core capability of the autonomy stack delivering products to Perception, Prediction, Planning, Control, and others. As a Sr. Software Engineer on the Pose team, you will work on a wide variety of localization and calibration problems including real-time algorithm development on the vehicle.
- Technical leadership: Define, review, and refactor the architecture, algorithms, and frameworks for solving pose, calibration, and SLAM problems. The problems we work on involve processing and fusing input data from multiple sensors including GNSS, IMU, wheel / radar / visual / lidar odometry to produce state-of-the-art global and relative localization systems. We also work on the calibration of sensors going into these algorithms.
- Implementation leadership: Implement these algorithms and frameworks in C++. Mentor junior engineers involved in the implementation, and help drive our standards for high-quality, high-performance, scalable autonomy software.
- Integrating these algorithms into our autonomous vehicle architecture, including migrating these algorithms to real-time embedded systems, and integrity monitoring.
- Evaluation: help define and develop pipelines to evaluate and iterate on our algorithms at scale.
- Our team is responsible for interfacing directly with suppliers, interfacing with our software, hardware, and vehicle design teams, developing safety-critical localization algorithms for any environment.
- M.S. or Ph.D. in Aerospace, Electrical, or Mechanical Engineering, Computer Science or a related field.
- 7+ years of robotics, AV (Autonomous Vehicle), or other real-time, safety-critical experience.
- Research and development experience in one or more of the following areas:
- Stochastic estimation/state estimation/Kalman filtering
- SLAM / Factor Graphs
- Sensor fusion
- Sensor calibration
- Autonomous Vehicles/ADAS
- Strong C/C++ programming skills and experience
- Ability to work in a fast-paced development environment
- Good team player with great communication skills
- Passionately motivated to take ideas from R&D phase to a product
Preferred Qualifications
- Sensor fusion / SLAM with IMU and/or Odometry
- Non-linear optimization, batch estimation, factor graphs, ground truth algorithms
- Prototyping real-time applications
- Adapting algorithms for real world use cases, considering corner cases, using imperfect data
- Embedded software development and optimization experience
- Software development for safety critical systems (ISO 26262)
- Experience with IMU, camera, LiDAR, radar, computer vision
Sample Rivian and VW Group Technology interview questions
- 1
Design a distributed rate limiter.
system designmedium - 2
Build a distributed system for efficient data replication.
system designmedium - 3
Merge Overlapping Intervals Merge overlapping intervals in an array. Input: intervals = [[1,4],[4,5]] Output: [[1,5]] Explanation: The intervals touch exactly at the 4 mark, so they are successfully merged into a single continuous interval.
codingmedium - 4
Product of Array Except Self Calculate the product of an array except for self without using division. Input: nums = [-1,1,0,-3,3] Output: [0,0,9,0,0] Explanation: The single zero zeros out all products except at its own index, which cleanly multiplies the remaining elements.
codingmedium - 5
Search for a Word in a 2D Board Search for a word in a 2D board of characters. Input: board = [["C","A","A"],["A","A","A"],["B","C","D"]], word = "AAB" Output: TRUE Explanation: DFS traverses adjacent matching letters perfectly, finding "AAB" without improperly revisiting any cells.
codingmedium
Sign up for a personalized interview prep pack tailored to this role.