Graduate Firmware Engineer
Graphcore
About the Role
Start your engineering career building the firmware that keeps advanced AI compute systems running. As a Graduate Firmware Engineer in our BMC Engineering team, you will develop embedded firmware for system control, monitoring and validation. You will join in September 2027 and work from Austin, Texas. You will take defined firmware features from requirements into implementation, testing, documentation and release. Your work will help engineering teams bring up hardware, diagnose platform behavior and improve system reliability. You will write C, C++, or Python in a Linux-based engineering environment. You will also build automated tests, debug in the lab and learn how firmware interacts with advanced compute platforms. This is a strong first engineering role for graduates who want real ownership early. You will learn from experienced engineers while solving problems that connect firmware, hardware, systems and software.
The Team and Culture
The BMC Engineering team works close to the hardware. Engineers build, test and debug on development platforms, using evidence from lab work, automation and system behavior to guide decisions. You will work with firmware, hardware, silicon, systems and software teams to reproduce issues and fix root causes. Ownership matters here, and you will be trusted to communicate findings clearly. The team values curiosity, practical judgment and engineers who speak up. You will get guidance, but you will also be expected to act fast, take responsibility and keep learning.
Key Responsibilities
- Develop embedded firmware for system control, monitoring and validation.
- Take defined firmware features from requirements into implementation, testing, documentation and release.
- Write C, C++, or Python in a Linux-based engineering environment.
- Build automated tests.
- Debug in the lab.
- Learn how firmware interacts with advanced compute platforms.
Requirements & Tech Stack
- C, C++, Python
- Linux-based engineering environment
- Version-control systems
- Command-line tools
Qualifications
- A bachelor’s or master’s degree in computer engineering, electrical engineering, computer science, or a related field, completed recently or before the role begins.
- Strong foundations in C or C++, with working knowledge of Python or another scripting language.
- Understanding of computer architecture, embedded systems, firmware, or low-level software concepts.
- Familiarity with Linux environments, command-line tools, and version-control systems.
- Ability to debug software, firmware, or hardware-software issues using structured methods.
- Clear communication skills, curiosity, and the ability to deliver reliable work with appropriate guidance.
Transferable skills and diverse experiences are valued.