Are you an experienced software engineer with deep knowledge of embedded systems? Do you love supporting systems all the way from bring-up through to production? We are seeking software engineers to work on software for the Oxide Root of Trust (RoT) and Service Processor (SP), small processors responsible for parts of the system that make Oxide unique.
As a software engineer working on RoT/SP software, you will:
Work with a friendly and positive team to develop Hubris, our custom OS written in Rust that runs on our Service Processor and Root of Trust.
Improve our in-house debugger – Humility – to make debugging easy for engineering development and manufacturing.
Ensure debuggability of the RoT/SP from customer racks.
Improve the infrastructure around Hubris and Humility: build systems, hardware-in-the-loop testing, continuous integration, etc.
Collaborate with our factory software team, who rely on these tools for hardware bringup and testing.
Write programs that interact with the physical world, from blinking lights to rack-level thermal control systems to supporting hot-swap of server components.
Read datasheets and C SDKs for relevant sensors, microcontrollers, etc., and implement drivers for them in Rust.
Collaborate with other engineers working across all parts of the system to improve code that interacts with the RoT/SP, such as the management gateway service and Omicron.
Participate in new hardware platform design and bring-up.
Understand customer use cases and how those connect to the services provided by the RoT and SP.
You will thrive in this role if you:
Have experience shipping software in Rust
Have worked with microcontrollers enough to understand the trade offs involved in chosing components
Like to collaborate with a team to identify when to pay off technical debt vs working on new features
Understand the importance of supposedly 'boring' parts of a system, such as build systems
Have experience reviewing schematics and can perform basic hardware checks
Believe in fully documenting your ideas
Enjoy reading the documentation produced by others
Get excited about computers and dig really deep into them
Before applying for this role, you should
Browse our public Requests for Discussion to get a flavor for how we work
Listen to Hiring Processes with Gergely Orosz to familiarize yourself with the Oxide hiring process.
Watch On Hubris and Humility: developing an OS for robustness in Rust to understand Hubris
Listen to some of our episodes of Oxide and Friends. A few recommendations:
Bringing up Cosmo how we work to bring up new hardware targets
The Power of Proto Boards discussing our various development boards which have targeted Hubris
Another LPC55 ROM Vulnerability on a vulnerability that we found in the LPC55, the silicon that we use for our RoT
Integrating Hardware and Software Teams for why working closely with the hardware team is a necessity
Watch some of our talks:
Unplugging the Debugger: Live and post-mortem debugging in a remote system for the power of developing Hubris and Humility together