About This Role
This hands-on engineering role involves designing and developing embedded firmware for advanced flow control products. You will work across firmware, hardware, and systems engineering to create reliable, scalable solutions for real-time embedded applications. The position contributes throughout the product development lifecycle, from system architecture and requirements through implementation, testing, design reviews, and release to manufacturing.
Responsibilities
- Design, develop, test, and maintain embedded firmware using C/C++ in a multi-threaded, real-time environment
- Develop firmware for EtherCAT, DeviceNet, and legacy protocol flow control products
- Translate product requirements into functional, firmware, and hardware/software design specifications
- Contribute to embedded system and microcontroller/DSP architecture, considering performance, maintainability, scalability, and long-term product sustainability
- Analyze and optimize embedded system resources for efficiency, stability, reliability, and scalability
- Participate in code reviews, design reviews, and peer reviews of proposed hardware and software changes
- Develop and execute design verification and test plans
- Troubleshoot complex firmware and system-level issues throughout development and product lifecycle
- Document product designs and support successful release and transition to manufacturing
- Partner with electronics design engineers on the selection and qualification of new or replacement components
- Collaborate with multidisciplinary engineering teams to evaluate technical tradeoffs and guide designs toward optimal solutions
- Work independently with directional supervision while exercising sound technical judgment
Requirements
- Bachelor’s degree in Computer Engineering, Computer Science, Electrical Engineering, Electronics Engineering, or a related technical discipline, or equivalent relevant experience
- 4+ years of combined firmware, embedded software, embedded controls, or closely related engineering experience
- 3+ years of hands-on programming experience using C and/or C++ for embedded systems
- Experience developing firmware in a real-time, concurrent, interrupt-driven, or multi-threaded environment
- Experience developing firmware for microcontroller-, SoC-, or DSP-based embedded systems
- Experience integrating firmware with hardware interfaces and peripherals such as ADCs, timers, PWM, GPIO, UART, SPI, I2C, CAN, or similar interfaces
- Understanding of embedded system architecture, hardware/software interfaces, timing constraints, resource-constrained environments, and common firmware failure modes
- Experience applying software engineering practices such as source control, issue tracking, peer review, modular design, defect management, testing, and maintainable coding standards