Software Engineer, Silicon Systems Software

Google Google · Big Tech · San Diego, CA +2

Software Engineer role focused on low-level system code for Google's Tensor SoC and Pixel devices, bridging hardware architecture and system software to optimize performance, power, and stability for mobile and Generative AI applications. Responsibilities include C/C++/Rust development, performance analysis, and hardware/software co-design.

What you'd actually do

  1. Design, develop, test, and maintain low-level software utilizing C, C++, or Rust for the Tensor SoC and Pixel ecosystem.
  2. Develop prototypes and proof-of-concepts, iterating to evaluate the viability and feasibility of solutions proposed by the architecture team across simulation, emulation, and physical silicon goals.
  3. Refine system architecture by participating in hardware/software design discussions and collaborate cross-functionally with Hardware, Software, Product, and Architecture teams to enable hardware/software co-design and implement system-level solutions.
  4. Drive performance modeling, simulation, and analysis to predict system behavior and guide architectural trade-offs, focusing on metrics such as throughput, latency, and power consumption.
  5. Analyze, optimize, and debug complex low-level system behaviors, operating system interactions, memory management, and hardware-software interfaces.

Skills

Required

  • C
  • C++
  • Rust
  • embedded operating systems
  • performance modeling
  • performance analysis
  • simulation tools

Nice to have

  • Master's degree or PhD
  • embedded systems
  • OS internals
  • Android system architecture
  • Linux kernel
  • system services
  • Python
  • automated test frameworks
  • data analysis

What the JD emphasized

  • low-level software
  • Tensor SoC
  • Pixel devices
  • hardware-software interface
  • system software
  • performance
  • power efficiency
  • low-level system code
  • hardware-software co-design
  • performance modeling
  • simulation
  • analysis
  • low-level system behaviors
  • operating system interactions
  • memory management
  • hardware-software interfaces