Job Summary
We are seeking a highly skilled Embedded Firmware Engineer to join our development team. The ideal candidate will be responsible for working closely with the Engineering Group on the design, development, testing, documentation, and maintenance of firmware for embedded devices. The role will also support the Product Development Manager with project management activities.
Responsibilities
- Establish design requirements, specifications, block diagrams, test requirements, test plans, and test procedures for product firmware.
- Implement and troubleshoot firmware designs based on product requirements·
- Support Test Engineering and Quality Assurance teams during firmware verification and validation.
- Customize and adapt Board Support Packages (BSPs) for new products based on schematic diagrams and IC data sheets.
- Prepare technical documentation detailing firmware operation for both internal and external customers.
- Draft APIs and communication protocols
- Develop new operational algorithms to support requested product features
- Develop code for bare-metal systems and RTOS based on
- Enforce clean code principles, architectural separation of concerns, and modular design across firmware layers
- Analyze, maintain, and safely modernize existing legacy codebases to improve performance and maintainability
- Provide technical support to manufacturing teams and affiliate companies
- Assist with project management activities, including preparing Microsoft Project files, managing action item lists, facilitating design requirement communication across interdisciplinary teams, and supporting production troubleshooting during product launch and ramp-up.
- Collaborate closely with multidisciplinary project teams throughout the product lifecycle
- Review and analyze electrical hardware schematics and component datasheets to ensure software alignment with board layouts.
- Test early-stage hardware and prototypes by developing custom, lightweight test firmware to validate component functionality and board bring-up.
- Utilize, maintain, and structure embedded software projects on GitLab/GitHub, including managing repositories, branching strategies, and merging workflows
Qualifications/ Education:
- Bachelor’s or higher degree in Computer Engineering, Computer Science, or equivalent
- 2+ years of work experience in firmware design roles for real-time embedded systems using RTOS and bare-metal environments
- Experience developing on ARM Cortex-M microcontrollers is required
- Strong C programming skills for embedded systems
- Strong diagnostic and troubleshooting skills for tracking down complex bugs, and the patience to navigate legacy architectures. (including debuggers, oscilloscopes, and other lab equipment)
- Proficiency with integrated development environments (VSCode, Eclipse) as well as manual build environments (GNU tools, batch files, and shell scripts)
- Good understanding of electronic circuit design to provide meaningful feedback during the product design stage
- Experience with communication protocols and peripherals: SPI, I2C, UART, RS232, RTC, and WDT.
- Experience with AT commands.
- Converter peripherals used to sample raw analog signals from sensors or generate precise analog voltage outputs.
- Good familiarity using Git, GitHub/GitLab, including best practices (e.g., interactive rebasing, resolving complex merge conflicts, and meaningful commit structures).
- Proficient with Microsoft Excel, and Word
- Excellent English language and technical writing skills
- Experience with USB/Ethernet drivers/stack on embedded system application.
- Experience/Familiar with CAN and LIN protocols.
- Hands on with Bluetooth LE application.
- Experience using LGVL or another lighweight graphic library for embedded systems
- Experience with Linux environment
- Hands on using LittleFS as embedded file system
Benefits:
- Company events
- Company pension
- Dental care
- Disability insurance
- Employee assistance program
- Extended health care
- Flexible schedule
- Life insurance
- On-site parking
- Paid time off
- Vision care
Work Location: In person