Embedded Software Development Engineer, Cloud-Scale Machine Learning Acceleration

3+ months agoAustin, TX


In Annapurna Labs we are at the forefront of hardware/software co-design not just in Amazon Web Services (AWS) but across the industry. The work we do is not only cutting-edge and internet-scale but also deeply important to our customers. We design and build every component of our hardware and software to come together into products that our customers use for accelerated computing: either Machine Learning acceleration, or FPGA acceleration. We get our hands dirty, from creating our own silicon, pushing the electrons in the right direction, ensuring our hardware is functional and healthy, and managing the full lifecycle of our systems at the huge scale and complexity of AWS. If you're interested in "building a complete product" from inception to delighted customers, Annapurna is a fantastic choice.

As a member of the Annapurna Labs engineering team, you will develop software for Annapurna accelerated compute devices and EC2 systems handling customer Machine Learning workloads in AWS Data Centers world wide. You will work closely with hardware engineers to bring up new boards, custom silicon devices, and servers for EC2 accelerated computing instances. You will provide inputs to architects on the development of custom silicon and system features. You will develop automated software test and deployment pipelines to ensure software quality, compatibility, and upgradeability.


• Bachelor's degree in Computer Science or related field with 3+ years of related work experience or Master's / PhD with 1+ years of related work experience.
• 2+ years of experience developing and debugging embedded Linux systems
• 2+ years of experience in multi-threaded and concurrent programming with C and C++
• Computer Science fundamentals in object-oriented design, data structures and algorithm design, complexity analysis, scalability and availability
• Experience with professional software engineering practices and best practices for the full software development life cycle, including coding standards, code reviews, source control management, and continuous integration and testing.


• Proficiency in understanding board schematics and device data sheets
• Proficiency with boot loaders and software bring up on new hardware
• Proficiency with the operation of common bus interfaces like I2C, SPI, and PCIe
• Proficiency with modern scripting languages like Python and Lua
• Familiarity with device driver development and operation on Linux
• Familiarity with Git source control
• Meets/exceeds Amazon's leadership principles requirements for this role
• Meets/exceeds Amazon's functional/technical depth and complexity for this role

Amazon is an Equal Opportunity Employer Minority / Women / Disability / Veteran / Gender Identity / Sexual Orientation / Age