Cloud computing has ushered in a new standard for how companies develop, deploy, and operate software, allowing them to move faster than ever before. This movement was made possible by numerous infrastructure innovations in rack-level hardware and software that remain hidden away inside the datacenters of the large cloud hyperscalers.
Enterprises that need to own their infrastructure for reasons including security, latency, reliability, and economics, are left with a fractured set of legacy enterprise technologies that require enormous overhead to operate and lack the tools developers love.
Oxide has built a vertically integrated, rack-level cloud computer, delivering the efficiencies, automation, and developer experience of the cloud in a form that businesses can own. Finally companies can take advantage of the benefits of cloud everywhere their business needs to run.
Work closely with existing and prospective customers; building deep relationships across the organization, determining their needs, and constructing the appropriate solution to meet them.
Build a strong pipeline of new prospective customers through independent outreach, having done the research to ensure engaging with Oxide will be time well spent.
Drive the entire sales process from early outreach through successful deployment; partnering with other Oxide teams on training, enablement, and customer success.
Develop and negotiate contracts with customers, working closely with legal, striving to create agreements that are beneficial to both parties.
Thoroughly document feedback from customers and collaborate with internal teams to ensure that our products and services continue improving over time.
Collaborate with Product, Engineering, and Operations teams to ensure that our customers have an exceptional experience.
Feel a sense of responsibility for the success of each customer project, and measure that success in their terms.
Are deeply curious about the companies that you work with, seeking to understand what makes their businesses thrive and what challenges they are facing
Pride yourself in developing a deep understanding of the product you are selling, from the highest level benefits to the lowest level technical details.
Get excited about a wide range of technical topics and dig really deep into them.
Don’t mind coworkers getting really excited about decades-old computers.
We are very explicit about our values, and they can be seen in daily life at Oxide, for example:
Our rigor is reflected in the quality of our customer engagements; ensuring the capabilities of our products and the needs of our customers are well matched.
Our transparency can be seen in how we document and communicate our product capabilities with our customers.
Our responsibility means that we are accountable for all aspects of making our customers successful; whether that is mapping out a new project or shepherding a support ticket through to a positive resolution.
Our curiosity drives our desire to learn everything we can about our customers and the market dynamics of the industries they operate in.
Our humor is a big part of our daily lives: we are inveterate wise-crackers whose video meetings spill into simultaneous text chat.
We are seeking software engineers to contribute at several different layers of our system software stack, which consists of:
Our own control plane (Omicron) with an HTTP API served by Dropshot
Our own hypervisor (Propolis)
Our own host operating system (Helios)
Our own block storage service (Crucible)
Our own switch control software and routing protocol (Maghemite)
Our own embedded microcontroller operating system (Hubris)
Our own web console, CLI, and SDK consumers (e.g., oxide.rs, oxide.go)
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:
"Crucible: The Oxide Storage Service" on our block storage service
"Helios" on our host operating system and hypervisor
"What’s taking so long?!" on our explorations into Rust compile times
"Rack-scale networking" on our switch software
"The Network Behind the Network" on the implementation of our management network
"The Frontend of the Computer" about our web UI — and our API-first approach
"Virtualizing Time" on the challenges of implementing time in a hypervisor
"Across the Chasm with Rust" on our use of and experience with Rust
"The Pragmatism of Hubris" on our embedded microcontroller operating system
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.
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.
Learn enough about our technologies to know where your interests lie.
Learn enough about our engineering approach to know that it fits your working style.
Listen to "Hiring Processes with Gergely Orosz" to familiarize yourself with the Oxide hiring process.
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.