Senior Software Engineer - ADAS Interactive Experience
- Compensation
- Not disclosed
- Location
- Milford, Michigan, United States of America
- Work setup
- Not specified
- Seniority
- Senior
- Employment
- Not specified
- Experience
- 5+ years
- Category
- Software engineering
- Posted
Skills
Nice to have
- Experience creating or improving developer tooling, build infrastructure, automated test frameworks, simulation environments, diagnostics, or debugging utilities.
- Experience delivering embedded software for production automotive systems and vehicle program milestones.
- Experience with automotive networks and protocols such as CAN, LIN, Ethernet, SOME/IP, DBC, or UDS.
- Experience designing cross-domain communication between safety-critical or real-time MCU functions and higher-level SoC services.
- Familiarity with automotive engineering practices and standards such as ASPICE, ISO 26262, AUTOSAR, or MISRA C/C++.
- Strong cross-functional communication skills, including the ability to explain architecture decisions and build alignment among senior technical partners.
Full description
Job Description
Senior Software Engineer — ADAS Interactive Experience
Job Summary
We are seeking a highly skilled and experienced Senior Software Engineer to join our ADAS HMI team within the Interactive Experience platform. In this role, you will design and deliver production automotive embedded software spanning microcontroller (MCU) and System-on-Chip (SoC) platforms. Your work will connect vehicle signals, sensors, and real-time controls to the services that power driver-facing alerts, controls, and situational-awareness experiences. You will apply strong system design and architecture skills to define clear boundaries, interfaces, and data flows across in-vehicle compute domains while meeting demanding requirements for safety, startup time, determinism, resource use, and reliability throughout the vehicle lifecycle.
Job Responsibilities
- Design and develop production automotive embedded systems spanning MCU firmware and SoC software using C/C++.
- Translate vehicle-level requirements into implementable software architectures, including component boundaries, hardware and software interfaces, communication protocols, data flows, timing budgets, diagnostics, and degraded-mode behavior.
- Participate in architecture reviews and communicate technical trade-offs involving latency, determinism, memory, compute, functional safety, cybersecurity, reliability, and long-term maintainability.
- Build reliable interfaces between real-time MCU applications and SoC services that support driver controls, alerts, chimes, lighting, haptics, and situational-awareness experiences.
- Design software that behaves predictably across vehicle power states, startup and shutdown sequences, communication faults, watchdog recovery, and constrained operating conditions.
- Collaborate with systems, electrical, HMI, ADAS, platform, supplier, and vehicle integration teams through hardware bring-up, bench integration, vehicle validation, and production launch.
- Write clean, efficient, tested, and well-documented C/C++ code that follows embedded software standards and team development practices.
- Debug complex cross-domain issues involving MCU firmware, vehicle networks, IPC, SoC services, operating-system behavior, electrical interfaces, and downstream applications.
- Own major vehicle features through the full development lifecycle, from concept and design through implementation, integration, vehicle validation, production launch, and field maintenance.
- Improve engineering productivity through build, test, debugging, simulation, profiling, or developer-workflow tooling.
- Drive shift-left quality through unit, software-in-the-loop, hardware-in-the-loop, integration, performance, and fault-injection testing.
- Mentor junior engineers and serve as a technical resource for system design, C/C++ development, and cross-domain debugging.