Career Opportunity
Firmware Design Engineer
The Firmware Engineer combines strong software engineering fundamentals with practical hardware programming experience, delivering practical results while maintaining engineering rigor. They understand how to build maintainable, testable, and reliable software, working directly with electronic hardware. This position involves both new product development and continuation engineering of existing products, requiring curiosity, adaptability, and the ability to work effectively with legacy codebases of varying maturity levels.
Key Responsibilities
- Design, implement, test, and maintain embedded firmware primarily in C
- Perform continuation engineering on existing products, including troubleshooting, feature enhancements, defect resolution, and lifecycle support
- Investigate, debug, and resolve firmware, software, and system-integration problems using appropriate tools and methodologies
- Develop supporting tools, test applications, and manufacturing utilities in Python
- Support manufacturing and production teams by developing and maintaining test platforms, diagnostic tools, and production software
- Speak to and participate in architecture and software design discussions that promote maintainability, modularity, and reliability
- Participate in code reviews, provide constructive feedback, improve code quality, and elevation of engineering practices
- Produce clear documentation, test and validation procedures, and technical design information, and of the firmware and software tools
Qualifications
- Bachelor’s degree in computer science or related discipline
- Strong proficiency in the C Programming language
- Strong experience developing software for microcontrollers, embedded hardware, and PC-applications
- Strong understanding of software engineering principles, including:
- Abstraction, Decoupling and Cohesion
- Design Patterns and Structures
- UML and Software Documentation
- Optimizations for Microcontrollers
- Experience debugging complex software and firmware systems
- Refactoring legacy systems while preserving functionality and reliability
- Ability to understand electronic schematics and principles
- Hands-on experience using laboratory equipment, such as oscilloscopes, multimeters, or similar tools
- Writing Clean, Readable, and Well-Documented Code
- Strong written communication skills and commitment to producing well-documented, supportable deliverables
- Ability and adaptability to work effectively in a multidisciplinary engineering environment
Preferred Qualifications
- Experience developing embedded systems and real-time firmware: PIC32M, PIC18F, Freescale, and SiLabs MCUs
- Experience writing Python utility applications, automation tools, or test software
- Experience interfacing with I2C, UART, SPI, USB, ADCs, DACs, sensors, and communication peripherals
- Experience working with legacy production and inherited codebases
- Experience with instrumentation, data acquisition, or laboratory automation
- Familiarity with manufacturing test systems, automated testing, or production support
- Exposure to telecommunications, optical communications, or RF systems, digital and analog control loops
- Experience developing test fixtures, hardware validation tools, or engineering utilities
- Hardware Experience is a plus: Schematic Development, Circuit Troubleshooting
The Firmware Engineer combines strong software engineering fundamentals with practical hardware programming experience, delivering practical results while maintaining engineering rigor. They understand how to build maintainable, testable, and reliable software, working directly with electronic hardware. This position involves both new product development and continuation engineering of existing products, requiring curiosity, adaptability, and the ability to work effectively with legacy codebases of varying maturity levels.
Key Responsibilities
- Design, implement, test, and maintain embedded firmware primarily in C
- Perform continuation engineering on existing products, including troubleshooting, feature enhancements, defect resolution, and lifecycle support
- Investigate, debug, and resolve firmware, software, and system-integration problems using appropriate tools and methodologies
- Develop supporting tools, test applications, and manufacturing utilities in Python
- Support manufacturing and production teams by developing and maintaining test platforms, diagnostic tools, and production software
- Speak to and participate in architecture and software design discussions that promote maintainability, modularity, and reliability
- Participate in code reviews, provide constructive feedback, improve code quality, and elevation of engineering practices
- Produce clear documentation, test and validation procedures, and technical design information, and of the firmware and software tools
Qualifications
- Bachelor’s degree in computer science or related discipline
- Strong proficiency in the C Programming language
- Strong experience developing software for microcontrollers, embedded hardware, and PC-applications
- Strong understanding of software engineering principles, including:
- Abstraction, Decoupling and Cohesion
- Design Patterns and Structures
- UML and Software Documentation
- Optimizations for Microcontrollers
- Experience debugging complex software and firmware systems
- Refactoring legacy systems while preserving functionality and reliability
- Ability to understand electronic schematics and principles
- Hands-on experience using laboratory equipment, such as oscilloscopes, multimeters, or similar tools
- Writing Clean, Readable, and Well-Documented Code
- Strong written communication skills and commitment to producing well-documented, supportable deliverables
- Ability and adaptability to work effectively in a multidisciplinary engineering environment
Preferred Qualifications
- Experience developing embedded systems and real-time firmware: PIC32M, PIC18F, Freescale, and SiLabs MCUs
- Experience writing Python utility applications, automation tools, or test software
- Experience interfacing with I2C, UART, SPI, USB, ADCs, DACs, sensors, and communication peripherals
- Experience working with legacy production and inherited codebases
- Experience with instrumentation, data acquisition, or laboratory automation
- Familiarity with manufacturing test systems, automated testing, or production support
- Exposure to telecommunications, optical communications, or RF systems, digital and analog control loops
- Experience developing test fixtures, hardware validation tools, or engineering utilities
- Hardware Experience is a plus: Schematic Development, Circuit Troubleshooting
Search Jobs