Software Development Engineer I, Annapurna Labs
Amazon
About The Team
Annapurna Labs designs custom silicon for Amazon, including Graviton, Trainium, and Inferentia processors, and the Nitro system. The team owns the full stack, from silicon to software (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 will contribute to real production software, potentially 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.
Where You Might Land
Annapurna has software teams across the full stack, aligning you with your interests and strengths. 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.
Basic 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.
- 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.