Software Development Engineer I, Annapurna Labs
Amazon
About the Role
Software Development Engineer I, Annapurna Labs, Early Career - 2027 at Amazon
About the Team
Annapurna Labs designs custom silicon for Amazon, including Graviton, Trainium, Inferentia, and the Nitro system. The team owns the full stack from silicon to software, including compilers, runtimes, drivers, and frameworks.
Where You Might Land
Software teams at 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
Key Responsibilities
As an SDE I, you will contribute to real production software, including:
- 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.
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.