Embedded Software Engineer
Armstrong Talent Partners
Glasgow, UK
22 days ago
- Discuss this with your agent
- Open in Claude
- Open in ChatGPT
Apply on www.indeed.com
Prepare application
- Draft this with your agent
- Open in Claude
- Open in ChatGPT
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
- Draft this with your agent
- Open in Claude
- Open in ChatGPT
Good distractions
Loading talks and stories from around this role…