About the Role
About The Job
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.
What You'll Do
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.
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.
Requirements
Bachelor’s degree
A degree or equivalent practical experience is required.
5 years software development
Experience in software development in one or more programming languages is necessary.
Systems programming experience
Experience with systems programming, operating systems, or embedded development is essential.
Software testing and maintenance
3 years of experience testing, maintaining, or launching software products is required.
Nice to Have
A higher degree in Computer Science or a related field is preferred.
5 years of experience with data structures and algorithms is a plus.
Expertise in low-level debugging and diagnostics is beneficial.
Benefits
Health insurance
Comprehensive health, dental, vision, life, and disability insurance is provided.
Retirement benefits
401(k) with company match is available.
Paid time off
20 days of vacation per year, accruing at a rate of 6.15 hours per pay period.
Maternity leave
28-30 weeks of maternity leave is offered.
Holidays
13 paid holidays per year are included.