Software Engineer II, Embedded Systems/Firmware

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.

The AI and Infrastructure team is redefining what’s possible. We empower Google customers with breakthrough capabilities and insights by delivering AI and Infrastructure at unparalleled scale, efficiency, reliability and velocity. Our customers include Googlers, Google Cloud customers, and billions of Google users worldwide.

We're the driving channel behind Google's groundbreaking innovations, empowering the development of our cutting-edge AI models, delivering unparalleled computing power to global services, and providing the essential platforms that enable developers to build the future. From software to hardware our teams are shaping the future of world-leading hyperscale computing, with key teams working on the development of our TPUs, Vertex AI for Google Cloud, Google Global Networking, Data Center operations, systems research, and much more.

  • Develop embedded firmware, bare metal tests and low-level debug tools for pre and post-silicon validation of SoCs.
  • Co-work with architecture, design and verification teams and enable hardware-software co-design.
  • Engage with silicon design teams at a very early stage and drive integration validation and firmware features enablement as the silicon development progresses.
  • Work closely with post-silicon and platform hardware teams to ensure silicon enablement and support silicon debugs.
  • Exercise these capabilities on emulation, simulation and silicon platforms.

Minimum qualifications:

  • Bachelor’s degree or equivalent practical experience.
  • 2 years of experience in embedded systems or firmware development.
  • Experience with embedded software or firmware development in C/C++.
  • Experience with bringing up bare-metal environments on SoCs.
  • Experience in leading firmware debugs on silicon and usage of debug tools such as TRACE32, OpenOCD, etc.

Preferred qualifications:

  • Master's degree or PhD in Computer Science or 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., Advanced Extensible Interface (AXI), Double Data Rate (DDR), Peripheral Component Interconnect Express (PCIe), etc.).