ML Embedded Software Development Manager, Annapurna Labs Machine Learning Accelerators, AWS

Company:  Amazon
Location: Cupertino
Closing Date: 19/10/2024
Salary: £125 - £150 Per Annum
Hours: Full Time
Type: Permanent
Job Requirements / Description

ML Embedded Software Development Manager, Annapurna Labs Machine Learning Accelerators, AWS

Do you love building highly technical teams, and leading them to successful product releases? Do you dream in both hardware and software, comfortably straddling the gray area between them? Have you heard about machine learning and want to get your hands dirty? Do you get joy from helping folks on your team grow and develop, mentoring and coaching them both technically and interpersonally? If these ring true, awesome - this is the role for you. Come join us!

Custom silicon chips live at the heart of AWS Machine Learning servers, enabling faster, more powerful, and more accurate machine learning for our customers. We’re looking for a software development manager (SDM) to scale the team that develops the embedded software stack critical to the functionality of these cutting-edge system-on-chips (SoCs). Your team’s software will drive execution and management of the neural network program directly from within these chips’ Neuron Cores.

You'll also work closely with our architecture and design teams to drive hardware/software co-design, developing both firmware and custom hardware that enables ML within our accelerator chips. Our team's charter is to make deep learning pervasive for everyday software developers and to democratize access to cutting edge infrastructure - you and your team will be enabling that vision from the ground up.

Key job responsibilities:

  1. Manage a team of software engineers in hardware/software co-design
  2. Hire top talent to build your team
  3. Technically lead new product and feature development (this is a deeply technical, hands-on role)
  4. Work closely with stakeholders to understand requirements and timelines, then drive resource allocation to ensure successful project delivery
  5. Drive hardware/software quality and stability improvements via infrastructure development (testing, coverage, CI/CD, etc.)
  6. Ensure team is building software that can be maintained, improved upon, documented, tested, and reused
  7. Close collaboration with architects, RTL designers, design verification engineers, and other software teams

This is a fast-paced, challenging position, 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 our products' performance, quality, and cost. We're searching for individuals who want to reach beyond what is possible today and change an industry.

While your primary responsibility will be building and leading your team, Annapurna Labs is a highly technical organization, and you’ll be expected to jump into technical issues and our codebase head-first. We are looking for an SDM who can do the work themselves, but enjoys management.

You'll learn about the inner workings of ML and our accelerators as part of your onboarding, so while no prior ML knowledge is required, an ML background will be helpful.

About the team

AWS Utility Computing (UC) provides 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, Platform, and Productivity Apps services in AWS, including support for customers who require specialized security solutions for their cloud services. Additionally, this role may involve exposure to and experience with Amazon's growing suite of generative AI services and other cutting-edge cloud computing offerings across the AWS portfolio.

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.

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

  1. 3+ years of engineering team management experience
  2. Experience partnering with product or program management teams
  3. 7+ years of non-internship professional software development experience
  4. Experience developing embedded software or firmware
  5. C++ or C project experience, with strong object-oriented programming background
  6. Experience with computer architecture

PREFERRED QUALIFICATIONS

  1. Experience in recruiting, hiring, mentoring/coaching, and managing software engineers to improve their skills, efficiency, and effectiveness
  2. 2+ years of experience leading engineering teams in hardware/software co-design
  3. ML/AI background, especially at the lowest level, e.g. kernel development for GPUs or accelerators
  4. System software (OS kernel, bare metal, microcontroller, etc.) development experience
  5. Experience building test regression and continuous integration frameworks and tooling
  6. 2+ years of embedded firmware development experience

Amazon is committed to a diverse and inclusive workplace. Amazon is an equal opportunity employer and does not discriminate on the basis of race, national origin, gender, gender identity, sexual orientation, protected veteran status, disability, age, or other legally protected status.

#J-18808-Ljbffr
Apply Now
An error has occurred. This application may no longer respond until reloaded. Reload 🗙