Senior/Staff Engineer, C++ Software - Edge Systems
Build production C++ applications for Linux-based edge platforms, integrating cameras, sensors, GPUs, and mission systems. The role combines hands-on architecture, technical leadership, mentoring, and performance-focused systems engineering across autonomous platforms.
About the job
Responsibilities
Technical Leadership
- Lead the technical direction of significant edge software capabilities spanning edge computing, imaging, sensor integration, and mission systems.
- Influence software architecture across multiple projects and engineering teams.
- Drive engineering excellence through design reviews, technical standards, and pragmatic engineering practices.
- Mentor and coach engineers and raise the technical capability of the wider organisation.
- Partner with systems, autonomy, AI, and product teams to translate long-term capabilities into engineering roadmaps.
- Identify technical risks early and guide teams toward robust, maintainable solutions.
- Balance long-term architectural investment with practical product delivery.
Software Engineering
- Design, develop, test, and maintain production C++ software for edge systems, imaging systems, mission applications, developer tooling, and automated test infrastructure.
- Build user-space Windows and Linux applications for NVIDIA Jetson, ARM64, and other edge-computing platforms connected to cameras, sensors, and mission systems.
- Integrate RGB, NIR, and thermal cameras alongside GPS, IMU, and other sensors using MIPI CSI, GMSL, Ethernet, serial, or comparable hardware-facing protocols.
- Develop calibration, synchronisation, data capture, diagnostics, inspection, and configuration tools for complex sensor systems.
- Optimise software for latency, throughput, reliability, power consumption, and thermal performance on constrained edge-computing platforms.
- Debug issues spanning application software, Linux, networking, hardware interfaces, timing, deployment, and system integration.
- Own technical outcomes from ambiguous requirements through design, implementation, integration, verification, and delivery.
- Collaborate across systems, hardware, AI, autonomy, product, and test teams to deliver integrated capabilities.
Requirements
- Degree in Computer Science, Software Engineering, Electrical Engineering, Robotics, or a related discipline, or equivalent industry experience.
- Strong commercial experience developing modern C++ software for Linux.
- Experience developing user-space applications that interface with cameras, sensors, networking, GPUs, storage, or other hardware through operating-system APIs, middleware, or vendor SDKs.
- Practical experience developing and debugging software on Linux.
- Experience developing complex C++ applications on Linux, Windows, or both.
- Experience deploying software to Linux-based edge-computing platforms such as NVIDIA Jetson or comparable ARM64 systems is highly regarded.
- Strong software-engineering fundamentals, including concurrency, interfaces, memory management, data structures, algorithms, testing, and version control.
- Ability to diagnose complex issues across software, Linux, networking, timing, hardware integration, and deployment boundaries.
- Experience owning technical work from incomplete requirements through design, implementation, integration, verification, and delivery.
- Excellent collaboration skills across multidisciplinary engineering teams.
Nice-to-Haves
- Runtime-critical, multithreaded, or performance-sensitive C++ software.
- High-throughput imaging or sensor-processing pipelines, including camera integration, ISP tuning, GStreamer, FFmpeg, OpenCV, or similar technologies.
- Hardware-accelerated processing on edge-computing platforms, including NVIDIA Jetson, Qualcomm Snapdragon, CUDA, GPU compute, embedded AI accelerators, or accelerated video processing.
- Integration of RGB, NIR, and thermal cameras, GPS, IMU, GPUs, or comparable peripheral hardware.
- Experience in robotics, aerospace, defence, autonomy, unmanned systems, automotive, or other mission-critical domains.
- Systems architecture, interface design, software decomposition, reliability, maintainability, and testability.
- Low-level Linux, vendor SDKs, driver-adjacent debugging, NixOS, edge AI inference, containerisation, or deployment tooling.
- Automated testing, simulation, software-in-the-loop, hardware-in-the-loop, CI/CD, or deployment infrastructure.
Additional Staff-Level Experience
- Defining architecture for large or technically complex software systems.
- Influencing technical direction across multiple teams or products.
- Technical leadership through influence rather than organisational authority.
- Mentoring senior engineers and growing engineering capability across an organisation.
- Owning long-term technical strategy alongside day-to-day software delivery.
- Balancing performance, reliability, maintainability, scalability, and delivery.
- Establishing engineering standards, reusable frameworks, or software platforms adopted by multiple teams.
Skills
C++, Linux, Windows, Nvidia Jetson, Arm64, Concurrency, Networking, Opencv, Gstreamer, Ffmpeg, CUDA, Nixos, Docker, CI/CD, Computer Vision
Similar jobs
Embedded Engineering jobsSenior autonomy engineer designing, testing, and integrating autonomous capabilities for uncrewed aircraft. The role requires strong modern C++ experience, substantial robotics or aerospace systems experience, and leadership of junior engineers.
Leads the architecture and delivery of high-performance, distributed simulation systems for uncrewed aircraft mission autonomy. The role requires extensive software and systems integration experience, modern C++, Python, containerisation, Linux, and technical leadership.
Staff Autonomy Engineer designing, integrating, and validating autonomous behaviors for uncrewed aircraft. The role requires strong modern C++ experience, professional robotics or aerospace systems experience, and expertise in areas such as perception, sensor fusion, planning, or controls.
Leads architecture, implementation, integration, and operationalisation of high-performance real-time and faster-than-real-time simulation systems for uncrewed aircraft autonomy. Requires senior software engineering and systems integration experience, C++, Python, containerisation, Linux, and technical team leadership.
Hands-on autonomy engineer designing, developing, simulating, and integrating autonomous capabilities for uncrewed aircraft. Requires strong modern C++, substantial robotics or aerospace systems experience, and a tertiary qualification in a relevant technical field.