Senior Software Engineer, Operating Systems
About the role
About the Role
Our software team is growing and we are looking for talented engineers to join our agile, world-class team. Our Robot Platform team is the foundational core of our product, dedicated to providing a robust, reliable, and secure software substrate that accelerates all robot feature development. We own the critical layers that all other software teams build upon: operating system images, bootloaders, kernels, device drivers, and filesystems.
As a Senior Software Engineer, you will be a key contributor to the Robot Platform team, focusing on the ownership and delivery of mission-critical operating system components. You will work within established architectural patterns to build and maintain the service management (systemd, k3s) and update mechanisms that power our robots. This role offers the opportunity to tackle complex technical challenges, from optimizing kernel performance to ensuring secure installation and updating mechanisms on our physical systems in the field.
Key Responsibilities
Software Development & Execution:
- Operating System Development: Build and maintain the operating system images used on robots and edge devices, including the bootloader, kernel, device drivers, filesystems, and system libraries.
- System Orchestration & Security: Take ownership of technical projects within the robot platform stack, including service management and orchestration systems using systemd and k3s, secure local and remote service access mechanisms, robust installation and over-the-air (OTA) software update mechanisms, and provisioning and commissioning scripts for core device environments.
- Code Quality & Reliability: Write clean and maintainable code, while contributing to thorough code reviews and automated testing suites.
- Debugging & Troubleshooting: Actively troubleshoot complex low-level issues across the robot software stack, focusing on OS-level bugs and hardware-software integration challenges.
Team Collaboration:
- Cross-functional Support: Collaborate with manufacturing, test, and robot software engineers to implement the features and interfaces they need to succeed.
- Continuous Improvement: Contribute to the evolution of our developer tooling and internal best practices to improve team velocity and software quality.
Required Qualifications
- Not specified in provided text.