Senior Software Engineer – Secondary Driving System
General MotorsAbout the role
Job Description
At General Motors, our product teams are redefining mobility. Through a human-centered design process, we create vehicles and experiences that are designed not just to be seen, but to be felt. We’re turning today’s impossible into tomorrow’s standard —from breakthrough hardware and battery systems to intuitive design, intelligent software, and next-generation safety and entertainment features.
Every day, our products move millions of people as we aim to make driving safer, smarter, and more connected, shaping the future of transportation on a global scale.
Our Embodied AI teams are redefining what’s possible in driver assistance and automated driving. We pair human‑centered design with cutting‑edge robotics, optimization, and machine learning to create systems that are not just intelligent, but intuitive and trustworthy.
The Secondary Driving System (SDS) is an independent perception, planning, and controls stack that keeps the vehicle operating safely for a limited time if the primary driving system becomes unavailable, requesting driver takeover and, when needed, executing a Minimal Risk Maneuver (MRM) to bring the vehicle to a safe stop.
As a Senior Software Engineer on the Secondary Driving System team within Embodied AI, you will be a strong individual contributor working across the autonomy stack, with a particular emphasis on motion planning and controls in a robotics context. You’ll design and build production‑quality C++ software that spans ML‑based perception, tracking, prediction, planning, and controls, enabling SDS to safely handle faults and reach a minimal risk condition when the primary system cannot.
You will collaborate closely with experts in perception, state estimation, vehicle dynamics, systems engineering, and safety to ship robust, fail‑operational behaviors for Super Cruise and future products.
What you’ll be doing:
Develop and optimize production‑grade C++ software across the SDS stack, integrating ML‑based perception (object detection, tracking, prediction, lane and road features) with analytical planners and classical controllers under tight latency and compute constraints.
Design and implement planning and controls algorithms for the Secondary Driving System, including lane‑keeping, obstacle avoidance, lane changes to shoulder, and controlled stopping behaviors tailored to MRM scenarios and limited operational horizons.
Work with partners in state estimation, mapping, localization, and autonomy management to define and implement interfaces and contracts that enable reliable SDS engagement in response to primary stack failures.
Own features end‑to‑end: requirements clarification, design reviews, implementation, simulation/HIL bring‑up, on‑road testing, and iteration based on metrics and driver feedback.
Apply and champion software engineering best practices: clean interfaces, code reviews, automated testing, continuous integration, performance profiling, and observability for on‑road incidents.
Analyze and debug complex integration issues, using logs, telemetry, and principled experiments to root‑cause problems at the intersection of perception, planning, controls, and vehicle behavior.
Partner with Safety and Systems Engineering to ensure SDS behaviors and software designs align with functional safety, redundancy, and MRM requirements for fail‑operational Eyes‑Off features.
Mentor and unblock other engineers through design discussions, code reviews, and example implementations, helping raise the bar for robustness, clarity
Apply for this role
Generate a tailored application kit with a matched cover letter, interview prep, and CV highlights — in under 60 seconds.
Apply Now →Generate Application KitFree account required — sign up in 30s