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 #LI-PR1