Senior Embedded Software Engineer - Modern C++ / Embedded Linux
Barnsley, South Yorkshire
Up to £70,000 + benefits | Relocation assistance available
Do you write modern C++ every day, but still understand what's happening on the hardware underneath? This is a senior role in a small, highly skilled R&D team where your work will directly shape products that are already deployed internationally.
The company
This is an established IoT product design house with its own in-house R&D team. It develops connected embedded devices across several projects at once, from initial requirements through to products in volume production. The software team is small, so you'll have real ownership, your work will be visible and you'll have a direct say in technical direction.
The technical environment
Dual-processor architecture. An ARM Cortex-M microcontroller handles real-time I/O. It also runs an RS-485 multi-drop field bus with a custom serial protocol that connects a family of peripheral devices. It passes data over an IPC link to an embedded Linux application processor.
Mostly Linux. You'll spend most of your time on the Linux side, writing application and middleware code in C++11 or later.
Modernising a mature codebase. The code was originally written for memory-constrained processors. You'll refactor it into clean, object-oriented, testable C++ for modern hardware, using UML-led design.
Full lifecycle. You'll take work from software requirements through design and implementation to integration and validation.
Engineering practice. The team is adopting test-driven development, automated testing and CI/CD.
Connectivity. TCP/UDP, HTTP/REST, MQTT and TLS, plus Wi-Fi, 4G and over-the-air (OTA) updates.What you'll do
Research, design, develop and debug software for new and existing products.
Refactor existing code into well-structured, object-oriented modern C++.
Make sure code meets the relevant safety, functionality and performance standards, and is fully tested with no regressions.
Take part in code and design reviews and produce clear technical documentation.
Work closely with hardware engineers and project leads, and give realistic effort estimates.
Mentor and support other engineers as the team grows.Essential skills
Typically 5+ years of commercial embedded software development.
Strong, current commercial experience of modern C++ (C++11/14/17/20). This must be real production work, not something you've only dabbled in. Solid C skills are also needed.
Embedded Linux development, including debugging with GDB and strace.
Object-oriented design and UML.
Ability to read hardware schematics and debug on target with debuggers, monitors or simulators.
Networking protocols such as HTTP and MQTT, including troubleshooting.
Source control (Git) and experience of working in an Agile team.
A degree in Computer Science, Electronics or a related subject, or equivalent experience.Desirable skills
ARM Cortex-M3/M4 microcontroller development, an RTOS, and peripherals such as GPIO, DMA, ADC and timers.
RS-485 or other serial and fieldbus protocols, and inter-processor communication.
TDD and unit-testing frameworks (e.g. GoogleTest, CppUTest), test automation and Jenkins.
Linux device driver development, BSP porting and U-Boot.
TLS, REST APIs, Wi-Fi, 4G modems and OTA update mechanisms.
Python or JavaScript scripting.
Experience of technical leadership or technical project management.Who will do well here
Versatile engineers whose careers cover a range of sectors tend to succeed in this team. Examples include telecoms, digital TV and set-top boxes, professional radio (such as TETRA), consumer electronics, medical, automotive and industrial.
If your experience is in modern C++ on Linux-based connected products and you've done less bare-metal work, we'd still like to hear from you. Please note that this role needs proven commercial C++, so it isn't suitable for a C-only background.
The package
Salary up to £70,000, depending on experience.
Pension and holiday allowance.
Relocation assistance for the right candidate.
Fully on-site in Barnsley, working face-to-face with the hardware and software teams.Apply now
To apply, send your CV, or contact Laurence Powell or Andrew Knight at KO2 Embedded Recruitment Solutions for a confidential conversation about the role