Overview
We are looking for an experienced Senior Embedded Software Engineer to design, develop, and enhance embedded software for advanced electro‑mechanical products used in global industrial applications. This role is hands-on and technical, contributing to firmware development across the full product lifecycle while collaborating closely with hardware, electronics, and systems teams.
This is an ideal position for an engineer who enjoys solving real‑time, hardware‑integrated problems and delivering high-quality embedded code in a structured engineering environment.
Key Responsibilities
Embedded Software Development
Design and develop embedded firmware in C/C++ for ARM-based microcontrollers (e.g., STM32).
Work with real‑time environments - RTOS or bare-metal.
Implement drivers, peripherals, communication buses, sensor interfaces, motor control, timers, and control loops.
Write reliable, maintainable, well‑structured embedded code.
Hardware Interaction
Collaborate with electrical and systems engineering teams to define requirements and interface specifications.
Use oscilloscopes, logic analysers, debuggers (e.g., JTAG/SWD) to diagnose and resolve issues.
Support integration, bring-up, and testing of new hardware and prototypes.
Software Quality & Processes
Contribute to code reviews, unit testing, and documentation.
Use version control systems (Git) and structured SDLC processes.
Follow embedded software best practices (MISRA or similar desirable).
Team Collaboration
Mentor less experienced engineers where appropriate.
Work closely with cross-functional teams to deliver features, diagnose field issues, and improve existing firmware.
Participate in technical discussions and contribute to continuous improvement of tools and processes.
Skills & Experience Required
Essential
Strong professional experience developing embedded systems in C/C++.
Experience with ARM Cortex‑M microcontrollers (e.g., STM32).
Good understanding of embedded hardware: peripherals, ADCs, interrupts, timers, PWM, bootloaders.
Experience in real-time systems (RTOS or bare-metal).
Strong debugging skills using both software tools and physical lab equipment.
Communication protocols: SPI, I²C, UART, CAN (at least two).
Experience in full lifecycle firmware development within a structured engineering environment.
Desirable
Experience with industrial products, robotics, machinery, pumps, sensors, or motor control.
Control algorithms or DSP understanding.
Experience with Python or scripting for tooling/test automation.
Familiarity with safety, reliability, or IEC/ISO engineering standards.
Experience with continuous integration and automated test frameworks for embedded systems.
To find out more about Computer Futures please visit
Computer Futures, a trading division of SThree Partnership LLP is acting as an Employment Business in relation to this vacancy | Registered office | 8 Bishopsgate, London, EC2N 4BQ, United Kingdom | Partnership Number | OC(phone number removed) England and Wales