Software Development Engineer I, Annapurna Labs
Amazon
About the Role
Software Development Engineer I, Annapurna Labs, Early Career - 2027
About the Team
Annapurna Labs designs custom silicon for Amazon, including Graviton, Trainium, and Inferentia, as well as the Nitro system. They own the full stack, from silicon to the software that makes it work, including compilers, runtimes, drivers, and frameworks.
Key Responsibilities
As a Software Development Engineer I, you will:
- Design, implement, and test software across the stack, from low-level systems code to compilers, runtimes, and tooling.
- Write efficient, maintainable code in languages such as C, C++, or Python.
- Optimize software performance on custom hardware (Graviton, Trainium, Inferentia).
- Debug complex issues across the hardware-software boundary.
- Collaborate with hardware, compiler, and systems teams to deliver features end-to-end.
- Document your work and present results to the team.
Where You Might Land
Software teams within Annapurna Labs span the full stack. Potential focus areas include:
- 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
- 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.
- 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.
Preferred Qualifications
- 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.