Job Description
We are seeking software engineers to contribute at several different layers of our system software stack, which consists of:
While working in domains of relatively greater expertise, software engineers at Oxide regularly contribute across this stack, developing features, tests, and debugging tools that cross these boundaries. Recent examples of such projects include:
- Debugging and instrumenting our hypervisor and host systems, tracking storage and network latency, to improve our storage system empirically.
- Building a recovery system which converges our host OS, service processors, and control plane, validated via property-based testing.
- Building a routing stack which can be configured by the control plane, then validating it with by creating a Rust crate which can construct VMs to test arbitrary network topologies.
You can learn more about what we’re building and the approach that we’re taking by listening to the team in its own voice via our podcast,
Oxide and Friends. Some germane episodes:
As a software engineer working at Oxide, you will:
- Collaborate with other engaged, friendly, systems-oriented engineers to understand customer use cases and implement or improve aspects of the Oxide platform that correspond to those use cases.
- Focus on one or more layers of the stack — but likely interact with several more
- Write code in Rust (or, if in the guts of Helios, in C); read code primarily written in Rust and C. The code you write will be open source.
- Apply a customer-centric view to the development of new end-to-end features.
- Code without fear, working with the team to create and maintain continuous builds, tests, memory-safe code, debugging tools, a constructive code-review process, and a supportive culture of identifying and fixing bugs.
These responsibilities are just a starting place! We’re a small company, we don’t have rigid roles, and we have a lot to do – we can help you grow wherever your interests take you.
You will thrive in this role if you:
- Have demonstrated expertise and/or deep interest in one or more of our technology areas — and are energized by working across them.
- Have previously worked with Rust or (if interested in working on Helios) have worked with C in the context of operating system internals
- Enjoy work that has a direct connection to its use, be it by a customer or a colleague.
- Appreciate the hard-won thrill of debugging a knotty problem to root cause.
- Believe in fully documenting your ideas.
- Get excited about things and dig really deep into them.
- Enjoy reading the documentation produced by others.
- Are very comfortable at a Unix terminal.
- Don’t mind coworkers getting really excited about decades-old computers.
Before applying for this role, you should:
Life at Oxide
We are very explicit about
our values, and they can be seen in daily life at Oxide, for example:
- Our rigor means we enjoy and take pride in the craft of engineering.
- Our urgency means that we are not above the judicious short-cut.
- Our versatility is reflected in our greatest strength: the breadth of our team.
- Our transparency can be seen in our consensus-driven RFD process.
- Our responsibility means that we both lead and follow: we have our own domains, but we also help others on their parts.
- Our curiosity shows in our insatiable desire to learn – and our empathy in our love of teaching others.
- Our humor is a big part of our daily lives: we are inveterate wise-crackers whose video meetings spill into simultaneous text chat.