
Senior Software Engineer – Viewing, C++
General Motors
full-time
Posted on:
Location Type: Hybrid
Location: Warren • California • Missouri • United States
Visit company websiteExplore more
Salary
💰 $153,200 - $234,100 per year
Job Level
About the role
- Own the full software development life cycle for C++‑based viewing and image‑processing components: requirements, design, implementation, optimization, test, and deployment.
- Design and implement real‑time C++ pipelines for: Camera ingestion and buffering, Image processing and computer vision algorithms, Graphics composition (guidelines, overlays, stitched views).
- Develop robust multithreaded components that move and process high‑bandwidth video safely and efficiently (synchronization, lock‑free patterns where applicable).
- Profile and optimize latency, throughput, and memory for complex C++ modules running on constrained automotive platforms.
- Collaborate closely with software and system architects, vehicle systems engineering, and application engineers across global GM teams to integrate viewing features into complete vehicle experiences.
- Build, debug, and validate your code on: Target ECUs and development benches, Real vehicles for on‑road and proving‑ground testing.
- Diagnose complex issues across camera drivers, middleware, viewing services, and UI clients; drive root‑cause analysis and durable fixes.
- Contribute to safety‑critical software integration and verification, following automotive safety and quality processes.
- Stay current on computer vision, graphics, C++ language evolution, and tooling, and bring new techniques into the Viewing stack.
Requirements
- Bachelor’s degree in Computer Science, Software Engineering, Electrical/Computer Engineering, or related technical field.
- 5+ years of professional experience in C++ software development for production systems.
- Strong, hands‑on experience with modern C++ (C++11 or later), including: STL, templates, RAII, smart pointers.
- Clean API design and modular architecture.
- Proven expertise in multithreaded programming, including: Threading models, synchronization primitives (mutexes, condition variables, atomics).
- Debugging race conditions, deadlocks, and performance bottlenecks.
- Experience building complex, performance‑sensitive systems in C++ (e.g., streaming, real‑time, embedded, or similar domains).
- Solid computer science fundamentals: algorithms, data structures, complexity, memory management.
- Demonstrated experience owning features end‑to‑end: from requirements and design through implementation, integration, and deployment.
Benefits
- This job may be eligible for relocation benefits.
Applicant Tracking System Keywords
Tip: use these terms in your resume and cover letter to boost ATS matches.
Hard Skills & Tools
C++multithreaded programmingreal-time systemscomputer visionimage processingAPI designmodular architectureperformance optimizationalgorithmsdata structures
Soft Skills
collaborationproblem-solvingroot-cause analysiscommunicationattention to detail
Certifications
Bachelor’s degree in Computer ScienceBachelor’s degree in Software EngineeringBachelor’s degree in Electrical/Computer Engineering