Senior Software Engineer in Build Engineering
Overview
Graphcore is seeking a Senior Software Engineer in Build Engineering to join the Software Infrastructure team in Bristol, United Kingdom. As part of the Software Operations group, this role focuses on the overall process of building and integrating the Machine Learning Software Stack. The position involves developing essential tools and services that scale and manage infrastructure while empowering the broader software team.
Who can apply
Candidates must hold the right to work in the UK, as the organization is unable to provide visa sponsorship or support for visa applications at this time. Applicants need to possess knowledge of Python, C, or a similar language, an understanding of build processes and frameworks, experience working in Linux environments, and good communication skills. Additional desirable qualifications include experience with remote caching and execution, build tools, testing frameworks, integration tools, the software development lifecycle, containers, and an understanding of software architecture patterns.
What you get
The position offers a competitive salary along with flexible working arrangements and a generous annual leave policy. Additional benefits include private medical insurance and a health cash plan, a dental plan, a pension matched up to five percent, life assurance, and income protection. Employees also receive a generous parental leave policy, an employee assistance programme covering health, mental wellbeing, and bereavement support, as well as healthy food, snacks, and a barista bar at the central Bristol office.
Requirements
The role requires working closely with quality assurance and development teams to understand how the machine learning software stack is built, ensuring good build practices, and proving that the stack works together and is reproducible in secure, sandboxed environments. Responsibilities include developing internal tooling for building, testing, and integrating the software stack, developing tools and technical processes for software releases, and providing guidance to developers on best build practices and dependency management. Additional duties involve communicating regularly with developers, tech leads, and software architects, resolving integration issues with the quality assurance team and the machine learning software stack, and contributing fixes toward the stack.