
Firmware Engineer
Cohu
Job description
** Main Objectives **
-
Lead the development and support of all firmware in the Electrical Engineering group, becoming the group's firmware owner within approximately six months.
-
Act as the technical bridge between sales, customers, and engineering: provide pre and post sales support, and train customers to interface with our equipment.
-
Implement firmware changes on legacy products still in production, including analysis of older designs where documentation is limited.
-
Support the development of new electronic boards, from pin definition through firmware delivery.
** Essential Functions/Major Responsibilities :**
-
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 our 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.
** Essential Quality Expectations **
-
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 our interfaces.
-
Commitment to technical excellence, documentation, and knowledge transfer.
-
Customer oriented thinking and ability to represent the company in technical discussions
** Qualifications & Requirements :**
-
Education/Training: Bachelor's degree in electrical engineering, computer engineering, or a related field (MS desired).
-
Experience: Minimum of 8 years of experience in firmware development and application support for complex electromechanical systems / control systems.
-
Skills/Technical Requirements :
-
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. EtherCAT is a plus.
-
Experience in bootloader development and Git.
-
FPGA experience is a plus.
-
Experience with motion control and/or control systems. Thermal systems experience is a plus.
-
Willingness to travel as required for projects and customer support.
-
Excellent English communication skills. German and/or French is a plus.
Compensation: The estimated base pay range for this position is $115,000 to $135,000 per year, depending on qualifications, experience, education, and other job-related factors. 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.
Featured benefits
-
Medical, dental & vision insurance
-
401(k) with company matching contributions
-
Employee Stock Purchase Plan
-
Tuition assistance
-
Disability & life insurance
-
Profit Sharing