Senior Embedded Software Engineer, Pixel Core USB
Summary
Builds and maintains the Linux kernel and Android stack for Pixel USB connectivity, enabling seamless charging and data transfer while optimizing hardware reliability across generations.
Our team’s mission is to build next generation of USB (Universal Serial Bus) connectivity and charging for Pixels and enable end users to use Google’s first-party and third-party chargers and accessories, USB-C connectivity with host PCs while ensuring USB-C port health and reliability. Our team owns the software stack needed to provide seamless experience while using Type-C USB ports in Pixel phones and tablets.This is a unique opportunity to experience full stack Android system software development.
US: $174000 - $252000 (USD) + 15% bonus target + equity + benefits
Learn more about benefits at Google.
- Develop linux kernel drivers from scratch to enable new USB controllers and Type-C controllers used in Pixel product roadmap.
- Identify and work cross Product Area to develop meaningful user facing USB features to improve product experience.
- Identify systemic issues for USB and merge solutions in Linux upstream that are easier to maintain over several generations on Tensor SoCs.
- Investigate on scalable USB software architectures and influence SoC architecture when needed. Optimize USB usecase for performance and other system health metrics.
- Abstract hardware interfaces to Android userspace, define and deliver the needed system software layers (Hardware Abstraction Layer (HAL), Android framework).
Minimum qualifications:
- Bachelor’s degree or equivalent practical experience.
- 5 years of experience with software development in one or more programming languages (e.g., C).
- 3 years of experience working with embedded operating systems.
- 3 years of experience testing, maintaining, or launching software products, and 1 year of experience with software design and architecture.
Preferred qualifications:
- Master's degree or PhD in Computer Science or related technical field.
- Experience contributing to opensource linux USB stack.
- Experience with Linux-based embedded systems development.
- Experience reading hardware spec sheets to infer hardware capabilities.
- Experience with DesignWare Controller (DWC) stack.