Embedded Software Engineer

General Motors11 months ago
Warren, MI, United States
Hybrid
Full-time
Junior Level (1-3 years)

Job Description

Position Overview

As an Embedded Software Engineer on the Vehicle Mechatronics Embedded Controls (VMEC) team, you will contribute to the design, development, and deployment of embedded control systems that support vehicle motion, access, visibility, occupant protection, and comfort across GM’s global portfolio. In this role, you will focus on developing Body Controls software for GM vehicles worldwide, working within Agile teams responsible for end-to-end delivery—including requirements, development, testing, and verification—in a collaborative, fast-paced environment.

Key Responsibilities

  • Collaborate with Product Managers, testers, and fellow developers using methodologies like Behavior-Driven Development (BDD) and Test-Driven Development (TDD) to deliver features for GM’s next-generation EV and ICE vehicles.
  • Design, implement, and integrate complex embedded software systems in hand-coded C, with flexibility in selecting implementation approaches.
  • Develop and maintain unit tests and multicomponent tests, including model/code equivalence testing, to ensure robust software validation.
  • Participate fully in Agile team activities and ceremonies.
  • Work closely with internal teams such as calibration and vehicle integration.
  • Partner with GM suppliers to define and validate provided software libraries.
  • Use debugging tools—including Lauterbach—to identify root causes and resolve defects.

Required Qualifications

  • Bachelor’s Degree in Computer Science, Mechatronics, Software, Electrical or Computer Engineering.
  • Experience with writing and debugging C code and/or Rational Rhapsody.
  • Minimum 3 years of embedded software development experience preferred; familiarity with GM or other automotive software standards (e.g., AUTOSAR), test procedures, and build processes is an asset.
  • Experience with the CppUTest framework, including debugging CppU Tests and implementing dynamic scheduling.
  • Experience with software configuration management processes and tools (e.g., Git Ecosystem) preferred.
  • Experience in deciphering Ethernet, CAN, and LIN logs.
  • Development/testing experience on SIL/HIL or other virtual environments.
  • Individually motivated with a high degree of independence; Scrum Team members are expected to pursue their goals proactively.
  • Prior experience working in Agile/Scrum/SAFe is an asset.
  • Excellent oral and written communication skills and strong interpersonal abilities to work effectively in a geographically dispersed team.
  • Ability to manage time effectively and meet deliverable deadlines.
  • Experience in any of the domains such as vehicle access, occupant protection, vision & visibility, or comfort/HVAC is a plus.

Required Skills

Embedded Software Development
Debugging with Lauterbach
Unit and Integration Testing
C Programming
Behavior-Driven Development (BDD)
CppUTest
AUTOSAR
Hardware-in-the-Loop (HIL)/Software-in-the-Loop (SIL)
Software Configuration Management (Git)
Agile/Scrum
Ethernet, CAN, and LIN Protocols
Test-Driven Development (TDD)