Software Engineer - Hardware Abstraction Layer, AWS Machine Learning Accelerators
Custom silicon chips live at the heart of AWS machine learning servers (Trainium and Inferentia), and enable machine learning (ML) for AWS's customers. We’re looking for engineers to scale the system software team developing the hardware abstraction layer (HAL) that manages these cutting-edge ML system-on-chips (SoCs). The HAL forms the lowest level of the AWS infrastructure management software stack.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 SoCsAWS'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 organizationAlthough 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 lifeA 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 teamAWS Utility Computing (UC) provides product innovations — from foundational services such as Amazon’s Simple Storage Service (S3) and Amazon Elastic Compute Cloud (EC2), to consistently released new product innovations that continue to set AWS’s services and features apart in the industry. As a member of the UC organization, you’ll support the development and management of Compute, Database, Storage, Internet of Things (Iot), Platform, and Productivity Apps services in AWS, including support for customers who require specialized security solutions for customers who require specialized security solutions for their cloud services.Annapurna Labs (our organization within AWS UC) designs silicon and software that accelerates innovation. Customers choose us to create cloud solutions that solve challenges that were unimaginable a short time ago—even yesterday. Our custom chips, accelerators, and software stacks enable us to take on technical challenges that have never been seen before, and deliver results that help our customers change the world.About AWSAmazon Web Services (AWS) is the world’s most comprehensive and broadly adopted cloud platform. We pioneered cloud computing and never stopped innovating — that’s why customers from the most successful startups to Global 500 companies trust our robust suite of products and services to power their businesses.Diverse ExperiencesAWS values diverse experiences. Even if you do not meet all of the qualifications and skills listed in the job description, we encourage candidates to apply. If your career is just starting, hasn’t followed a traditional path, or includes alternative experiences, don’t let it stop you from applying. Work/Life BalanceWe value work-life harmony. Achieving success at work should never come at the expense of sacrifices at home, which is why we strive for flexibility as part of our working culture. When we feel supported in the workplace and at home, there’s nothing we can’t achieve in the cloud. Inclusive Team CultureHere at AWS, it’s in our nature to learn and be curious. Our employee-led affinity groups foster a culture of inclusion that empower us to be proud of our differences. Ongoing events and learning experiences, including our Conversations on Race and Ethnicity (CORE) and AmazeCon (gender diversity) conferences, inspire us to never stop embracing our uniqueness.Mentorship & Career GrowthWe’re continuously raising our performance bar as we strive to become Earth’s Best Employer. That’s why you’ll find endless knowledge-sharing, mentorship and other career-advancing resources here to help you develop into a better-rounded professional. Our team is dedicated to supporting new members. We have a broad mix of experience levels and tenures, and we’re building an environment that celebrates knowledge-sharing and mentorship. Our senior members enjoy one-on-one mentoring and thorough, but kind, code reviews. We care about your career growth and strive to assign projects that help our team members develop your engineering expertise so you feel empowered to take on more complex tasks in the future.BASIC QUALIFICATIONS- 3+ years of non-internship professional software development experience- 2+ years of non-internship design or architecture (design patterns, reliability and scaling) of new and existing systems experience- Experience programming with C++ ...