Modern Embedded C++ Software Engineer – Computer Vision
C++ Software Engineer | Imaging Technology
If you like ownership, technical variet, and problems that don't have a Stack Overflow answer waiting for you, keep reading.
We're working with a specialist technology business that designs and builds advanced imaging systems used across the UK and internationally. Their products sit across embedded software, computer vision, AI and electronics, and they need an experienced C++ engineer to help shape what's next.
The engineering team is small on purpose. No bureaucracy, no meeting overload. Just software engineers, hardware specialists and algorithm developers building complex products from the ground up.
The Role
You'll spend most of your time in C++, but this isn't a narrow application-coding job. You'll work within embedded Linux environments, support build and release processes, contribute to automated testing, and help improve how software moves from development into production.
You'll work closely with the hardware and algorithm teams, helping bring new capability into products already deployed in demanding operational environments. This suits someone who takes ownership of outcomes, not just tickets.
Day to Day
- Designing, developing and maintaining software primarily in modern C++
- Delivering new features while supporting and improving existing product functionality
- Working within embedded Linux environments and supporting deployment workflows
- Maintaining and improving build infrastructure and packaging
- Contributing to CI/CD pipelines and release automation
- Building automated tests across unit, integration and system level
- Taking part in code reviews and technical discussions
- Working across software, hardware and algorithm teams through the product lifecycle
- Investigating and solving complex technical issues across the platform
What You'll Need
Several years' commercial experience developing software in Linux environments, comfortable owning work from concept through to delivery.
- Modern C++ in Linux-based systems
- Embedded Linux, ideally with Yocto or Buildroot
- Python for scripting, automation or tooling
- CMake and modern build systems
- CI/CD, particularly Jenkins or similar
- Solid grounding in software architecture and testing practice
- Comfortable working independently, without hand-holding
Nice to Have
- Docker or containerised development environments
- Networking protocols and low-level hardware interfaces
- API development, including GraphQL
- Python/C++ integration, e.g. pybind11
If you want to work across software, hardware and imaging tech, not just push code into a black box, this is a rare one.