What are the responsibilities and job description for the Embedded Software Engineer (Firmware) position at Jobs via Dice?
Dice is the leading career destination for tech experts at every stage of their careers. Our client, e-IT Professionals Corp., is seeking the following. Apply via Dice today!
Hi,
Role: Embedded Software Engineer (Firmware)
Location: Schaumburg, IL (Onsite)
Type: Contract (W2)
Responsibilities
Job Description
Hi,
Role: Embedded Software Engineer (Firmware)
Location: Schaumburg, IL (Onsite)
Type: Contract (W2)
Responsibilities
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.
- 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.
- 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.