Embedded Software Engineer

Computer Futures
Burgess Hill, United Kingdom
2 days ago

Role details

Contract type
Permanent contract
Employment type
Part-time (≤ 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Senior
Compensation
£ 60K

Job location

Remote
Burgess Hill, United Kingdom

Tech stack

Systems Engineering
ARM
Automation of Tests
Unit Testing
Booting (BIOS)
C++
Software Quality
Code Review
Communications Protocols
Continuous Integration
Software Debugging
Embedded Software
Firmware
Joint Test Action (IEEE Standards)
Python
MISRA C (C Programming Language)
Systems Development Life Cycle
Real-Time Operating Systems
Software Tools
Universal Asynchronous Receiver/Transmitter
Scripting (Bash/Python/Go/Ruby)
Real Time Systems
Control Structures
Peripherals
GIT
Bare Metal
Software Version Control

Job description

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., 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.

Requirements

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.

Apply for this position