Firmware Engineer
Indexed description
Job Overview
CRC is seeking a hands-on Embedded Firmware Engineer to develop and sustain firmware for HVAC control, airflow measurement, and critical-environment monitoring products.
This role will work directly with microcontroller-based hardware, sensors, actuators, communications interfaces, and production test systems. You will contribute to firmware design and implementation across current and next-generation products, support hardware/software integration, investigate complex issues, and help improve the reliability and maintainability of CRC’s embedded platforms. This is a product-embedded engineering role focused on physical devices and real-time control systems.
Key Responsibilities
Embedded Firmware Development
- Develop, debug, and maintain embedded firmware in C for microcontroller-based products.
- Contribute to embedded C++ development where applicable for device software, platform services, or user-interface-connected systems.
- Implement and support real-time control, sensor processing, actuator control, communications, diagnostics, and error handling.
- Develop firmware features from requirements through verification, release, and production support.
- Contribute to product-level software architecture, interfaces, and maintainable code structure.
Hardware and System Integration
- Work closely with hardware engineering during schematic review, board bring-up, prototype evaluation, and product integration.
- Integrate and troubleshoot hardware peripherals and communication interfaces including I2C, SPI, UART, RS-485, and similar interfaces.
- Investigate timing, communication, sensor, actuator, and system-level issues using oscilloscopes, logic analyzers, debuggers, and protocol-analysis tools.
- Support hands-on lab activities including probing, wiring, soldering, test setup, and prototype evaluation.
Verification, Release, and Lifecycle Support
- Develop or improve test utilities, production programming tools, diagnostics, and firmware validation methods.
- Participate in code reviews, release preparation, configuration control, and defect-resolution activities.
- Support manufacturing, quality, field investigations, root-cause analysis, and sustaining engineering needs.
- Help improve firmware reliability, diagnosability, maintainability, and test coverage across product lifecycles.
- Contribute to reusable firmware components, documentation, and engineering practices as the team continues to mature.
Required Skills & Experience
- Bachelor’s degree in Computer Engineering, Electrical Engineering, Computer Science, Software Engineering, or equivalent relevant experience.
- 3+ years of professional embedded firmware or embedded systems software development experience for physical products.
- Strong hands-on proficiency in embedded C.
- Working knowledge of C++ or demonstrated ability to work in mixed C/C++ embedded codebases.
- Experience with microcontroller-based systems, including timing, memory constraints, interrupts, peripherals, and real-time behavior.
- Experience developing bare-metal firmware, RTOS-based firmware, or equivalent timing-critical embedded systems.
- Experience with embedded communication interfaces such as I2C, SPI, UART, RS-485, or similar protocols.
- Experience debugging hardware/software integration issues using lab tools such as oscilloscopes, logic analyzers, JTAG/SWD debuggers, or protocol analyzers.
- Ability to work independently on assigned firmware workstreams while collaborating closely with hardware, product engineering, manufacturing, and quality teams.
Nice to Haves
- Experience with STM32 or similar ARM-based microcontroller platforms.
- Experience with FreeRTOS, embedded Linux, Yocto, QNX, or similar embedded operating environments.
- Experience developing software for industrial controls, HVAC equipment, medical devices, automation equipment, or other reliability-critical products.
- Experience with BACnet, Modbus, CAN, RS-485, or building-automation communications.
- Experience with firmware test automation, unit testing, hardware-in-the-loop testing, CI/CD, or embedded release automation.
- Experience with production programming, factory test systems, diagnostics, or field-service tools.
- Experience with Qt/QML, embedded displays, or device user interfaces.
- Experience working in a regulated, safety-critical, or high-reliability product-development environment.
Create a free Caio profile to unlock more results and save your role and location preferences.
Unlock free search