The Sr. Embedded Firmware Engineer will be responsible for developing and investigating algorithms, creating embedded firmware, and integrating and verifying system performance of advanced commercial and industrial water embedded electronics products. This individual will be self-motivated and creative with a demonstrated ability to design, develop and verify software / firmware for compact, low-power, embedded microcontroller electronic products.
• Translate high-level project and system requirements into well structured software architectures and optimized firmware.
• Take ownership of the system-level firmware architecture and lead other firmware developers through a fully integrated platform / product solution.
• Develop, implement and maintain accurate software design requirements, functional specifications, and test plans.
• Conduct system level preliminary and detailed software / firmware design reviews to ensure adherence to design requirements. Document and address all issues in a timely manner.
• Research, develop, verify and release embedded firmware for low-power microcontroller platforms controlling real-time sensors and actuators in commercial and industrial water management products.
• Interact with cross-functional electronics, mechanical, test and production team members to optimize product definition, performance and manufacturability.
• Keep abreast of industry concepts, products, and trends associated with water control and management products in order to evaluate and deploy the optimal solutions.
• Minimum of a Bachelor’s degree in Electrical / Computer Engineering, Advanced degree a plus.
• Demonstrated experience developing, porting and supporting embedded firmware for commercial and / or consumer products.
• 5+ years of embedded software / firmware development including experience with BSPs, APIs, system level firmware integration, real-time control of hardware sensors and actuators, microcontroller peripherals [I2C, UART, SPI and ADCs], system functional verification methods and firmware release management.
• Experience programming in C / C++ / C# and applying software / firmware version control (e.g. Perforce, Git, other) and firmware release processes.
• Experience building firmware for MSP, PIC and ARM-based microcontrollers, emulators, real-time debugging, in-system programming and field-update methods.
• Proven experience with structured software design and development, prototype and product porting, functional and regression testing, and hands-on troubleshooting of system-level firmware in a product development environment.
• Understanding of and implementation of hardware abstraction layers for modular firmware deployment and portability.
• Use of standard office software applications to document accurate software requirements and design specifications, test plans and reports, and version release records.