> Markdown version of [/jobs/ext/4038872-embedded-software-engineer](https://www.wearedevelopers.com/jobs/ext/4038872-embedded-software-engineer). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Embedded Software Engineer - **Company:** Armstrong Talent Partners - **Location:** Glasgow, UK - **Experience:** Expert - **Salary:** £50,000.0 - £70,000.0 - **Contract:** Permanent contract - **Skills:** 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, 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 - **Published:** October 13, 2026 - **Apply:** https://www.indeed.com/viewjob?jk=7389cf8ba23b1ce7 ## About the Role * 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. ## 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).