Operating System and Virtualization Engineer

Oxide Computer Company

Oxide Computer Company

Emeryville, CA, USA · Remote
Posted 6+ months ago

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: