Senior Embedded Software Engineer
Role details
Job location
Tech stack
Job description
We are looking for a Senior Embedded Software Engineer to design, develop, test, and maintain Embedded software for access control and intrusion-related products. You will play a key role in ensuring software is secure, robust, and fit for purpose, working closely with engineering, quality, and support teams across the full product life cycle., * Architect, design, and implement new Embedded software solutions
- Diagnose, debug, and resolve issues in existing production firmware
- Produce and maintain clear technical documentation and design artefacts
- Define and implement appropriate unit, component, and system-level testing
- Apply static and dynamic analysis techniques to ensure software quality and security
- Support prototype bring-up, debugging, and validation activities
- Collaborate with other Embedded engineers across multiple hardware platforms
- Participate in peer code and design reviews
- Evaluate and introduce new tools, libraries, and software components where appropriate
- Work with quality and support teams to investigate and resolve field issues
Requirements
This role suits an experienced Embedded engineer who enjoys working close to hardware, improving existing firmware, and contributing to secure, high-quality Embedded systems., * Degree-qualified in Electronics, Software Engineering, Computer Science, or a related discipline
Core Technical Experience
- Strong Embedded C programming skills
- Real Time Embedded software development in C
- Bare-metal development and board bring-up
- Development of secure Embedded systems
Technical Knowledge
- Embedded software development processes, including requirements, design, implementation, and testing
- Hardware awareness, including schematics, SoC I/O, pin muxing, and peripheral configuration
- Understanding of Embedded debugging techniques and tools
- Ability to work across both bare-metal and RTOS-based systems
Personal Attributes
- Highly logical and analytical with strong attention to detail
- Able to manage multiple tasks and deadlines effectively
- Quality-focused and process-driven
- Strong communication skills, able to engage with both technical and non-technical stakeholders
- Comfortable working under pressure in a delivery-focused environment
Domain Knowledge
- Ability (or willingness to quickly develop expertise) in OSDP (Open Supervised Device Protocol)
- Experience or interest in implementing OSDP in bare-metal and Real Time Embedded systems, including enhancement of existing firmware to meet evolving standards
Desirable Experience
- 5+ years' professional Embedded software experience
- C++ development
- RTOS experience (eg FreeRTOS, ThreadX)
- Python and automated testing frameworks (eg Google Test)
- CI/CD exposure (eg Jenkins-driven development)
- STM32 firmware development
- NXP SoCs (eg i.MX93 or similar)
- In-circuit programming and debugging
- Familiarity with tools such as Eclipse, VS Code, Jira, Confluence, Bitbucket, SonarQube, MCUXpresso, STM32CubeIDE
Working Environment
- Office-based engineering environment
- Predominantly desk-based work with regular use of development hardware
- Occasional hands-on hardware testing and debugging