What you'll do
Own and evolve the Linux platforms deployed across our edge compute systems, with NixOS as a primary focus.
Build and maintain operating system images, configurations and software environments for production hardware across multiple Linux distributions.
Evolve and maintain our NixOS platform, including system configuration, packaging and integration of application and hardware dependencies.
Develop C++ and Rust systems software and platform tooling that supports the operation, configuration and deployment and updating of our edge systems.
Integrate and maintain vendor BSPs, Linux kernels, device trees, drivers, and hardware-specific dependencies.
Package application software, system components and third-party dependencies using Nix and other platform-appropriate mechanisms.
Define clean interfaces between the operating system, hardware platform and application software so application teams can build on stable and well-supported foundations.
Diagnose challenging problems across application software, userspace Linux, the kernel, drivers and hardware interfaces.
Work closely with application, autonomy, perception, hardware and test engineers to integrate new capabilities and hardware into the platform.Improve the developer experience for engineers building, testing and deploying software onto edge systems
- Improve system reliability, boot behaviour, performance, security and resource utilisation.
- Required qualifications:
- Strong understanding of Linux systems, from userspace through to the kernel and hardware interfaces.
Experience building, configuring or maintaining Linux systems used as part of a deployed product.
Experience with Nix/NixOS, Yocto, Buildroot, Debian/Ubuntu or similar Linux build and distribution technologies. Deep NixOS experience is highly valued but not required.
Strong software engineering experience in C, C++ or Rust ideally developing systems software, platform software or software for Linux-based edge devices.
Experience with reproducible builds, dependency management, software packaging or software supply chains.
Experience diagnosing difficult problems that cross application, operating system and hardware boundaries.
Experience with CI/CD and automated build and test systems.
Ability to take ownership of complex platform problems and drive them from initial investigation through deployment and long-term support.
An interest in developing deep expertise in NixOS and reproducible software delivery.