About This Role
This role involves leading the development and support of all firmware within the Electrical Engineering group, eventually becoming the group's firmware owner. The engineer will act as a technical bridge between sales, customers, and the engineering team, providing support and training, while also implementing firmware changes on legacy products and supporting the development of new electronic boards.
Responsibilities
- Lead the development and support of all firmware in the Electrical Engineering group
- Act as the technical bridge between sales, customers, and engineering
- Provide pre and post sales support
- Train customers to interface with equipment
- Implement firmware changes on legacy products still in production, including analysis of older designs with limited documentation
- Support the development of new electronic boards, from pin definition through firmware delivery
- Develop bare metal C/C++ firmware for STM32H7 microcontrollers, from pin assignment and board bring up with hardware engineers through peripheral drivers and debugging (JTAG, oscilloscopes, logic analyzers, etc.)
- Develop and improve the advanced PC based C++ graphical user interface, which supports multiple communication interfaces (Ethernet, CAN, serial), command and scripting operation, and real time graphing
- Create and maintain documentation: initial design requirements, firmware architecture and design documents, interface specifications (command sets and protocols), test plans and results, release notes, and customer interface guides
- Write clean, well structured, well commented code, managed in Git with full traceability of changes to requirements and releases
Requirements
- Strong analytical skills and sound engineering judgment under ambiguity
- Ability to quickly learn and take ownership of existing code bases, including those with limited documentation
- Self directed, able to work as the group's sole firmware engineer and set priorities across multiple projects
- Clear communication with customers and internal teams, including teaching customer engineers to use interfaces
- Commitment to technical excellence, documentation, and knowledge transfer
- Customer oriented thinking and ability to represent the company in technical discussions
- Bachelor's degree in electrical engineering, computer engineering, or a related field (MS desired)
- Minimum of 8 years of experience in firmware development and application support for complex electromechanical systems / control systems
- Strong proficiency in C and C++, including Windows application development
- Experience with bare metal firmware on STM32 or similar ARM Cortex M microcontrollers
- Understanding of microcontroller architecture and digital circuit design
- Experience bringing up boards from schematics
- Experience with communication protocols such as UART, SPI, I2C, CAN, and Ethernet
- Experience in bootloader development and Git
- Willingness to travel as required for projects and customer support
- Excellent English communication skills
Nice to have:
- EtherCAT experience
- FPGA experience
- Experience with motion control and/or control systems
- Thermal systems experience
- German and/or French language skills
Benefits
- Medical, dental & vision insurance
- 401(k) with company matching contributions
- Employee Stock Purchase Plan
- Tuition assistance
- Disability & life insurance
- Profit Sharing
About the Company
This range represents Cohu’s good faith estimate of what it reasonably expects to pay for this role upon hire. This role may also be eligible for other compensation programs as determined by company policy.