Armstrong Talent Partners
Embedded Software Engineer

How your CV stacks up
Upload your CV to see how well it fits this job role
?%
Senior Embedded Software Engineer
As a Senior Embedded Software Engineer, you will design, implement and maintain the embedded software that runs our software defined robots. You will work across the Linux application processor and the microcontroller layer, define how components communicate, and make sure the system is secure, reliable, scalable and maintainable by design. You will communicate with Principal Architects to shape architecture decisions and raising the quality bar through code reviews and tests.
Key Responsibilities
- Translate architecture requirements into robust, scalable and testable software.
- Design, develop and maintain embedded software in Rust and 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).
Reasons to use Rodeo
I’m in my final year doing Economics and I don’t know whether to apply for grad schemes now or do a masters first. What do you think?
Honest answer — it depends on where you want to end up. A lot of top grad schemes (Big 4, civil service, banking) don’t need a masters. Let’s look at the ones you’d be competitive for now, and we can decide if a masters actually adds anything.
Also worth knowing: most autumn 2026 applications are open now. Timing matters more than you think.
Start with a chat, not a search bar
Grad scheme, placement, apprenticeship? Not sure what you want yet — that's fine. Your agent talks it through with you and turns "I have no idea" into a shortlist.
Graduate Consultant — 2026 Scheme
Why you're a good match
StrongYour economics background and your summer at a regional bank line up with what PwC looks for on the consulting scheme. Applications close in four weeks.
See breakdownIt searches the market for you
Every day your agent scans the market matching roles against what actually matters to you, not just keywords on a CV.
Why you're a good match
You’ve got the grades and the economics background, and your bank internship is exactly the experience this scheme looks for. Apply soon — deadlines close within the month.
Experience fit
Your summer at the bank plus your econometrics coursework map directly to the day-one responsibilities on this scheme — client modelling, market briefings, and deal support.
Only hits
No noise. No "maybe this fits." Just roles with a clear explanation of why they're right — and where to focus when applying.
Required Qualifications
- 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.
- Solid, production-level experience with Rust, including ownership and lifetimes, async (e.g. Tokio), and ideally no_std / embedded Rust.
- 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.


Get help with your application
Your very own career expert that helps elevate your application to the next level.
Preferred Qualifications
- 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 Embassy, RTIC, probe-rs or other embedded Rust tooling.
- Experience with fleet management and remote telemetry.
“It took my CV and asked me questions relevant to understanding what kind of jobs to suggest for me. Suggestions were almost perfect. Jobs were exactly what I’ve been looking for.”
Jessica, London