Software Engineer C++ (R5716)
Software Engineering
Melbourne, VIC, Australia
Job Description:
This role sits within the Edge Systems team, where software meets hardware. You will contribute to production software spanning Linux edge computing, imaging, sensor integration, diagnostics, deployment, and mission applications. Your work will run on real systems, not only in simulations or laboratory prototypes.
You will develop modern C++ software for Linux-based edge compute platforms, including NVIDIA Jetson-class and ARM64 systems. You will integrate sensors, diagnose system behaviour, improve performance, and deliver reliable software as part of a multidisciplinary team, with scope and autonomy matched to your experience.
This is an application and systems software role focused on Linux-based edge computing. It is not primarily a bare-metal firmware or microcontroller-development role.
Linux is the primary deployment environment, but some supporting tools may run on or interface with Windows-based systems, making cross-platform experience valuable.
We welcome recent graduates and engineers with a few years of relevant experience. You do not need to match every technology below. We value sound fundamentals, practical curiosity, and evidence that you enjoy solving software-and-hardware problems.
What you'll do:
Develop, test, debug, and maintain C++ software for edge systems, imaging systems, mission applications, diagnostics, and developer tools.
Build applications for NVIDIA Jetson, and other edge compute platforms connected to cameras, sensors, and mission systems.
Contribute to calibration, synchronisation, data capture, observability, inspection, and configuration tools for complex sensor systems.
Investigate issues across application software, Linux, networking, hardware interfaces, timing, deployment, and system integration, collaborating across disciplines when problems cross domain boundaries.
Write clear, maintainable code and participate in code reviews, automated testing, documentation, and team design discussions.
Collaborate with systems, hardware, AI, autonomy, product, and test engineers to deliver integrated capability.
Own well-defined components and technical problems, taking on broader and more complex work as your skills and domain knowledge grow.
Required qualifications:
A degree in Computer Science, Software Engineering, Electrical Engineering, Robotics, or a related discipline, or equivalent practical experience.
A solid foundation in C++, demonstrated through university work, internships, personal or open-source projects, or industry experience.
Practical experience developing, building, or debugging software on Linux or Windows, with an interest in working primarily on Linux-based edge systems.
Understanding of core software-engineering concepts such as memory and resource management, data structures, interfaces, testing, and version control.
Some experience building software that interacts with hardware, sensors, networks, robotics, imaging systems, or other physical devices.
A methodical approach to debugging and a willingness to investigate problems beyond a single function or source file.
The ability to communicate clearly, seek feedback, and collaborate effectively with engineers from different disciplines.
Curiosity, initiative, and a desire to grow into broader technical ownership over time.
Clearance & Export Control Requirements:
- Eligibility to obtain an Australian NV1 (Secret) clearance.
- Ability to access and handle ITAR‑controlled and Australian export‑controlled technical data.