Virtual Platform Software Engineer, Annapurna Labs Machine Learning Accelerators, Aws

Amazon Amazon · Big Tech · Cupertino, CA · Software Development

Software Engineer to build and own virtual platforms (full-system C++ and SystemC models) for custom ML accelerator chips (Trainium and Inferentia), enabling software development before silicon availability. Role involves modeling subsystems, improving infrastructure, and supporting software teams.

What you'd actually do

  1. Build and own functional models of SoC subsystems that integrate into our full-system virtual platform, used by firmware, driver, runtime, and application software teams
  2. Design models for usability and performance — your customers are software engineers who need to run real workloads on your platform efficiently
  3. Develop and improve the virtual platform infrastructure: QEMU integration, simulation performance, build and release tooling, and customer-facing documentation
  4. Work with software teams (your primary customers) to understand their workflows, debug issues on the platform, and shape the model to maximize their productivity
  5. Drive simulation performance improvements so the platform can handle increasingly complex workloads at scale

Skills

Required

  • C++
  • SystemC
  • Python
  • functional models
  • virtual platforms
  • system-level simulations for SoCs, ASICs, GPUs, or CPUs
  • SoC, CPU, GPU, and/or ASIC architecture and micro-architecture

Nice to have

  • full software development life cycle
  • QEMU
  • TLM
  • transaction-level modeling
  • simulation infrastructure
  • CI pipelines
  • release tooling
  • Modern C++ (20 and beyond)
  • PyTest
  • GoogleTest
  • multi-threaded programming
  • firmware
  • driver
  • runtime software development

What the JD emphasized

  • own a product that software teams across AWS depend on
  • genuinely interesting engineering challenges
  • software engineer first
  • deep domain knowledge in chip architecture
  • customers' experience