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 a Team Lead in the frameworks team you will play a pivotal role in designing, implementing, optimising, maintaining and supporting the software ensures Graphcore hardware enjoys first-class support in popular machine learning frameworks such as PyTorch.
As a framework engineer in the PyTorch team you will be part of a SCRUM team working on delivering new features, working on, e.g., performance optimisations, reviewing code change, writing technical documentation, working with upstream communities, maintaining the code base and supporting users.
You are expected to closely collaborate with other engineers, both acting as a role model for more junior members in your own team but also working together with other teams, including teams making low-level libraries that the frameworks use and teams that are developing ML applications on top of the frameworks.
The Team
The frameworks team is responsible for ensuring Graphcore hardware enjoys seamless support in user-facing machine learning frameworks such as Pytorch, Triton, Jax and TensorFlow. We have strong focus on both ease-of-use and performance.
Our software team is at the cutting edge of the machine learning industry. We have a culture of driving continuous improvement and a deliberate focus on personal development.
All our software teams follow agile working practices.
Responsibilities and Duties
- Designing and implementing new features & maintaining and supporting existing features.
- Developing and maintaining unit tests, component tests and integration tests.
- Optimising the software stack to make it more performant for our users.
- Managing code quality, code complexity and technical debt.
- Contributing to documentation, including user manuals and tutorials.
- Conducting code reviews.
- Resolving regressions, performance issues and software defects.
- Coaching and mentoring other team members.
- Contributing to a collaborative team culture.
- Contribute to continuous improvements to improve ways of working.
- Working with upstream open source development teams.
Candidate Profile
Essential:
- Experience of developing performant C++ applications in a commercial setting.
- Experience of Python development.
Desirable
- Experience using and/or development of ML Frameworks such as PyTorch.
- Demonstrable knowledge of AI/ML.
- Experience in a computationally intensive engineering field.
- Understanding of and/or experience with compiler development.
- Understanding of computing architectures.
- Experience of maintaining and supporting a complex code base.
- Experience of writing ML kernels.
- Experience in profiling / optimising high performance code
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