1

Embedded C Jobs in Michigan (NOW HIRING)

Embedded C * MATLAB * Integration Testing * Low-layer code debugging * LIN * CAN * Diagnostics * NVM * HIL Testing * Requirements Management * Algorithm Design from requirements Education ...

next page

Showing results 1-20

Embedded C information

See Michigan salary details

$61K

$133.7K

$151.7K

How much do embedded c jobs pay per year?

As of Sep 7, 2026, the average yearly pay for embedded c in Michigan is $133,688.00, according to ZipRecruiter salary data. Most workers in this role earn between $114,600.00 and $150,800.00 per year, depending on experience, location, and employer.

What is Embedded C?

Embedded C is a programming language extension of the C language, specifically designed for programming embedded systems such as microcontrollers, IoT devices, and real-time systems. Embedded C developers write code that directly interacts with hardware to control devices, optimize performance, and ensure reliable operation. Their responsibilities often include writing firmware, debugging hardware-software integration, and ensuring the efficient use of system resources.

What are the key skills and qualifications needed to thrive as an Embedded C engineer?

To thrive as an Embedded C Engineer, you need a solid background in C programming, embedded systems concepts, and a degree in electronics, computer engineering, or a related field. Familiarity with microcontrollers, RTOS, debugging tools like JTAG, and industry certifications such as ARM or Embedded Systems certification are typically required. Strong problem-solving, attention to detail, and effective teamwork skills help you excel in developing reliable and efficient embedded solutions. These competencies are critical because they ensure the creation of robust, high-performance embedded products that meet both technical and market requirements.

What are some common challenges faced by Embedded C developers when working on cross-functional teams?

Embedded C developers often collaborate closely with hardware engineers, firmware teams, and product managers. A common challenge is ensuring smooth communication between disciplines, especially when translating hardware requirements into efficient software solutions. Additionally, balancing resource constraints—such as memory and processing power—while meeting project deadlines requires strong problem-solving skills. Being proactive in documenting code and discussing technical limitations helps foster effective teamwork and successful project outcomes.

What is the difference between Embedded C vs Microcontroller Firmware Developer?

AspectEmbedded C

Skill FocusProgramming language used for embedded systems development
Work EnvironmentEmbedded systems, microcontroller programming, hardware integration
CertificationsKnowledge of C programming, embedded systems certifications
Industry UsageElectronics, automotive, consumer devices, IoT

Embedded C is a programming language used to develop software for embedded systems, including microcontrollers. A Microcontroller Firmware Developer writes the actual firmware that runs on microcontrollers, often using Embedded C. While Embedded C refers to the language, the Firmware Developer role involves applying that language to create functional firmware. Both roles require similar skills and certifications, and they are often used interchangeably in industry contexts.

Infographic showing various Embedded C job openings in Michigan as of August 2026, with employment types broken down into 85% Full Time, 13% Part Time, and 2% Contract. Highlights an 82% Physical, 5% Hybrid, and 13% Remote job distribution, with an average salary of $133,688 per year, or $64.3 per hour.

Embedded Software Engineer - MATLAB & Embedded C

HTC Global Services

Allen Park, MI • On-site

$119K - $157K/yr

Full-time

Re-posted 22 days ago


Job description

Embedded Software Engineer - C / MATLAB Simulink
Overview / Summary
We are seeking an experienced Embedded Software Engineer with strong hands-on experience in Embedded C, MATLAB/Simulink development and modeling, and embedded software testing. This role focuses on developing, debugging, integrating, and validating low-level software for embedded systems while working at the intersection of embedded software and hardware.
The ideal candidate will have experience translating system and software requirements into embedded code and algorithms, developing MATLAB/Simulink models, and performing unit, integration, and Hardware-in-the-Loop (HIL) testing.
Key Responsibilities
  • Design, develop, debug, integrate, and maintain embedded software using Embedded C for hardware-connected and low-level applications.
  • Develop and maintain MATLAB/Simulink models, algorithms, and supporting code based on system and software requirements.
  • Translate system, functional, and software requirements into embedded software designs and implementable algorithms.
  • Perform unit, integration, and system-level testing of embedded software.
  • Develop and execute Hardware-in-the-Loop (HIL) test scenarios and analyze test results.
  • Perform low-level debugging of embedded software and investigate software, hardware, and integration issues.
  • Develop, integrate, and troubleshoot software involving CAN and LIN communication protocols.
  • Support embedded systems involving diagnostics and Non-Volatile Memory (NVM) functionality.
  • Analyze software and system test failures, perform root-cause analysis, and implement corrective actions.
  • Collaborate with hardware, systems, controls, software, and test engineers to support successful software and hardware integration.
  • Participate in requirements management, requirements traceability, test planning, defect tracking, and verification and validation activities.
  • Support software integration, validation, and release activities across embedded system development cycles.
  • Contribute to continuous improvement of embedded software development, debugging, and testing processes.

Required Qualifications
  • 4+ years of hands-on embedded software development experience.
  • Strong hands-on experience developing software using Embedded C.
  • Hands-on experience with MATLAB/Simulink development, modeling, or algorithm implementation.
  • Demonstrated experience performing unit and integration testing of embedded software.
  • Experience debugging embedded software and investigating low-level software issues.
  • Experience translating technical or system requirements into software designs, algorithms, and implementation.
  • Practical experience in at least one additional programming language or advanced proficiency in a primary programming language.
  • 6+ years of overall IT experience consistent with an Engineer 3 level.
  • Bachelor's degree in Computer Engineering, Electrical Engineering, Computer Science, Software Engineering, or a related technical discipline.

Preferred Qualifications
  • Experience developing embedded software for automotive or other hardware-connected systems.
  • Hands-on experience with HIL testing and hardware/software integration.
  • Experience with CAN and LIN communication protocols.
  • Experience with automotive diagnostics.
  • Experience with NVM/Non-Volatile Memory.
  • Experience with embedded system requirements management and requirements traceability.
  • Experience designing and implementing algorithms from system requirements.
  • Experience performing low-level debugging and root-cause analysis of embedded software and hardware issues.
  • Experience working directly with hardware, controls, systems, and test engineering teams.
  • Experience with MATLAB/Simulink-based algorithm development and validation.
  • Experience with embedded test automation.
  • Experience debugging using embedded/low-level development tools.
  • Master's degree in Electrical Engineering, Computer Engineering, Computer Science, Software Engineering, Controls Engineering, or a related technical discipline.