Kernel Senior Software Engineer, Fuchsia
Google's software engineers develop the next-generation technologies that change how billions of users connect, explore, and interact with information and one another. Our products need to handle information at massive scale, and extend well beyond web search. We're looking for engineers who bring fresh ideas from all areas, including information retrieval, distributed computing, large-scale system design, networking and data storage, security, artificial intelligence, natural language processing, UI design and mobile; the list goes on and is growing every day. As a software engineer, you will work on a specific project critical to Google’s needs with opportunities to switch teams and projects as you and our fast-paced business grow and evolve. We need our engineers to be versatile, display leadership qualities and be enthusiastic to take on new problems across the full-stack as we continue to push technology forward.
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.
Fuchsia is a modern, open source operating system that is simple, secure, updatable, and performant. It’s a general purpose OS, designed to power an ecosystem of hardware and software, and provides core operating system functions like system resource management, a driver framework, and software abstractions.
Individual pay is determined by factors including job-related skills, experience, and relevant education or training.US: $174000 - $252000 (USD) + 15% bonus target + equity + benefits
Learn more about benefits at Google.
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 with software development in one or more programming languages.
- 3 years of experience testing, maintaining, or launching software products, and 1 year of experience with software design and architecture.
- Experience with systems programming, operating systems or general embedded development.
Preferred qualifications:
- Master's degree or PhD in Computer Science or a related technical field.
5 years of experience with data structures and algorithms.
- Experience implementing or maintaining core operating system kernel components, such as virtual memory layouts, low-level context switching, thread scheduling, or primitive IPC mechanisms.
- Proficiency in Rust systems programming, with a deep understanding of soundness, unsafe code encapsulation, multi-threaded mutability, and mitigating bare-metal runtime or stack constraints.
- Demonstrated expertise in low-level debugging, diagnostics, and root cause analysis across execution phases like early boot, hardware interrupts, or power management routines.
- Strong technical documentation and collaboration practices, including authoring design documents, detailing invariants, and auditing code with security teams.