Role Overview
Google's software engineers develop the next-generation technologies that change how billions of users connect, explore, and interact with information and one another. As a Software Engineer, Firmware within the AI and Infrastructure team, you will design, develop, test, deploy, maintain, and enhance software solutions critical to Google's needs, including the development of TPUs and hyperscale computing platforms.
Responsibilities
- Develop embedded firmware, bare metal tests and low-level debug tools for pre and post-silicon validation of SoCs.
- Exercise these capabilities on emulation, simulation and silicon platforms.
- Co-work with architecture, design and verification teams to enable hardware-software co-design.
- Engage with silicon design teams at an early stage to drive integration validation and firmware features enablement.
- Work closely with post-silicon and platform hardware teams to ensure silicon enablement and support silicon debugs.
Requirements
- Bachelor's degree in Computer Science, Electrical Engineering, Computer Engineering, or a related technical field.
- 4 years of experience in embedded systems or firmware development.
- Experience in embedded software or firmware development in C or C++.
- Experience in bringing up bare-metal environments on SoCs.
- Experience in performing firmware debugging on silicon and using debugging tools (e.g., TRACE32 or OpenOCD).
Nice to Have
- Master’s degree or PhD in Engineering, Computer Science, or a related technical field.
- Experience in using emulation platforms for firmware enablement, validation, and debug.
- Experience with ARM and RISC-V architectures.
- Experience in industry standard software development practices and agile methodologies.
- Understanding of SoC architecture and interfaces (e.g., AXI, DDR, PCIe).