Software Engineer, Tpu, Platforms Engineering

Google Google · Big Tech · Taipei, Taiwan

Software Engineer role focused on designing and building firmware for TPUs (Tensor Processing Units) on ASICs, co-designing hardware/software interfaces, and developing tools for ASIC firmware debugging and simulation. The role involves embedded systems development and hardware/software co-design.

What you'd actually do

  1. Design and build firmware running on embedded micro-controllers with limited memory footprints on the accelerator Application-Specific Integrated Circuits (ASIC).
  2. Co-design hardware/software interface, and work with the hardware design and development teams.
  3. Design and develop tools to update and debug ASIC firmware, and enable chip bring-up and hardware debugging.
  4. Build functional or cycle-level simulators that bit-accurately model the custom accelerator ASICs, build tools and infrastructure to help ASIC design verification, tapeout, and bring-up, and develop embedded Central Processing Unit (CPU) simulators as part of the full system simulator.

Skills

Required

  • software development in C/C++
  • firmware development

Nice to have

  • embedded software development in C/C++
  • hardware/software co-design at the chip-level
  • architecting scalable software
  • multi-threaded designs