Software Development Engineer I, Annapurna Labs
Amazon
About The Team
Annapurna Labs designs custom silicon for Amazon, including Graviton (server processors), Trainium and Inferentia (machine learning accelerators), and the Nitro system that powers EC2. They own the full stack, from silicon to the software that enables it (compilers, runtimes, drivers, and frameworks).
About The Role
As a Software Development Engineer I, you will write software that transforms custom silicon into products used by millions. You'll contribute to real production software, which may include designing, implementing, and testing software across the stack, from low-level systems code to compilers, runtimes, and tooling.
Key Responsibilities
- Designing, implementing, and testing software across the stack - from low-level systems code to compilers, runtimes, and tooling
- Writing efficient, maintainable code in languages such as C, C++, or Python
- Optimizing software performance on custom hardware (Graviton, Trainium, Inferentia)
- Debugging complex issues across the hardware-software boundary
- Collaborating with hardware, compiler, and systems teams to deliver features end-to-end
- Documenting your work and presenting results to the team
Where You Might Land
Software teams at Annapurna Labs span the full stack, with potential focus areas including:
- Compiler development for ML accelerators (Neuron SDK, MLIR, LLVM)
- ML runtimes and frameworks (integration with PyTorch, JAX, TensorFlow)
- Low-level systems software, firmware, and device drivers
- Performance optimization and kernel development for custom silicon
- Distributed training and inference infrastructure
Requirements & Tech Stack
- Programming experience in at least one modern language such as C, C++, Java, or Python
- Coursework or project experience in data structures, algorithms, and software design
- Understanding of core computer science fundamentals: operating systems, computer architecture, or systems programming
Qualifications
- Bachelor's or Master's degree program in Computer Science, Computer Engineering, or a related field, with a final graduation date of May 2027 or later
- Bachelor's or Master's degree with a focus on systems, compilers, computer architecture, or high-performance computing
- Experience with low-level or systems programming in C/C++ (memory management, concurrency, performance optimization)
- Familiarity with compilers (MLIR, LLVM, TVM), ML runtimes, operating systems internals, or distributed systems
- Exposure to machine learning frameworks and an understanding of how models run on hardware
- Prior internship, research, or open-source contribution experience in systems, compilers, or ML infrastructure