Job Description
Senior Embedded Software Engineer (C/C++, STM32, FreeRTOS)Location: Derbyshire (On-site / Remote work available)Salary: £55,000 - £70,000 + BenefitsOverview 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