Firmware Engineer
- Discuss this with your agent
- Open in Claude
- Open in ChatGPT
Prepare application
- Draft this with your agent
- Open in Claude
- Open in ChatGPT
Role details
Tech stack
+13 more
Job description
The Firmware Engineer will be responsible for maintaining and updating firmware on four proprietary hardware devices critical to the operations of the Demand Response business. These devices support remote energy monitoring, control equipment toggling, and secure communication with central servers and dispatch platforms. This role requires a detail-oriented embedded systems engineer with deep knowledge of microcontroller architectures, communication protocols, and legacy firmware systems. The ideal candidate will be a proactive problem solver with a strong interest in sustaining long-lifecycle products and supporting hardware deployed in the field., Technical Firmware Maintenance:
- Maintain and enhance embedded firmware for low-power microcontroller-based systems.
- Analyze, debug, and resolve field-reported issues, ensuring reliability and uptime.
- Modify and extend legacy codebases with minimal documentation.
- Collaborate with electrical engineers to support device-level debugging and testing.
Hardware Interface Integration:
- Work with digital I/O, relays, KYZ pulse counting, analog inputs, and related interfaces.
- Use development tools and equipment such as debuggers, oscilloscopes, and logic analyzers.
- Integrate serial protocols including UART, RS-232, RS-485, SPI, and I2C.
Communication Systems:
- Support and troubleshoot cellular modem communications using AT commands.
- Maintain and optimize firmware for reliable data transmission from field-deployed units.
- Support satellite module integration for remote telemetry.
Product Lifecycle & Sustainability:
- Participate in long-term support for embedded products used in energy monitoring.
- Maintain secure firmware update mechanisms, bootloaders, and OTA processes.
- Ensure backward compatibility and long-term maintainability of deployed firmware.
- Collaborate with senior engineers to understand design rationale and architecture.
Documentation & Collaboration:
- Create and maintain technical documentation outlining firmware behavior and architecture.
- Work cross-functionally with hardware and field teams to coordinate debugging and enhancements.
- Record and share tribal knowledge to enhance future sustainability.
Other Duties:
- Support continuous improvement efforts in firmware processes and maintainability.
- Assist with legacy code refactoring efforts while minimizing risk to deployed systems.
- Provide input into hardware design with firmware constraints in mind.
Requirements
- Bachelor’s degree in Electrical Engineering, Computer Engineering, or related field (or equivalent experience).
Work Experience:
- 2-5 years of experience in embedded firmware development.
- Prior exposure to legacy code maintenance and fielded device support.
Certifications:
- No certifications required, but familiarity with secure firmware design or industrial communication protocols is beneficial.
Skills & Tools:
- Experience in Embedded Systems programming with competence in C/C++, Python and Linux Shell Script
- Experience working with Embedded Linux and associated open-source resources. Including cross compile toolchains and Yocto image build software.
- Ability to use debuggers, oscilloscopes and logic analyzers.
- Serial communication protocols: UART, RS-232, RS-485, SPI, I2C.
- Experience with Modbus, KYZ pulse metering, and industrial energy monitoring equipment.
- Familiarity with battery-powered device design and power optimization.
- Clear communication and strong documentation practices.
- Comfort with schematics and cross-functional engineering collaboration
Skills Required:
- Microcontroller Architectures
- Embedded Systems Programming
- Communication Protocols
- Legacy Code Maintenance
- Fielded Device Support
Additional Skills:
- Bootloaders
- OTA processes
- Oscilloscopes
- Logic analyzers
- Digital i/o
- Relays
- KYZ pulse counting
- Analog inputs
- Cellular modem communications
- Satellite module integration
- Secure firmware update mechanisms
- Embedded Linux
- Cross compile toolchains
- Yocto image build software
- C/C++
- Python
- Linux shell script
- UART
- Rs-232
- Rs-485
- SPI
- I2c
- Modbus
- KYZ pulse metering
- Industrial energy monitoring equipment
- Battery-powered device design
- Power optimization
- Debuggers
- Schematics
- Clear communication
- Documentation practices
- Cross-functional engineering collaboration
- Secure firmware design
- Industrial communication protocols
Apply for this position
This job is hosted externally. Click below to view the full posting and apply.
Prepare application
- Draft this with your agent
- Open in Claude
- Open in ChatGPT
Good distractions
Talks and stories from around this role — technically off-topic, practically not.
Moments
Explore playlistsVideos
See allRelated articles
See all
How We Built a Worry-Free System That Runs for 10+ Years – And What We’d Do Again
Is Software Engineering Hard?
Software Engineer Career: Things You Should Know
7 Important Tips That Every Software Developer Should Know