Software Engineer, Embedded Systems/Firmware, Pixel Bootloader
As a part of the Pixel Bootloader team, you will collaborate with Android platform, Pixel hardware, gChips, and external partners to deliver a bootloader software stack that provides a positive Android experience for Pixel phones and tablets.The Google Pixel team focuses on designing and delivering the world's most helpful mobile experience. The team works on shaping the future of Pixel devices and services through some of the most advanced designs, techniques, products, and experiences in consumer electronics. This includes bringing together the best of Google’s artificial intelligence, software, and hardware to build global smartphones and create transformative experiences for users across the world.Individual pay is determined by factors including job-related skills, experience, and relevant education or training.
US: $147000 - $210000 (USD) + 15% bonus target + equity + benefits
Learn more about benefits at Google.
- Own and deliver bootloader and firmware features in C and Rust.
- Participate in bringing up new Pixel devices throughout the full development cycle such as pre-silicon emulation environments, SoC development boards, prototypes, mass production, and in-market.
- Drive software planning, design, and implementation of software features in areas such as interconnect, boot, reset, memory, high speed IO, low speed IO, interrupt controllers, and security.
- Debug issues involving complicated multi-faceted interactions between silicon, hardware, firmware, software, and the environment.
- Work in a variety of code bases (e.g., C, Rust, and Python).
Minimum qualifications:
- Bachelor’s degree or equivalent practical experience.
- 2 years of experience with software development in C.
- 2 years of experience working with embedded operating systems.
Preferred qualifications:
- Master's degree or PhD in Computer Science or a related technical field.
- 2 years of experience with data structures and algorithms.
- Experience with common debug or trace technologies (e.g., JTAG, ARM SWD, ARM CoreSight, gdb, TRACE32, etc.).
- Experience developing embedded software in bare-metal microcontroller firmware, RTOS, bootloaders (e.g., BIOS, uboot, UEFI, coreboot, etc.), or Linux kernel.
- Experience with modern SoC architecture, system bring-up, debug, or trace techniques.
- Proficiency in the Rust programming language.