Staff Software Engineer, USB Fuchsia Platform Drivers
- Location
- San Jose, CA, USA; Mountain View, CA, USA; Seattle, WA, USA
- Work model
- On-Site
- Level
- Staff
- Salary
- $207k – $300k/yr
- H-1B history
- 2,460 approvals (FY2023)
- Posted
- 2h ago
Skills
About this role
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. In this role, you will be ensuring Fuchsia integrates reliably with both prototype hardware and stable production environments. Your focus will be taking ownership of the Fuchsia USB subsystem, driving the initiative to build a performant stack that reliably serves Fuchsia developers, end-users, and our internal infrastructure labs. You will lead the effort to resolve pain points, addressing complex bugs and performance bottlenecks to elevate our USB implementation to full Google production quality. You will require flexibility and willingness to contribute across other platform driver domains as needed. This position demands deep technical expertise in USB specifications and a pragmatic approach to system-level debugging.You will have a proven track record of stabilizing complex hardware-software interfaces and shipping production-grade drivers. 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: $207000 - $300000 (USD) + 20% bonus target + equity + benefits Learn more about benefits at Google .
Lead the technical design of the Fuchsia USB subsystem. Drive system-level power management and data throughput optimizations, with a deep focus on complex USB-C Power Delivery (PD) negotiations and USB 3.x metrics. Leverage our infrastructure labs to maximize driver reliability and throughput, actively utilizing hardware-in-the-loop testing to resolve performance bottlenecks. Ensure compatibility across a vast ecosystem of first-party and third-party USB devices. Address the most complex system-level bugs at the hardware/software interface utilizing protocol analyzers, oscilloscopes, and hardware debuggers. Define best practices for driver development and hardware-software integration, and mentor team members to raise the overall technical bar. Partner closely with kernel, product, and hardware teams to align hardware integration efforts with overarching system requirements and product roadmaps.
Minimum qualifications: Bachelor's degree or equivalent practical experience. 8 years of experience in software development. 5 years of experience testing, and launching software products. 5 years of experience working with embedded operating systems. 3 years of experience with software design and architecture. Experience with Linux device drivers. Preferred qualifications: Experience reading hardware spec sheets to understand hardware capabilities. Prior experience contributing to open source Linux USB stack. Prior experience with the Design Ware Controller (dwc) stack. Embedded development experience in Linux or other operating systems. Deep knowledge of USB specifications.