Job Description
The Firmware Design Engineer will be responsible for developing the firmware required to interpret and manipulate the data
from a variety of sensing technologies used in the family of flow and BTU meter systems. The incumbent will use
state of the art FPGAs and microprocessors to generate flow data, system information and energy calculations for use
primarily in building control systems, and for flow media such as water, gas, and steam. The incumbent will also be
responsible for generating communication protocol stacks using the OEM development platforms for protocols such as
BACnet, Modbus, Mbus, HART & LON.
This position will be an active part of multi-disciplinary teams and will design and development firmware and software for
custom, leading-edge precision instrumentation. Working with electrical and mechanical engineers, project managers, and
client teams, you will have a direct impact on the success of projects and end products.
A passion for quality software and experience with writing code from high-level embedded applications down to low-level
device drivers are essential; good interpersonal skills and proven project leadership are highly valued.
KEY RESPONSIBILITIES
Responsibilities include, but are not limited to:
· Generate firmware using “C” code for various microprocessor platforms.
· Work closely with the hardware development engineers to support the existing microprocessor platforms and to
develop the strategy for future hardware platform architectures.
· Develop firmware test procedures including unit tests and hardware tests.
· Design and implement software for execution on custom embedded platforms, including drivers and board support
packages.
· Participate in system architecture design, including RTOS and μC/μP tradeoff decisions.
· Write software unit tests to exercise your code. · Lead and participate in design reviews and code reviews. · Participate in functional test planning. · Work with product development team to define requirements, develop software architecture, provide status updates, and track commitments. · Participate in brainstorms outside your area of expertise.
POSITION REQUIREMENTS · 4-year BS degree in computer science or electrical engineering (MS level a plus) · 6 years minimum of firmware development experience · Experience with low level drivers and one or more RTOSs (e.g. FreeRTOS) · Experience with C programming · Experience in development and debugging on small, low-power embedded platforms (ARM) · Experience with board bring-up. · Excellent written and spoken communication skills. · Ability to read electrical circuit schematics and understand impact on software operation and design.
PREFERRED QUALIFICATIONS:
· Master’s degree in related technical field
· Development experience with firmware platforms and communication protocol platforms
· Full cycle product development experience (from requirements to release)
· Experience developing precision instrumentation (flow meter technology a plus)
· Experience with hands-on programming of communication protocol stacks (experience with BACnet,
Modbus, HART and LonWorks a plus)
· Experience with python
· Experience in wireless technologies (e.g Bluetooth, WiFi, etc.) and serial communications protocols.
Full-time