General Motors

Senior Software Engineer – Viewing, C++

General Motors

full-time

Posted on:

Location Type: Hybrid

Location: WarrenCaliforniaMissouriUnited States

Visit company website

Explore more

AI Apply
Apply

Salary

💰 $153,200 - $234,100 per year

Job Level

Tech Stack

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