Senior Embedded Software Engineer, Pixel Core USB
About the role
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.
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.
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.
In this role, you will direct code across different parts of Android stack right
from Linux kernel, HAL, Android system server to fiddling with hardware in
bootloader and directly influencing silicon architecture. You will be working
and collaborating across areas and through every stage of development from
schematic reviews to user experience.
The Platforms and Devices team encompasses Google's various computing software
platforms across environments (desktop, mobile, applications), as well as our
first party devices and services that combine the best of Google AI, software,
and hardware. Teams across this area research, design, and develop new
technologies to make our user's interaction with computing faster and more
seamless, building innovative experiences for our users around the world.
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
[https://www.google.com/about/careers/applications/benefits/].
RESPONSIBILITIES:
- 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).
Responsibilities
- Develop Linux kernel drivers for USB and Type-C controllers used in Pixel products.
- Collaborate across product areas to develop user-facing USB features.
- Address systemic USB issues and upstream maintainable solutions for Tensor SoCs.
- Design scalable USB software architectures and influence SoC architecture.
- Optimize USB performance and system health metrics.
- Define and deliver Android system software layers, including HAL and framework interfaces.
Qualifications
- Bachelor’s degree or equivalent practical experience.
- At least 5 years of software development experience in one or more programming languages.
- At least 3 years of experience with embedded operating systems.
- At least 3 years of experience testing, maintaining, or launching software products.
- At least 1 year of experience with software design and architecture.
- Preferred: Master’s degree or PhD in Computer Science or a related field.
- Preferred: Experience with the open-source Linux USB stack, Linux-based embedded systems, hardware specifications, or the DesignWare Controller stack.
Benefits
- 15% target bonus
- Equity
- Benefits
Skills mentioned
About Google
A problem isn't truly solved until it's solved for all. Googlers build products that help create opportunities for everyone, whether down the street or across the globe. Bring your insight, imagination and a healthy disregard for the impossible. Bring everything that makes you unique. Together, we can build for everyone. Check out our career opportunities at goo.gle/3DLEokh
H-1B sponsorship history
Historical employer filing data was found for Google. The employer record includes 57,181 historical certified applications. This is employer-level history, not a guarantee that this role currently offers sponsorship.