JOBSEARCHER

Firmware Engineer

Job OverviewCRC 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 ResponsibilitiesEmbedded Firmware DevelopmentDevelop, 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 IntegrationWork 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 SupportDevelop 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 & ExperienceBachelor’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 HavesExperience 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.