Senior Embedded Software Engineer
Senior Embedded Software Engineer (C/C++, STM32, FreeRTOS) Location: Derbyshire (On-site / Remote work available) Salary: £55,000 - £70,000 + Benefits Overview An exciting opportunity has arisen for a Senior Embedded Software Engineer to design, develop, test and integrate embedded control systems for advanced industrial applications. This role is ideal for an experienced engineer with strong C/C++ embedded development skills, looking to work on real-time systems (RTOS) and ARM Cortex-M microcontrollers (STM32) within a collaborative, multi-disciplinary engineering environment. You will work closely with electrical, mechanical and systems engineering teams to deliver robust, safety-critical and cost-effective embedded software solutions for global customers. Key Responsibilities Translate system and customer requirements into detailed software specifications and acceptance criteria Design and develop embedded software architecture for ARM-based microcontrollers (STM32) Develop, test and integrate embedded C/C++ firmware for real-time control systems Work with FreeRTOS (or similar RTOS) including task scheduling, inter-task communication and debugging Implement and optimise communication protocols including Modbus/TCP, CAN, RS232/RS422/RS485 and Ethernet (TCP/UDP) Interface with analogue and digital hardware (ADCs, DACs, sensors and actuators) Perform unit testing, static code analysis, code coverage and peer reviews to ensure high-quality software Develop and maintain HIL/SIL test environments Produce clear technical documentation including specifications, architecture diagrams, and test plans Use Git (version control) within a trunk-based development environment with semantic versioning Support manufacturing, commissioning and field service teams with troubleshooting and issue resolution Drive continuous improvement in software processes, tools and engineering standards Skills & Experience Required Proven experience in embedded software development or industrial control systems Strong programming skills in C and/or C++ for embedded systems Experience with ARM Cortex-M microcontrollers (STM32 preferred) Solid understanding of real-time operating systems (FreeRTOS or similar) Knowledge of functional safety and coding standards (MISRA C:2012, IEC 61508, CERT-C) Experience with unit testing frameworks (e.g. Unity, Ceedling), static analysis tools and code coverage Strong experience with Git version control and modern development workflows Knowledge of industrial communication protocols (Modbus, CAN, Ethernet) Experience integrating embedded systems with sensors and hardware interfaces Excellent problem-solving skills, teamwork and communication abilities Desirable Skills Experience with Python or MATLAB for automation, testing or data analysis Ability to read and interpret electrical and mechanical engineering drawings Experience working in safety-critical or regulated industries