System Software Engineer Cambridge, UK

System Software Engineer Cambridge, UK

Cambridge Full-Time 60000 - 95029 £ / year (est.) No working from home possible
graphcore

At a Glance

  • Tasks: Design and implement cutting-edge OS Kernel and Device Driver software using C/C++/Python.
  • Company: Join Graphcore, a leader in AI compute innovation with a collaborative culture.
  • Benefits: Enjoy flexible working, generous leave, private medical insurance, and a matched pension plan.
  • Other info: Inclusive environment with excellent career growth opportunities and support for diverse backgrounds.
  • Why this job: Make a real impact on the future of AI while working with top experts in the field.
  • Qualifications: Experience in software development, especially with OS Kernel and Device Drivers on Linux or Windows.

The predicted salary is between 60000 - 95029 £ per year.

At Graphcore, we’re building the future of AI compute. We’re a team of semiconductor, software and AI experts, with deep experience in creating the complete AI compute stack – from silicon and software to infrastructure at datacentre scale. To meet the vast and exciting AI opportunity, Graphcore is expanding its teams around the world. We are bringing together the brightest minds to solve the toughest problems, in a place where everyone has the opportunity to make an impact on the company, our products and the future of artificial intelligence.

As a member of the drivers and utilities team you will contribute to the planning, design, implementation and testing of low level kernel drivers and user space driver library code. You will be part of one of the two teams in the system software department (the firmware team being the other one) and report to the drivers and utilities team manager.

The drivers and utilities team forms part of the system software group – working closely with both software engineers developing our Poplar SDK and with silicon and hardware engineers developing Graphcore’s IPU solution. The drivers and utilities team develop custom control software on the host in kernel and user space. Our solutions enable our customers to get maximum performance and utility for our cutting‑edge products.

Responsibilities and Duties
  • Design, implement, test and document OS Kernel and Device Driver software at the highest standard using C/C++/Python programming languages
  • Participate in agile development – working as part of a scrum team to develop the right software at pace
  • Communicate effectively and contribute regularly to technical discussions with your peers in software and hardware engineering, with architects and other stakeholders
  • Hands‑on during key product development phases involving close working with hardware and silicon engineering groups to enable fast time to market delivery
Candidate Profile
  • Industry experience in software development using programming languages such as C/C++.
  • Familiar with OS Kernel and Device Driver development and deployment on Linux or Windows systems
  • Good understanding of lower‑level software stack and interactions with the hardware layer
  • Possess effective problem‑solving skills, familiar with some debug and performance analysis tools and techniques
  • Experience with one or more of the following: PCIe, CPU, device drivers, SoC, firmware, and hardware/software integration
  • Experience developing firmware or drivers for GPUs or other accelerators
  • Experience working on upstreaming of kernel code / contributing to Linux kernel.
  • Exposure to integration with data centre / cloud service operations – for example integration with Kubernetes or open stack.

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 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. Unfortunately at this time, we are unable to provide visa sponsorship or support for visa applications.

graphcore

Contact Details:

graphcore Recruitment Team

StudySmarter Expert Advice🤫

We think this is how you could land System Software Engineer Cambridge, UK

Join Local Tech Meetups

Get out there and mingle with fellow developers by joining local tech meetups. It’s a fantastic way to meet people who might be working at graphcore or know someone who does. Plus, you can pick up some trendy tech skills and trends while you're at it!

Contribute to Open Source Projects

Show off your coding chops by jumping into open-source projects. Not only does this give you practical experience, but it also gets you noticed in the dev community. You'll create a killer portfolio that speaks volumes about your skills to graphcore.

Tap into Online Developer Communities

Don’t underestimate the power of online developer communities like GitHub, Stack Overflow, and even Reddit. Participate in discussions, share your projects, and build your visibility. We can often find opportunities through these channels that can lead to a full-time gig at companies like graphcore.

Explore Job Boards Specifically for Tech Roles

Keep your eyes peeled on job boards that focus on tech roles. Sites like TechCareers or Stack Overflow Jobs can often have listings for companies like graphcore that might not show up on broader job sites. Make it a habit to check these regularly, and don’t hesitate to apply directly through our website!

We think you need these skills to ace System Software Engineer Cambridge, UK

C/C++ Programming
Python Programming
OS Kernel Development
Device Driver Development
Linux Systems
Windows Systems
Problem-Solving Skills

Some tips for your application 🫡

Show off your coding skills:When applying for a software engineering role, it's super important to showcase your coding skills. Make sure your CV includes your tech stack, any relevant programming languages you’re comfortable with, and examples of projects you've worked on. If you have a GitHub profile, link it up! We love to see code in action.

Tailor your portfolio:For a full-time role, we’d expect to see some solid examples of your work in your portfolio. Make sure to include at least two or three projects that highlight your problem-solving skills and your ability to work with different technologies. Focus on the projects that are most relevant to the position at graphcore.

Craft a killer cover letter:Your cover letter is your chance to stand out—make it personal! Explain why you want to work at graphcore and how your skills align with the role. Show us your passion for software development. We dig enthusiastic candidates who understand the value of collaboration and continuous learning!

Be clear and concise:When it comes to writing your CV and cover letter, clarity is key. Avoid jargon that could confuse us and stick to simple, direct language. Highlight your achievements with quantifiable results where possible, and keep everything easy to read. A well-organised application goes a long way!

How to prepare for a job interview at graphcore

Brush Up on Your Coding Skills

For a full-time software engineering role, it's crucial that we stay sharp with our coding abilities. Expect technical questions that might involve solving problems on the spot or discussing algorithms. Practise on platforms like LeetCode or HackerRank to get comfortable with the types of questions that often come up.

Know Your Tools and Frameworks

Make sure we’re well-acquainted with the tools and technologies listed in the job description. Familiarise ourselves with any specific frameworks or programming languages mentioned. If graphcore uses React or Node.js, for instance, be ready to discuss how we’ve used them in previous projects or coursework.

Showcase Your Projects

Bring along a portfolio that highlights our best work. This could be code samples, GitHub repositories, or any side projects we’ve built. Make sure we can talk through our thought process for each project, especially the challenges we faced and how we solved them—this shows our problem-solving skills in action.

Prepare for Behavioural Questions

While technical skills are key, full-time positions also require cultural fit. Be ready to discuss our previous experiences and how we handle teamwork, conflict, and deadlines. Brush up on the STAR method—Situation, Task, Action, Result—to clearly articulate our past experiences when discussing how we've contributed to a team.