
Software Engineer - Hardware Abstraction Layer, AWS Machine Learning Accelerators
Required skills
- C++
- Python
- SoC
- ASIC
- GPU
- CPU
- IP blocks
- HAL
- hardware abstraction layer
- system software
Nice to have
- SDLC
- code reviews
- source control management
- SystemC
- TLM
- RTL simulation
Role summary
AWS is seeking a Software Engineer to develop the hardware abstraction layer (HAL) for custom silicon chips (Trainium and Inferentia) used in their machine learning servers. This role involves working closely with hardware designers and system software teams to build, architect, test, and maintain the lowest level of AWS's infrastructure management software stack. The ideal candidate will have strong C++ skills, familiarity with Python, experience with hardware-based systems and chip architecture, and a solid understanding of software architecture and modular driver designs. Experience with the full software development lifecycle, SystemC, performance modeling, and modern C++ are preferred.
As a software engineer developing the SoC HAL, you will:
- Work with hardware designers to build HALs for newly developed SoC IPs
- Work with system software teams to solve SoC and system-level architectural issues, drive debug, architect the HAL itself, and innovate on cross-functional solutions
- Continuously test and deploy your software stack to multiple internal customers
- Refactor and maintain existing codebases throughout the device lifecycle
- Innovate on the tooling you provide to customers, making it easier for them to use our SoCs
AWS's Annapurna Labs organization designs and deploys some of the largest custom silicon in the world, with many subsystems that must all be managed, tested, and monitored. The SoC HAL is a critical piece of the AWS infrastructure management software stack that ensure the chip is functional, performant, and secure.
You will thrive in this role if you:
- Are strong in C++ and familiar with Python
- Enjoy working with hardware-based systems, and diving into chip and system architecture
- Know how to build effective abstractions over low-level SoC details
- Have strong opinions about software architecture, and are able to apply them effectively
- Are familiar with modular driver architectures (such as the Linux or Windows device-driver stacks)
- Enjoy learning new technologies, building software at scale, moving fast, and working closely with colleagues as part of a small, startup-like team within a large organization
Although we build and deploy ML chips, no ML background is needed for this role. You (and your software) won’t be doing ML. Our HAL lives at the lowest level of the backend AWS infrastructure responsible for managing our ML servers. You and your team will develop HALs for components used by machine learning, like PCIe and HBM, but won’t need to deeply understand ML yourselves.
This role can be based in either Cupertino, CA or Austin, TX. The team is split between the two sites, with no preference for one over the other.
This is a fast-paced role where you'll work with thought-leaders in multiple technology areas. You'll have high standards for yourself and everyone you work with, and you'll be constantly looking for ways to improve your software, as well as our products' overall performance, quality, and cost.
We're changing an industry. We're searching for individuals who are ready for this challenge, who want to reach beyond what is possible today. Come join us and build the future of machine learning!
A day in the life
A few videos help explain what the Annapurna Labs ML team is working on:
- https://youtu.be/4nfkonjjICo?si=nKhM1Wv4108mnIOa
- https://youtu.be/n38WDflRbjQ?si=SZEV5i_5du1jKYP-
About the team
Annapurna Labs, designs custom silicon powering AWS’s cloud infrastructure. Custom SoCs live at the heart of Amazon ML servers — including Inferentia and Trainium Systems — delivering high-performance ML inference and training at cloud scale. Basic Qualifications: - Experience programming languages such as C/C++, Python, Java or Perl
- 2+ years writing functional or performance models of hardware (SoCs, ASICs, GPUs, CPUs, IP blocks)
- Familiarity with SoC, CPU, GPU, and/or ASIC architecture and micro-architecture Preferred Qualifications: - 2+ years of full software development life cycle, including coding standards, code reviews, source control management, build processes, testing, and operations experience
- Experience working with DV teams or integrating models into verification flows
- Experience with SystemC or TLM-based modeling
- Experience correlating functional models against RTL simulation or emulation
- Experience developing or calibrating performance models
- Familiarity with Modern C++ (20 and beyond)
- Experience with PyTest, GoogleTest, or similar test frameworks
- Experience with multi-threaded simulation
Amazon is an equal opportunity employer and does not discriminate on the basis of protected veteran status, disability, or other legally protected status.
Los Angeles County applicants: Job duties for this position include: work safely and cooperatively with other employees, supervisors, and staff; adhere to standards of excellence despite stressful conditions; communicate effectively and respectfully with employees, supervisors, and staff to ensure exceptional customer service; and follow all federal, state, and local laws and Company policies. Criminal history may have a direct, adverse, and negative relationship with some of the material job duties of this position. These include the duties and responsibilities listed above, as well as the abilities to adhere to company policies, exercise sound judgment, effectively manage stress and work safely and respectfully with others, exhibit trustworthiness and professionalism, and safeguard business operations and the Company’s reputation. Pursuant to the Los Angeles County Fair Chance Ordinance, we will consider for employment qualified applicants with arrest and conviction records.
Our inclusive culture empowers Amazonians to deliver the best results for our customers. If you have a disability and need a workplace accommodation or adjustment during the application and hiring process, including support for the interview or onboarding process, please visit https://amazon.jobs/content/en/how-we-hire/accommodations for more information. If the country/region you’re applying in isn’t listed, please contact your Recruiting Partner.
The base salary range for this position is listed below. Your Amazon package will include sign-on payments and restricted stock units (RSUs). Final compensation will be determined based on factors including experience, qualifications, and location. Amazon also offers comprehensive benefits including health insurance (medical, dental, vision, prescription, Basic Life & AD&D insurance and option for Supplemental life plans, EAP, Mental Health Support, Medical Advice Line, Flexible Spending Accounts, Adoption and Surrogacy Reimbursement coverage), 401(k) matching, paid time off, and parental leave. Learn more about our benefits at https://amazon.jobs/en/benefits.
USA, CA, Cupertino - 165,200.00 - 223,600.00 USD annually
USA, TX, Austin - 143,700.00 - 194,400.00 USD annually
Sample Amazon interview questions
- 1
Implement Search a 2D Matrix
codingtechnicalmedium - 2
Implement LRU Cache
codingtechnicalmedium - 3
Implement Best Time to Buy and Sell Stock
codingtechnicaleasy - 4
Implement Flood Fill
codingtechnicaleasy - 5
Implement Top K Frequent Elements
codingtechnicalmedium
Get started to unlock a personalized interview prep pack for this role.
Similar roles
- Software Engineering Intern, Frontend (Summer 2027)Notion · New York, NY · Hybrid
Lead Software Engineer - Enterprise AI Services & AgentsWellmark Blue Cross and Blue Shield · Des Moines, IA · Hybrid
Senior Software Engineer - Lead PlatformA Place for Mom · Remote · Remote
Senior Software EngineerHumata Health · Remote · Remote- Intermediate Software Engineer (Frontend/UI)Achievers · Toronto, ON · Hybrid
Software Engineer, ML Workload PlatformCohere · Remote · Remote
