Embedded Software Engineer

Armstrong Talent Partners
Glasgow, UK
22 days ago
Apply on www.indeed.com
Prepare application

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Experience level
Expert
Experience required
5 years minimum
Compensation
£50,000.0 - £70,000.0
Working hours
Regular working hours
Job source

Tech stack

Application Programming Interfaces (APIs) ARM Architecture Unix C++ (Programming Language) Cloud Computing CMake Code Review Communications Protocols Software Debugging Linux Linux on Embedded Systems Embedded Software
+25 more
Ethernet Firmware FreeRTOS Protocol Buffers Inter-Process Communication Message Queuing Telemetry Transport (MQTT) Queueing Systems Raspberry Pi Role-Based Access Control Real-Time Operating Systems RS-232 SAP Configuration Secure Coding Software Engineering Universal Asynchronous Receiver/Transmitter USB Management of Software Versions Peripherals Git Yocto Selinux Information Technology Bare Metal U-Boot C++14

Job description

  • Translate architecture requirements into robust, scalable and testable software.
  • Design, develop and maintain embedded software in C++, including inter-process communication (IPC) on Linux Yocto OS for Raspberry Pi and STM32 series microcontrollers.
  • Integrate with cloud and on-prem communication channels using communication protocols like gRPC, MQTT, HTTPS and others.
  • Implement over-the-air (OTA) update mechanisms (e.g. A/B partitioning with RAUC, SWUpdate or Mender) and rollback strategies.
  • Develop real-time firmware for STM32 MCUs in C++ and (bare-metal, FreeRTOS, Zephyr).
  • Work with peripherals and buses such as RS-485, RS232, UART, USB and Ethernet, including interrupt-driven designs.
  • Define and evolve interfaces using Protocol Buffers, with a disciplined approach to schema versioning and backward/forward compatibility.
  • Design and implement inter-process communication on the Linux side (e.g. Unix domain sockets, shared memory, message queues, with clear latency, throughput and isolation guarantees.
  • Design efficient, robust communication between the Linux host and MCUs, including framing, error detection, and compact serialisation (e.g. nanopb or similar).
  • Establish a hardware root of trust, secure boot, signed firmware and images, and secure key storage (TPM, secure element, TrustZone or STM32 security features).
  • Apply least privilege and process isolation (e.g. dedicated users, Linux capabilities, seccomp, namespaces, SELinux / AppArmor).

Requirements

  • Degree in Computer Science, Electrical/Electronic Engineering or a related field, or equivalent practical experience.
  • 5+ years of professional software development, with a substantial portion on embedded systems.
  • Expert knowledge of modern C++ (C++17/20) with memory and performance awareness on constrained systems.
  • Hands-on experience building and customising embedded Linux with the Yocto Project (layers, recipes, bbappends, SDKs, BSPs).
  • Practical experience designing APIs with Protocol Buffers and implementing gRPC services and clients.
  • Strong understanding of IPC mechanisms and concurrent, multi-process system design on Linux.
  • Demonstrable experience applying secure-by-design principles: secure boot, code signing, TLS/mTLS, and secure coding practices.
  • Firmware development for STM32 or comparable ARM Cortex-M microcontrollers, including RTOS usage, low-level peripheral work.
  • Comfortable with Git, CMake and/or Cargo, CI systems, and debugging tools., * Experience with robotics or software-defined / reconfigurable machines.
  • Experience in laboratory automation, chemistry, life sciences or other regulated industries (helpful but not required).
  • Experience with functional safety standards (IEC 61508, ISO 13849) and safety-aware software development.
  • Knowledge of cybersecurity standards and regulations.
  • Experience with fleet management and remote telemetry.

Apply for this position

This job is hosted externally. Click below to view the full posting and apply.

Apply on www.indeed.com
Prepare application

Good distractions

Loading talks and stories from around this role…