Embedded Software Engineer (Firmware)

e-IT Professionals Corp.
Schaumburg, United States of America
2 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Senior

Job location

Schaumburg, United States of America

Tech stack

Abstraction Layers
ARM
C++
Static Program Analysis
Profiling
ETL
Software Debugging
Linux
Embedded Software
Firmware
Radio-Frequency Identification
Real-Time Operating Systems
Release Management
Toolchain
Universal Asynchronous Receiver/Transmitter
USB
State Machines
Peripherals
C++14
Heap (Data Structure)

Job description

  • Own the delivery of one or more embedded subsystems within the existing framework and credential reader application, from design through production release.
  • Design and implement components, threads, and modules in modern C++ (C++17 and above) using a defined Module/Thread/Component framework.
  • Implement ETL-based state machines and lifecycle hooks that meet hard real-time deadlines on Cortex-M4F microcontrollers.
  • Develop, extend, and harden Device Abstraction Layer drivers for STM32G474, including SPI, I2C, USB, UART, GPIO, timers, and DMA.
  • Extend and enhance the USB stack to support CCID and related functionality for secure credential readers.
  • Perform memory, timing, and power optimization, validating against budgets using static analysis, profiling tools, and on-target measurement.
  • Implement robust error handling, fault recovery, and safety-tolerant patterns consistent with a no-exceptions, no-heap-after-initialization policy.
  • Balance feature delivery with technical risk by making sound architectural decisions within an established framework without rewriting it.
  • Produce clean, maintainable code that meets established coding standards from the first day of engagement.
  • Collaborate with other embedded and firmware engineers to integrate new features and subsystems smoothly into the broader platform.
  • Validate firmware functionality through testing, debugging, and iteration to ensure reliable performance in production environments.
  • Contribute to the development of a new generation of secure NFC/RFID reader products by supporting key project milestones as a contracted engineer.

Requirements

  • Strong proficiency in modern C++ with experience in C++17 or later, and the ability to write high-quality, production-grade embedded code.
  • Minimum of 5 years of hands-on firmware development experience focused on driver-level and low-level microcontroller programming (not application-level development).
  • Demonstrated experience with real-time operating systems (RTOS), with Zephyr RTOS highly preferred.
  • Practical experience developing firmware for microcontrollers, including Cortex-M4F and STM32G474 or similar devices.
  • Strong understanding and practical experience with UART, USB, SPI, and I2C interfaces, with foundational to strong knowledge of USB as a core part of the work.
  • Experience implementing and maintaining Device Abstraction Layer drivers for peripherals such as SPI, I2C, USB, UART, GPIO, timers, and DMA.
  • Ability to implement ETL-based state machines and lifecycle hooks that meet hard real-time constraints.
  • Experience with memory, timing, and power optimization in embedded systems, including use of static analysis, profiling, and on-target measurement tools.
  • Proficiency in implementing error handling, fault recovery, and safety-tolerant patterns under a no-exceptions, no-heap-after-init policy.
  • Good understanding of security concepts and secure firmware design, ideally gained in domains such as secure devices or authentication solutions.
  • Bachelor s degree in Engineering or a related discipline.

Additional Skills & Qualifications

  • Experience working with Zephyr RTOS in production environments.
  • Familiarity with USB CCID or similar secure credential protocols.
  • Experience with Linux-based development environments and toolchains.
  • Exposure to enterprise environments where secure, passwordless access solutions are deployed.
  • Ability to integrate quickly into existing codebases and frameworks while respecting established architectural boundaries.
  • Strong problem-solving skills and the ability to work independently on deliverable-driven projects.

Apply for this position