Firmware Engineer
Role details
Job location
Tech stack
Job description
The Firmware Engineer will design, develop, and support embedded firmware for metering and grid-edge solutions. This individual will work across the full product lifecycle-from requirements and design to coding, testing, and sustaining engineering-while collaborating closely with cross-functional hardware, software, and systems teams in an Agile environment. This work will be based onsite in Lafayette IN., * Research, specify, design, develop, and test firmware for new products.
- Support and enhance existing firmware based on customer feedback, field issues, and product improvement initiatives.
- Develop internal tools for testing, debugging, automation, and programming to improve development efficiency.
- Provide technical support for both current and legacy meter functionality.
- Lead and contribute to component and system-level design, development, documentation, and validation activities.
- Collaborate on Agile, sprint-based development teams, working with multi-discipline engineering groups across hardware, firmware, software, and architecture.
- Participate in mentoring and developing junior engineers.
- Drive continuous improvement initiatives within the functional area.
- Contribute to innovation in new technologies, product architectures, and validation methods.
- Willingness to travel internationally as required.
Requirements
- Embedded C programming (must-have).
- Experience with Real-Time Operating Systems (RTOS) or bare-metal firmware design.
- Strong hands-on experience with microcontrollers or microprocessors (any family acceptable).
- Familiarity with embedded design constraints such as memory, timing, low-level drivers, and hardware interfaces.
Additional Skills & Qualifications
- Battery-powered embedded system design (strongly preferred).
- Flow measurement or sensor/system measurement experience.
- Python for scripting, test automation, and tooling.
- Exposure to industries such as industrial products, automotive, medical devices, microwave/RF, or other regulated, high-reliability sectors.
- Familiarity with CI/CD pipelines for embedded development.
- Experience with C++ for embedded or systems-level development.
- Experience in Agile / Scrum / sprint-based development environments.
Work Environment
The position requires onsite presence with some flexibility on start and end time. Core hours are typically 9 AM to 4 PM, onsite in Indianapolis.