Are you a software engineer with a disposition towards networking software who loves working up and down the OSI stack? We are seeking a software engineer to join our networking team. 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 a networking-focused software engineer who is energized by this approach, and excited about joining our team to develop new kinds of functionality only made possible by true hardware/software co-design.
As a software engineer focused on networking, you will:
Collaborate with other engaged, friendly systems engineers to understand customer use cases and implement the core of the Oxide platform.
Operate across multiple layers of the stack to build a true rack-scale system, including our integrated switch, a custom compute sled, and all software connecting and orchestrating them.
Develop tools to simulate and analyze complex networks, including those deployed in production at customer sites. Logging, tracing, and metrics are critical pieces of distributed systems, and you’ll get the chance to dig into them all.
Write code in Rust, C, and some P4. The code you write will be open source (e.g., the Oxide Packet Transformation Engine, an in-kernel Rust module for packet processing), and across many different codebases.
You will thrive in this role if you:
Have previously worked with Rust or another low-level systems language such as C.
Have a deep understanding of load balancing.
Have experience operating and developing IPsec-based VPN technologies.
Have implemented networking protocols in environments that were constrained by performance and correctness.
Have experience designing, implementing, deploying and operating data center networks using dynamic routing protocols and overlay networks.
Have experience with BGP implementation or deployment.
Enjoy the idea of owning the inter-rack networking end-to-end (host OS + NIC + switch + switch OS) – and also of integrating that networking with a customer’s larger network.
Are energized by the thought of jumping between implementing a new protocol (or a new implementation of an old one!), analyzing customer networking pathologies, and bringing kernel drivers to life.
Produce good documentation and/or written descriptions of your ideas.
Believe that the closed nature of low-level networking is a barrier to progress and want to work with a team breaking down that barrier.
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 Building a Rack Scale Computer with P4 at the Core and DTrace + P4.
Listen to some of our network-centric episodes of Oxide and Friends. A few recommendations:
Rack-scale Networking to understand our approach to networking and some of the details of our implementation
The Network Behind the Network on the specific challenges of our service processor network
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