Senior/Staff Engineer, C++ Software - Edge Systems (R5190)
Melbourne, VIC, Australia
Job Description:
Shield AI is seeking a Senior / Staff C++ Software Engineer, Edge Systems to help define and build the software foundations that power autonomous systems operating in demanding real-world environments.
This role sits within the Edge Systems team, where software meets hardware. You'll solve complex engineering problems spanning Linux edge computing, imaging, sensor integration, mission systems, and autonomy, building software that runs on real hardware in operational environments rather than laboratory prototypes.
As one of our senior technical contributors, you'll combine hands-on software engineering with technical ownership. You'll influence architecture, mentor engineers, guide technical direction, and help shape the long-term evolution of our edge software platform while remaining close to implementation.
You will develop modern C++ applications for Linux-based edge compute platforms, including NVIDIA Jetson-class systems, ARM64, and Windows systems. Your work will span sensor integration, imaging pipelines, calibration, diagnostics, deployment, developer tooling, and mission-critical applications that demand high performance, reliability, and maintainability.
This is an application and systems software role, focused on Linux-based edge computing rather than bare-metal firmware or microcontroller development.
No two weeks look the same. One day you might be optimising image-processing pipelines on embedded GPUs. The next you could be designing software architecture for future autonomous platforms, integrating new sensors, or collaborating with AI researchers to bring new capabilities into production.
You'll work alongside highly capable systems, hardware, autonomy, AI, product, and test engineers who enjoy solving difficult problems together. We believe our strongest technical leaders remain hands-on, and we expect our Staff Engineers to continue writing software while multiplying the effectiveness of the engineers around them.
This position may be hired at Senior or Staff Engineer level depending on experience. Responsibilities and scope will be aligned to the successful candidate.
What you'll do:
Lead the technical direction of significant edge software capabilities spanning edge compute, 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, helping raise the technical capability of the wider organisation.
Partner with systems, autonomy, AI, and product teams to translate long-term capability into engineering roadmaps.
Identify technical risks early and guide teams toward robust, maintainable solutions.
Balance long-term architectural investment with practical product delivery.
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 compute platforms connected to cameras, sensors, and mission systems.
Integrate RGB, NIR, and thermal cameras alongside GPS, IMU, and other sensors using interfaces such as 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 compute platforms.
Debug challenging 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 capability.
Technical Leadership
Software Engineering
Required qualifications:
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.
Demonstrated 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 compute 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.
Proven 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.
Preferred qualifications:
Runtime-critical, multi-threaded, 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 compute 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.
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.
We do not expect candidates to have all of the following. Experience in any of these areas will help you stand out.
Additional Experience for Staff Level Engineers:
Experience defining architecture for large or technically complex software systems.
A track record of influencing technical direction across multiple teams or products.
Proven technical leadership through influence rather than organisational authority.
Experience mentoring senior engineers and helping grow engineering capability across an organisation.
Ownership of long-term technical strategy alongside day-to-day software delivery.
Strong judgement when balancing performance, reliability, maintainability, scalability, and delivery.
Experience establishing engineering standards, reusable frameworks, or software platforms adopted by multiple teams.
While we hire across multiple experience levels, successful Staff Engineer candidates will typically demonstrate several of the following: