At General Motors, our Embodied AI teams are redefining what’s possible in driver assistance and automated driving, combining human‑centered design with cutting-edge robotics, optimization, and machine learning to build systems that are both intelligent 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. SDS requests driver takeover and, when needed, executes a Minimal Risk Maneuver (MRM) to bring the vehicle to a safe stop. We are looking for a Staff Software Engineer to provide technical leadership for the Secondary Driving System as a whole. This is a generalist software engineering role focused on building robust, production‑quality C++ software across the SDS stack (perception, tracking, prediction, planning, controls, and system integration). Depth in perception, tracking, prediction, or planning is highly preferred, but we are primarily looking for strong engineering and systems skills, with the flexibility to work where the team and product need you most. Role As a Staff Software Engineer on the Secondary Driving System team within Embodied AI, you will: Serve as a technical lead for SDS software across multiple components of the stack, setting direction for algorithms, architectures, and system interfaces across features and releases. Own the end‑to‑end technical strategy for key SDS behaviors and features, spanning perception/prediction integration, planning, controls, and system‑level interactions. Balance hands‑on technical work with cross-team leadership: you will still design and implement critical components in modern C++, while also guiding other senior and mid‑level engineers to deliver at scale. Collaborate closely with experts in perception, tracking, prediction, state estimation, localization, mapping, planning, controls, systems engineering, and safety to deliver robust, fail-operational behaviors for Super Cruise and future products. What you’ll be doing Define technical vision & architecture Set the technical direction for SDS software components with a focus on correctness, robustness, and predictable runtime behavior under tight latency and compute budgets. Architect scalable, modular multi‑sensor perception pipelines for camera, radar, and lidar, including detection, classification, lane/road feature extraction, freespace/occupancy, and environmental context. Establish and evolve interfaces and contracts between perception/prediction and upstream/downstream components (state estimation, localization, mapping, planning, controls, autonomy management). Lead high‑impact projects Lead design and delivery of multi‑object tracking systems (e.g., Kalman/extended/unscented filters, IMM, probabilistic data association, track lifecycle management) that provide stable, high‑quality tracks under real-world noise and edge cases. Drive development and integration of short‑horizon motion prediction for vehicles, VRUs, and other actors using a mix of analytical models and ML‑based forecasting, including uncertainty modeling that enables conservative, fail-operational decisions. Evaluate trade-offs between traditional computer vision/robotics and ML‑based approaches, choosing the right tool for the problem and ensuring solutions are production-ready under latency and compute constraints. Hands‑on technical excellence Design and implement critical components in modern C++ (C++17 or later), with careful attention to memory management, concurrency, and real-time behavior; use Python for tooling, data analysis, and ML experimentation. Set and uphold high standards for software quality: clean, well-documented APIs; rigorous code reviews; automated and regression testing; continuous integration; and rich logging and observability for on-road incidents. Profile and optimize SDS components to meet strict runtime performance, determinism, and resource‑usage requirements, using offline and online evaluation frameworks and metrics to guide iteration, regression detection, and performance tuning. Cross‑functional and safety alignment Work with state estimation, localization, mapping, and autonomy management partners to ensure SDS perception and prediction behavior supports reliable engagement and MRM in response to primary stack failures. Partner with Safety and Systems Engineering to ensure designs and implementations align with functional safety, redundancy, and MRM requirements for fail-operational, eyes‑off features. Represent SDS perception and prediction in cross‑org technical forums, ensuring alignment with broader autonomy, platform, and hardware roadmaps. Leadership & mentorship Provide technical mentorship to other engineers, from onboarding to growing senior and staff‑level talent in perception/tracking/prediction and modern C++. Lead and facilitate design reviews, incident post‑mortems, and cross-team technical deep dives, raising the bar for clarity, robustness, and execution speed. Help build a healthy engineering culture: pragmatic, data‑driven decision-making; strong ownership; and a focus on safety, reliability, and customer experience.
Stand Out From the Crowd
Upload your resume and get instant feedback on how well it matches this job.
Job Type
Full-time
Career Level
Mid Level
Education Level
Ph.D. or professional degree
Number of Employees
5,001-10,000 employees