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
Skills & Experience Required
Desirable Skills
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