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.
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.
Responsibilities:
- Define and maintain the multi-generation software architecture for Low-Speed IO (LSIO) subsystems across Linux kernel (upstream/GKI and vendor modules) and bare-metal/Real-Time Operating System (RTOS) firmware environments.
- Lead pre-silicon validation strategies using Gem5, QEMU, and FPGA emulation platforms to enable day-one silicon bring-up and maximize pre-silicon driver coverage.
- Partner closely with Silicon Architecture, Digital Design, Board EE, and peripheral client teams (Camera, Audio, Touch, Sensors, Wireless) to ensure seamless connectivity with LSIO peripherals.
- Provide technical guidance, code reviews, and architectural mentorship to team members across global sites.
Minimum qualifications:
- Bachelor's degree or equivalent practical experience.
- 8 years of experience working with embedded operating systems.
- 3 years of experience with software design and architecture.
- Experience in embedded systems, Linux drivers, and C/C++.
Preferred qualifications:
- Master’s degree or PhD in Engineering, Computer Science, or a related technical field.
- 8 years of experience with data structures and algorithms.
- 3 years of experience in a technical leadership role leading project teams and setting technical direction.
- 3 years of experience working in a complex, matrixed organization involving cross-functional, or cross-business projects.