Purpose and overview of the role
The primary purposes of this role are to increase the Embedded Engineering group’s capability and capacity to develop:
- Firmware for application solutions (typically with ARM-based microcontrollers or ASIC cores) that complies with safety-related industry standards such as IEC 62304 and ISO 26262.
- Test tools to verify correct behaviour of the application solutions and compliance to standards.
Additional responsibilities can include development of:
- Manufacturing support tools to facilitate customers end-product production
- Firmware for test platforms used for deep study of sensing performance.
- Windows 10/11 GUI applications for Flusso product Evaluation Kits.
Candidates with appropriate experience and aptitude might also assist Flusso Field Applications Engineers with software and firmware expertise when customers are integrating Flusso sensing solutions in their end-product.
Responsibilities
All software and firmware development is carried out in accordance with the Flusso quality management system (QMS). Contribution to continual improvement of our software development processes and quality standards is expected.
Firmware for application solutions
- Develop firmware compliant with the following standards:
- ISO 9001:2015 – Quality management system
- IEC 62304:2006 – Medical device software
- ISO 26262:2018 – Vehicle functional safety
- Collaboration with colleagues in Test and Applications Engineering, Hardware Design and Data Science to define cost-effective sensing Solution Architectures, from a firmware perspective.
- Firmware requirements capture and analysis
- Design and development of code that implements functionality and interfaces of the agreed Solution Architecture.
- Implementing new sensing algorithms, designed by the Data Science team.
- Incorporation of firmware features for capture of low-level test data to assist with detailed performance characterisation and algorithm optimisation
- Firmware design reviews, code reviews, testing and debug
- Creation of internal releases for the Test Engineering team and investigation and resolution of issues uncovered during in-house testing
- Porting and building firmware for different target processors and application design variants.
- Documentation for both internal and external use
Test tools
- Develop PC-based tools to verify firmware operation, including:
- Support for custom hardware-in-the loop test/verification platforms
- Unit and module test automation
- Compliance to safety-related standards
Manufacturing support tool development
- Work closely with colleagues in Field Applications and Hardware Design to identify PCBA test requirements
- Support introduction of PCBA test tools into customers’ production environments.
- Add firmware features to enable optimum calibration times.
Windows 10/11 GUI applications
- Extension of Evaluation Kit GUIs to support new firmware functionality
- Automated and desktop pre-release testing of GUIsPackage and release the Eval Kit GUI to customers.
Customer design-ins
- Assist Flusso Field Applications Engineers with software and firmware expertise when customers are integrating Flusso sensing solutions in their end-product.
- Support customer-specific feature developments for lead-customers.
Requirements
Qualifications, knowledge, skills & experience
A bachelor’s degree in an engineering or science subject is a prerequisite.
Essential knowledge, skills and experience:
- Development of bare metal, 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 (GIT, Perforce)
- 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.
- Working with at least one of the following standards:
- ISO 26262 – road vehicle functional safety
- IEC 62304 – medical device software
Not essential, but would be a strong advantage:
- Development of firmware specifically for sensing solutions or applications
- Experience with continuous integration (CI) systems
- Development of Windows GUI applications in C#
- Experience of hardware design digital or analogue
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.
Good 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)