Do you love both networking and operating systems implementation, digging into the gritty interface where software meets the wire? We are seeking a software engineer to work on our illumos-based host operating system, Helios with a specific focus on its networking aspects. We are taking a very ambitious approach with respect to networking: not only have we developed our own compute sled and cabled backplane, we have also developed our own switch, and then the entire stack of software from the lowest levels of firmware to end-user experience — and everything in between! To understand why we’ve taken this steeper path (and the advantages that it affords), listen to the team in its own voice in our Oxide and Friends discussion on rack-scale networking. We are seeking an operating system software engineer who is energized by this end-to-end approach, and excited about joining our team to develop new kinds of functionality only made possible by true hardware/software co-design.
As an engineer working on operating system networking, you will:
Work with a helpful and experienced team to design, build, and bring up host system software, with a particular focus on its networking aspects
Enhance/write drivers several different kinds of networking devices: merchant silicon-based NICs, switching silicon, FPGA-based NICs, etc.
Read and write code in C (for the operating system writ large), in Rust (for the Oxide Packet Transformation Engine and perhaps Propolis), and potentially some P4. All the code you write will be open source.
Help to improve the performance of the lowest layers of the networking stack, with much in scope: improved use of hardware offloads, software rearchitecture, implementation improvements, etc.
You will thrive in this role if you:
Are familiar with operating systems networking concepts and are comfortable in C and/or Rust
Have dealt with networks at the hardware layer — and operating systems at the network layer
Are excited by the idea of writing operating system kernel code that enables networking hardware features
Love to make networks perfom at their line rate, knowing that it requires rigorous analysis, potentially novel architecture, and careful implementation
Have previously worked in the guts of operating systems
Appreciate the hard-won thrill of debugging a knotty problem to root cause
Believe in fully documenting your ideas for both current colleagues and your own future self
Enjoy reading excellent documentation produced by others
Make the tools you wish you had
Communicate effectively with engineers across a range of disciplines to exchange knowledge and expertise
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.
Prowl around the code in Helios
Read IPD 45 Flow trees in the MAC datapath to get a flavor for the kind of work this role entails
Listen to some of our episodes of Oxide and Friends. A few recommendations:
Helios on the genesis of our illumos derivative as discussed in RFD 26
Rack-scale Networking to understand our approach to networking and some of the
Holistic Engineering on our integrated hardware/software approach
Hell is other networks to learn about our disposition to customer problems
Transparency in Hardware/Software Interfaces to hear our perspective on what software needs from networking silicon