About this Senior Firmware Engineer role at Flusso Ltd
Purpose of this role
The Senior Firmware Engineer is an individual technical contributor role, the primary purpose of which is to increase our skills and capacity to
- Develop firmware for application solutions that incorporate Flusso sensors, typically on ARM-based microcontrollers or ASIC cores
- Support the development of new sensing algorithms
- Port firmware to new processor variants or families.
Our products are being integrated into medical devices, so our firmware is developed to the following standards: IEC 62304, ISO 14971 and BS EN 60601-1.
Experience with development of Windows GUI applications for product evaluation kits would be an advantage in the role but is not essential.
Responsibilities:
All software and firmware development is carried out in accordance with the Flusso quality management system (QMS) and specifically the Software Development and Release Management Process.
General software and firmware development
- Collaboration with colleagues in Test and Applications Engineering, Hardware Design and Data Science to define cost-effective sensing Solution Architectures for target applications.
- Requirements capture/analysis, specification, design, implementation (with rigorous source code management), design reviews, code reviews, unit-testing and debug.
- Creation of internal releases for the Test Engineering team and investigation and resolution of issues uncovered during in-house testing
- Documentation for both internal and external use
- Contribution to continual improvement of our software development processes and quality standards
Firmware for sensor product and application solutions
Application solutions with Flusso sensor products (semiconductor/MEMS components) require firmware that runs on a standard microcontroller (MCU) or a processor core in an ASIC.
Sensing solution firmware development responsibilities include
- Design and development of code that implements functionality and interfaces of the agreed Solution Architecture.
- Participate in safety DFMEA and HAZOP processes
- Optimisation of code and creation of builds for sensor component and application circuit variants.
- Porting firmware to new target processors and/or application designs
Evaluation kit USB interface adapter firmware
We provide evaluation kits for prospective customers of Flusso products, typically:
- A sensor electronics module with the sensor, application circuit and firmware
- A flow or gas fixture that the sensor module is attached to
- A USB to I2C or CAN interface adapter for connecting to a host PC, with firmware running on a microcontroller that supports those interfaces
- A Windows 10 GUI application that gives the user an easy way to evaluate the Flusso product. Our current generation is written in C# using WPF.
The Senior Firmware Engineer will contribute to development of firmware for interface adapters and could work on PC-based GUIs too (depending on experience).
Design-in support
- When required, support Systems and Applications Engineers helping customers with firmware integration
- Assimilate feedback from customer engagement for improvement of software and firmware
Requirements
Qualification, knowledge, skills and experience
A bachelor’s degree in an engineering or science subject is a prerequisite.
Essential knowledge, skills and experience:
- Development of real-time firmware – in C – for ARM-based microcontrollers or ASICs, typically using ADCs, DACs and interfaces such as I2C, SPI and CAN.
- One or more of the main microcontroller families such as STM32 and EFM32
- Use of source code management systems (we use git)
- Use of tools such as Keil, IAR, STM32CubeMX and Eclipse/gnu.
- Debugging using JTAG interface adapters and test equipment such as oscilloscopes and logic analysers
- Automated testing of firmware builds for multiple targets, covering new product solutions, new features, performance enhancements and regression testing.
- Regression testing updates to existing sensing solutions on multiple targets
- Programming in Python
- Working to software lifecycle quality processes in an ISO9001 framework
Not essential, but would be an strong advantage:
- Development of firmware for functional-safety applications
- Development of firmware specifically for sensing solutions or applications
- Development of firmware for automotive or medical applications
- Experience with continuous integration (CI) systems
- Development of Windows 11 GUI applications in C# or Python (e.g. PyQT)
Profile
- Motivated by timely delivery to high quality standards.
- Detail conscious, rigorous and meticulous.
- Comfortable working in a fast-paced development environment.
- Pro-active, positive and enthusiastic by nature.
- Good at multi-tasking and responsive to changing needs of projects.
- Timely and accurate documentation and communication skills
Benefits
- Base salary
- Bonus (% of base salary) based on company and personal performance
- Workplace pension contribution 3% of full base salary (we can trade with salary level for higher)
- Bupa Cash Plan Level 3 (employee only)
- Private Medical insurance with cover for spouse/partner and dependent children
- Group Life Insurance covers up to 4 x salary
- 25 days holiday plus bank holidays (adjusted for part time roles)
- Support for relocation (loan discharged over two years service)
- Hybrid home/office working, by agreement with line manager