Logo
Amazon

Sr. SDE C/C++ Hardware/Software Co-Design, Machine Learning Acceleration Systems

Amazon, Austin, Texas, United States, 78701

Save Job

C/C++ Engineer For Embedded Software Team

Annapurna Labs stands at the forefront of hardware/software co-design, leading innovation not just within Amazon Web Services (AWS) but across the entire industry. We design and build every component of our hardware and software to create best-in-class machine learning products that accelerate customer workloads through industry leading hardware using our custom silicon solutions. If you're passionate about building the highest-performing, hardware-accelerated Machine Learning systems and want to be part of the entire journey from pre- through post-silicon development, Annapurna Labs offers an exceptional career opportunity. Join us in shaping the future of AI acceleration. At the heart of AWS Machine Learning servers reside our custom Amazon-designed silicon that powers next-generation machine learning capabilities for our customers. We're seeking an experienced C/C++ engineer to join our embedded software team, where you'll develop bare metal firmware that drives neural network model execution across our custom ASIC-based ML Accelerator chips. Role Overview

Working at the intersection of hardware and software, you'll collaborate closely with our architecture and design teams to design and implement firmware and custom hardware that enables machine learning within our accelerator chips. Our mission is ambitious: to democratize access to industry-leading ML infrastructure and make deep learning capabilities accessible to everyday software developers. From the ground up, you'll help design and build the foundation that makes this vision possible. The Annapurna Labs team operates with the agility and culture of a startup, but with the full weight of Amazon behind us. Key Job Responsibilities

Applying Software/Hardware co-design principles Embedded software design, implementation, testing, debugging and performance improvements Test suite and infrastructure design Owning the design and final implementation of maintainable, documented and well tested software Close collaboration with RTL designers, design verification engineers, and other software teams Mentoring of software engineers on best practices, computer architecture and software design choices