Enable job alerts via email!

Software Engineer - Pytorch

Graphcore

Cambridge, Bristol

On-site

GBP 45,000 - 70,000

Full time

Today
Be an early applicant

Job summary

A leading AI technology company in Cambridge is looking for a Software Engineer to design and support software for machine learning accelerators. You will work with frameworks like PyTorch and Triton, focusing on feature development, performance optimization, and team collaboration. The ideal candidate has strong software engineering skills, experience in Python, and C++ application development. We offer flexible working, competitive salary, and great benefits including health insurance and generous leave policies.

Benefits

Flexible working
Private medical insurance
Generous annual leave policy
Healthy food and snacks

Qualifications

  • Demonstrable strong software engineering skills.
  • Experience of Python development.
  • Experience of developing performant C++ applications in a commercial setting.

Responsibilities

  • Designing and implementing new features & maintaining existing features.
  • Developing and maintaining unit tests, component tests and integration tests.
  • Optimising the software stack for performance.

Skills

Strong software engineering skills
Python development
C++ application development
Writing ML kernels
Knowledge of AI/ML
Job description

Graphcore is one of the world’s leading innovators in Artificial Intelligence compute.

It is developing hardware, software and systems infrastructure that will unlock the next generation of AI breakthroughs and power the widespread adoption of AI solutions across every industry.

As part of the SoftBank Group, Graphcore is a member of an elite family of companies responsible for some of the world’s most transformative technologies. Together, they share a bold vision: to enable Artificial Super Intelligence and ensure its benefits are accessible to everyone.

Graphcore’s teams are drawn from diverse backgrounds and bring a broad range of skills and perspectives. A melting pot of AI research specialists, silicon designers, software engineers and systems architects, Graphcore enjoys a culture of continuous learning and constant innovation.

Job Summary

Reporting to a Team Lead in the frameworks team, you will play a pivotal role in designing, implementing, optimizing, maintaining and supporting the software required to ensure the machine learning accelerators that Graphcore develop enjoy first-class support in state-of-the-art machine learning frameworks such as PyTorch and Triton.

This role sees you joining our PyTorch team, where you will be part of a SCRUM team working on delivering new features, optimizing performance, reviewing code changes, writing technical documentation, working with upstream communities, maintaining the code base and supporting users.

In this role you will closely collaborate with other engineers, both within the PyTorch team as well as other engineering teams. You help the team coordinate and deliver complex, open-ended technical tasks. You are proactive and an excellent communicator. You will develop deep expertise in the PyTorch project and will (in time) contribute to the team’s technical direction and processes. You understand the importance of managing code quality and code complexity and balancing this against the need to deliver business outcomes.

Note that the job title and associated benefits will be tailored to the successful candidate’s level of experience at the job offer stage to one of Software Engineer, Staff Engineer, Senior Staff Engineer, Principal Software Engineer or Senior Principal Software Engineer.

Note that as the machine learning software landscape is quite fast moving and as such flexibility is essential – over time you may be asked to work on frameworks other than PyTorch.

The Team

The Frameworks team ensures Graphcore hardware works seamlessly with the tools that ML engineers and researchers love – Pytorch, Triton, Jax and TensorFlow. We’re a talented and diverse team of engineers and we foster a culture of collaboration, openness and learning. All our software teams follow agile working practices, and we care deeply about both ease-of-use as well as performance. We work closely with other Graphcore teams as well as leading open-source communities.

By joining us, you’ll join our exciting journey on the cutting edge of the machine learning industry. Your contributions will make a real difference – enabling machine learning engineers and researchers to unlock the full potential of Graphcore’s hardware.

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 complex technical tasks with cross-team dependencies.
  • Managing code quality, code complexity and technical debt.
  • Provide technical leadership, contributing the team’s technical direction and processes.
  • 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
  • Demonstrable strong software engineering skills.
  • Experience of Python development.
  • Experience of developing performant C++ applications in a commercial setting.
  • At least one of:
  • Experience of writing ML kernels.
  • Experience of compiler development.
  • Experience of using and/or development of ML Frameworks.
  • Experience in a computationally intensive engineering field.
  • Demonstrable knowledge of AI/ML.
  • Understanding of computing architectures.
  • Experience of maintaining and supporting a complex code base.
  • Experience in profiling / optimising high performance code.

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.

Applicants for this position must hold the right to work in the UK.

Get your free, confidential resume review.
or drag and drop a PDF, DOC, DOCX, ODT, or PAGES file up to 5MB.