Do you love operating systems implementation, digging into the gritty interface where software meets machine? We are seeking a software engineer to work on our illumos-based host operating system, Helios and our Rust-based VMM, Propolis. These technologies sit at the center of the Oxide technology stack, interfacing directly with a wide range of hardware, embedded software, and third-party firmware to support the Oxide control plane and its virtual machine instances. The host OS is holistically designed to begin execution with the processor’s first instruction; it uniquely subsumes and replaces functionality that UEFI and ACPI firmware provide in other architectures. The Rust-based VMM is a de novo implementation based on the bhyve hypervisor.
As an engineer working on host system software and virtualization, you will:
Work with a helpful and experienced team to design, build, and bring up host system software, in-kernel virtualization, and the user-space VMM on current and future Oxide computers
Read and write code in C (for the operating system writ large), in Rust (for Propolis and for some in-kernel components), and/or microprocessor assembly. All the code you write will be open source.
Grow and apply your understanding of microprocessors, through deep familiarity with available documentation, interacting directly with real hardware, and producing your own documents where the vendor’s fall short
Contribute to the security and resiliency of the system by designing for failure from the ground up
Participate in a rigorous code review process and help your colleagues maintain our software in a production-ready state at all times
Apply a customer-centric view to the development of new end-to-end features and functions and help realize them across the stack
Contribute to the design of new Oxide hardware and software components elsewhere in the stack
You will thrive in this role if you:
Are familiar with operating systems or virtualization concepts and comfortable in C, Rust, or other low-level systems languages
Seek the versatility of working from core OS architecture to hardware interface to networking to virtual device development.
Enjoy the freedom of blazing your own architectural trails and solving problems from first principles
Have previously worked in the guts of operating systems or virtualization technologies such as illumos, KVM, Hyper-V, or related systems
Are up to the challenge of interfacing with hardware that has missing or inaccurate documentation
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.
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
Holistic Boot on our approach to BIOS-free booting
Unshrouding Turin (or Benvenuto a Torino) on the work we’re doing for AMD’s Turin microprocessor
Holistic Engineering on our integrated hardware/software approach
Virtualizing Time on the thorniness of getting time to work in a hypervisor