We are seeking a senior Embedded Software Engineer to join the Product Development team and contribute to embedded firmware development and hardware–software integration.This is a hands-on role, working closely with the Principal Engineer and Senior Hardware Engineer to translate system architecture into reliable embedded implementations across prototypes, demos, and product platforms.
Key Responsibilities
- Design, implement, and maintain embedded firmware in C/C++.
- Develop and maintain low-level drivers and application firmware.
- Support bootloader development and firmware update functionality.
- Implement firmware robustness, error handling, and recovery paths.
- Support firmware bring-up on new hardware.
- Debug hardware/firmware issues involving power, clocks, interfaces, and timing.
- Work with schematics, PCBs, and lab equipment during development and debugging.
- Support validation and test readiness of embedded systems.
- Translate architectural intent into working embedded implementations.
- Take ownership of defined subsystems with appropriate guidance.
- Contribute to technical documentation and knowledge transfer.
- Support integration with test environments and higher-level software systems.
Skills, Knowledge and Expertise
- Background in Electronic Engineering or similar discipline.
- Experience in embedded software development (C/C++).
- Experience with microcontrollers (e.g. STM32 or similar).
- Experience with bare-metal and/or RTOS-based systems.
- Comfortable reading schematics and understanding hardware design.
- Experience with board bring-up and low-level debugging.
- Experience using SWD/JTAG, logic analysers, and oscilloscopes.
- Understanding of common interfaces (USB, SPI, I²C/I3C, UART).
Benefits
- Pension scheme
- Private medical & dental insurance
- 28 days’ holiday + bank holidays
- Free onsite meals
- Onsite gym
- Relocation support