Senior Embedded Software Engineer, Android OS
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. 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.
About the role
In this role, you will have experience in low-level computer systems, computer architecture, embedded systems, and kernel development. Key development areas will include the Linux (Android) kernel, device drivers, embedded firmware, Android userspace daemons, performance analysis, and Linux power management. You will collaborate across multidisciplinary domains through every stage of development—from schematic reviews to final user experience. You will also have a history of open-source Linux contributions.
Google's XR team is at the forefront of the next major leap—the convergence of AI and XR. This is more than just new devices—it's about reimagining how we interact with the world around us. We're building a future where lightweight XR devices like smart glasses and headsets pair with helpful AI to augment human intelligence, offering personalized, conversational, and contextually aware experiences.
Responsibilities
- Develop Linux kernel drivers to enable new universal serial bus (USB)-connected XR devices and lead hardware bring-up for novel custom silicon.
- Research scalable USB software architectures, influence SoC architecture, and optimize USB use cases for performance and system health metrics.
- Abstract hardware interfaces for Android userspace, defining and delivering required hardware abstraction layer (HAL) and Android framework layers.
- Collaborate across product areas (PAs) to build impactful, user-facing features for split-compute XR systems (Compute Puck and HMD).
- Identify and fix systemic USB issues while leveraging agentic tools to analyze system behavior and optimize timing and performance.
Qualifications
Minimum qualifications
- Bachelor's degree or equivalent practical experience.
- 5 years of experience in Linux Kernel development using the programming languages C/C++.
- Experience working on the Linux kernel.
- Experience in one or more of the following: test automation, refactoring code, test-driven development, build infrastructure, optimizing software, debugging, building tools and testing frameworks.
Preferred qualifications
- Experience with Linux or BSD kernels.
- Demonstrated knowledge of embedded systems development, RTOS concepts, device drivers and hardware/software integration.
- Extensive knowledge of Unix/Linux environments, embedded Linux.
- Extensive knowledge of Android or WebKit.
Pay
Individual pay is determined by factors including job-related skills, experience, and relevant education or training. US: $174,000 - $252,000 (USD) + 15% bonus target + equity + benefits.
Benefits
Learn more about benefits at Google.