About Graphcore
How often do you get the chance to build a technology that transforms the future of humanity?
Graphcore products have set the standard in made-for-AI compute hardware and software, gaining global attention and industry acclaim. Now we are developing the next generation of artificial intelligence compute with systems that will allow AI researchers to develop more advanced models, help scientists unlock exciting new discoveries, and power companies around the world as they put AI at the heart of their business.
Graphcore recently joined SoftBank Group – bringing large and ongoing investment from one of the world’s leading backers of innovative AI companies.
Job Summary
Reporting to the Firmware Manager, the Staff Firmware Engineer is a key contributor to the design, development and delivery of the firmware that powers our next generation products. They are expected to take part in technical discussions across multiple teams within Graphcore and our partners.
The Team
The firmware team writes the software that ensures the full and complete bootup of Graphcore Hardware and Silicon. We design and maintain interfaces to allow our Drivers software to interact with Graphcore Silicon. We present telemetry and monitoring data for use by the host system via the SMBus interface, and by data centre operatives via the BMC.
Responsibilities and Duties
- Design, develop and deliver firmware code to the expected Graphcore standards
- Participate in technical design discussions within the Firmware team, other teams within Graphcore and our partners
- Participate in code reviews individually and as part of the team
- Participate in Agile ceremonies and actively improve Agile best practices within the team
- Contribute to and take part in in-depth technical design discussions with team members, bringing new ideas and innovative techniques to the team where possible
- Support engineers within the team and other teams to investigate and resolve firmware-related problems with our products
Candidate Profile
Essential:
- 5-7 years’ industry experience in embedded software engineering using C or C++
- Experience of designing and implementing real-time embedded software, and subsequent verification
- Proven ability to understand, build and debug complex embedded platforms
- Excellent problem-solving techniques
- Ability to manage own workload and drive outcomes
- Excellent written and verbal communication skills, with the ability to document complex large system designs in a coherent manner
- A solid understanding of Continuous Integration, build systems and software packaging best practices
Desirable
- A good understanding of server architecture and performance in a datacentre environment
- Experience of device drivers and OS Kernel development
- A good understanding of server security from both a hardware and software perspective, and how this applies to the server firmware
Benefits
In addition to a competitive salary, Graphcore offers flexible working, a generous annual leave policy, private medical insurance and health cash plan, a dental plan, pension (matched up to 5%), life assurance and income protection. We have a generous parental leave policy and an employee assistance programme (which includes health, mental wellbeing, and bereavement support). We offer a range of healthy food and snacks at our central Bristol office and have our own barista bar! We welcome people of different backgrounds and experiences; we’re committed to building an inclusive work environment that makes Graphcore a great home for everyone. We offer an equal opportunity process and understand that there are visible and invisible differences in all of us. We can provide a flexible approach to interview and encourage you to chat to us if you require any reasonable adjustments