About the Role
The Role
We are looking for a Software Engineer – Rust / C++ to develop high-performance software for a sophisticated robotics and automation platform.
You’ll work at the intersection of software, hardware and robotics, developing the systems that control, coordinate and communicate with complex physical machinery.
This is a hands-on engineering role where your software will have a direct impact on real-world systems. You’ll work closely with engineers across software, firmware, hardware and automation, taking ownership of significant parts of the platform from design through to deployment.
Key Responsibilities
- Design, develop and ship production software using Rust and C++.
- Build reliable, high-performance systems for robotics and automated machinery.
- Develop software that interfaces with and controls physical hardware.
- Design and maintain APIs, services and interfaces between software and hardware systems.
- Work closely with firmware, hardware and automation engineers to deliver integrated solutions.
- Make pragmatic architecture and technology decisions.
- Write robust, maintainable and well-tested code.
- Contribute to code reviews, technical design and engineering best practices.
- Mentor junior engineers and help raise the technical standard across the team.
About You
You’re an experienced software engineer who enjoys solving complex problems and working close to the physical world.
You’ll have a strong software engineering background and be comfortable working with Rust and/or C++, with an interest in systems, robotics, automation or hardware-adjacent software.
We’d expect you to have:
- 3+ years’ commercial software engineering experience.
- Strong experience with Rust and/or C++.
- Experience building and deploying production-grade software.
- Strong understanding of software architecture, APIs, testing and CI/CD.
- Experience working on complex technical systems.
- The ability to take ownership of projects and deliver independently.
- A pragmatic approach to engineering and problem solving.
- Excellent communication skills and the ability to work across multidisciplinary teams.
Beneficial Skills
- Experience with Rust/C++ interoperability or FFI.
- Experience with robotics or automated systems.
- Embedded or systems software experience.
- Real-time or high-performance software development.
- Hardware interfaces, instrument control or IoT.
- Experience working with sensors, actuators or other physical systems.
- Experience with cloud infrastructure and containerisation.
- Experience in scientific, industrial, manufacturing or other highly automated environments.
The Opportunity
This is an opportunity to work on technically challenging problems where software directly interacts with the physical world.
You’ll have significant ownership, the opportunity to influence architecture and engineering practices, and the chance to work alongside experienced engineers across software, hardware, firmware and automation.
Requirements
Rust and C++ experience
Strong experience with Rust and/or C++ is essential.
Software architecture knowledge
A strong understanding of software architecture, APIs, testing and CI/CD is required.
Production software deployment
Experience building and deploying production-grade software is necessary.
Complex systems experience
Experience working on complex technical systems is important.
Project ownership
The ability to take ownership of projects and deliver independently is expected.
Nice to Have
Experience with robotics or automated systems is beneficial.
Embedded or systems software experience is a plus.
Experience in real-time or high-performance software development is advantageous.
Experience with cloud infrastructure and containerisation is a nice-to-have.
Benefits
Ownership of projects
You will have significant ownership of your projects.
Influence on architecture
Opportunity to influence architecture and engineering practices.
Collaborative environment
Chance to work alongside experienced engineers across various disciplines.