Software Development Engineer, SoC HAL
Annapurna Labs
This job at a glance
- Who can apply
- New grads and up to 1 year · Bachelor's degree or Master's degree
- Must know
- AWSMachine learningEmbedded systemsC++PythonJava
- Work
- On-site in Cupertino
- Pay
- Not stated by the employer.
- Skill demand
- C++42%AWS21%Embedded systems17%Machine learning10%of 149 similar entry-level jobs posted in the US this week
- Listed
- Nov 6, 2026 · still open
Sign in free to see which of these skills your resume already shows.
About the Role
Annapurna Labs builds the custom silicon at the heart of AWS machine learning servers. This role involves building the Hardware Abstraction Layer (HAL) that brings these chips to life. The position is based in Cupertino, CA.
Key Responsibilities
- Implement, test, and maintain HAL/driver features for individual hardware blocks (e.g., PCIe, DDR / HBM memory, DMA, system fabric, interrupt controllers, boot / firmware).
- Write and test C++ for the driver stack across hardware blocks.
- Write clean, well-tested C++ and contribute to team practices such as testing, code-review, and continuous deployment.
- Debug failures that span software and silicon.
- Build an understanding of how the HAL interacts with the underlying hardware.
- Learn the hardware/software interface by partnering with RTL and design verification engineers.
- Provide feature additions and bug fixes on current and prior chips.
Requirements & Tech Stack
- Knowledge of programming languages such as C/C++, Python, Java or Perl.
- Experience with data structures, algorithms, and software design fundamentals.
- Experience (non-internship) in professional software development, OR currently enrolled in or recently completed a Bachelor's or Master's degree in computer science or a related field.
- Coursework, internship, or project experience in computer architecture or operating systems.
- Experience with C or C++ and object-oriented design.
- Exposure to low-level, embedded, or hardware-adjacent programming.
- Familiarity with testing, debugging, source control, and build processes in a team setting.
Qualifications
- Bachelor's degree or above in Computer Science, Computer Engineering, or related fields at time of application.