Senior Kernel Software Engineer, Fuchsia

GoogleApplyPublished 1 hours agoFirst seen 54 minutes ago
Apply

The Zircon Kernel team builds the foundational operating system core that drives Fuchsia, establishing essential security, performance, and reliability boundaries at the bare-metal layer. As the lowest layer of Fuchsia, Zircon handles core object architectures, physical and virtual memory management through page tables, and primitive inter-process communication mechanisms. The team is currently executing a major architectural migration to incrementally rewrite foundational subsystems from C++ to Rust, ensuring modern memory safety while supporting Google’s evolving ecosystem of consumer devices.

As a Software Engineer on the Zircon Kernel team, you will design, implement, and maintain core operating system components including low-level context switching, thread scheduling, virtual memory layouts, and system call interfaces. You will address complex bare-metal challenges such as managing hardware interrupts, avoiding system-wide kernel panics, and optimizing code generation for safe execution, working in close alignment with cross-functional compiler, tools, and security teams.

Additionally, you will play a central role in the Zircon in Rust migration initiative. This requires engineering robust, sound cross-language FFI boundaries with existing C++ frameworks, mapping intricate memory layouts, managing disparate exception-handling paradigms, and encapsulating unsafe low-level operations behind safe API boundaries to manage multi-threaded mutability without compromising platform stability.

Responsibilities

  • Design, implement, and optimize core kernel infrastructure, including virtual memory page tables, thread schedulers, timers, and object architectures.
  • Develop and maintain sound multi-language FFI boundaries to safely bridge legacy C++ subsystems with modern Rust components while managing strict stack and memory constraints.
  • Implement advanced low-level diagnostic frameworks and execute comprehensive test categories—including early boot, core, and stress testing—to isolate non-deterministic system behaviors.
  • Collaborate across compiler, tools, and security infrastructure teams to audit code generation, refine code coverage, and systematically document memory invariants and lock hierarchies.

Minimum qualifications:

  • Bachelor's degree or equivalent practical experience.
  • 5 years of experience working with embedded systems, and Linux kernel development.
  • Experience with Rust systems programming.

Preferred qualifications:

  • Master’s degree or PhD in Engineering, Computer Science, or a related technical field.
  • Experience implementing or maintaining core operating system Kernel components, such as virtual memory layouts, low-level context switching, thread scheduling, or primitive IPC mechanisms.
  • Demonstrated expertise in low-level debugging, diagnostics, and root cause analysis across execution phases like early boot, hardware interrupts, or power management routines.
  • Deep understanding of Rust programming; soundness, unsafe code encapsulation, multi-threaded mutability, and mitigating bare-metal runtime or stack constraints.
  • Strong technical documentation and collaboration practices, including authoring design documents, detailing invariants, and auditing code with security teams.