We are seeking a Senior Embedded C++ Engineer to join a team developing low-level firmware for embedded systems. This role involves working close to the hardware, designing, developing, and maintaining performance-critical software in C++ within bare-metal and embedded environments. The successful candidate will have a strong background in embedded software development, experience working within resource-constrained systems, and a passion for solving complex technical challenges at the firmware level.
Key Responsibilities
- Design, develop, and maintain embedded software and firmware in modern C++.
- Redevelop, enhance, and modernise existing low-level software systems.
- Work directly with hardware and peripheral devices in bare-metal environments.
- Debug and resolve complex software, firmware, and hardware integration issues.
- Collaborate with hardware, systems, and software engineering teams throughout the development lifecycle.
- Optimise software for performance, reliability, and efficient resource utilisation.
- Contribute to software architecture, design reviews, and technical decision-making.
- Develop and execute testing strategies to ensure product quality and robustness.
- Participate in code reviews and promote engineering best practices.
- Ensure software meets quality, safety, security, and performance requirements.
Required Skills & Experience
- 7+ years of commercial experience developing software in C++.
- Strong background in embedded software or firmware development.
- Experience working with bare-metal systems and low-level programming.
- Solid understanding of embedded architectures, memory management, interrupts, and hardware interfacing.
- Experience debugging complex embedded systems and hardware/software interactions.
- Familiarity with development in Linux-based environments.
- Experience working with version control systems such as Git.
- Strong analytical, troubleshooting, and problem-solving skills.
- Ability to work effectively within multidisciplinary engineering teams.
Desirable Experience
- Exposure to Assembly language and legacy codebases.
- Experience working with ARM or other embedded processor architectures.
- Experience with RTOS-based systems.
- Knowledge of embedded Linux.
- Experience within industrial, aerospace, defence, medical device, or other safety-critical domains.
- Python or scripting experience for automation, testing, or tooling.
Location Requirements
This role is fully remote within the UK. Therefore, candidates can be based anywhere in the United Kingdom.
#InstilCareers