Graphcore has created a completely new processor, the Intelligence Processing Unit (IPU), specifically designed for artificial intelligence. The IPU’s unique architecture means developers can run current machine learning models orders of magnitude faster. More importantly, it lets AI researchers undertake entirely new types of work, not possible using current technologies, to drive the next great breakthroughs in general machine intelligence.

We believe our IPU technology will become the worldwide standard for artificial intelligence compute. The performance of Graphcore’s IPU is going to be transformative across all industries and sectors whether you are a medical researcher, roboticist or building autonomous cars.

Our team is at the forefront of the artificial intelligence revolution, enabling innovators from all industries and sectors to expand human potential with technology. What we do, really makes a difference.

As an embedded software developer, you will be working as part of Graphcore’s engineering team in Bristol developing low level systems software and host side application interfaces and tools for supporting Graphcore’s Intelligence Processing Unit.  You will work closely with our hardware engineering team and production engineering team with Lab and bring-up work being a natural part of the job.

Responsibilities

  • Design and implement software of embedded devices and host systems from requirements to production and commercial deployment
  • Design, develop, code, test and debug system software
  • Review code and design
  • Analyze and enhance efficiency, stability and scalability of system resources
  • Integrate and validate new product designs
  • Support software QA and optimize I/O performance
  • Interface with hardware design and development

Key Skills

  • Solid programming experience in C and C++
  • Experience in hands-on development and troubleshooting on embedded targets preferably involving the ARM Cortex MCU or similar
  • Proven experience in embedded systems design with preemptive, multitasking real time operating systems such as FreeRTOS
  • Understanding of low-level platform software and peripheral device drivers for PCIe, USB, I2C etc.
  • Working knowledge of test driven development, unit testing and mock frameworks
  • Familiarity with software configuration management tools, defect tracking tools, and peer review
  • Adequate knowledge of reading schematics and data sheets for components
  • Excellent communication skills

We welcome people of different backgrounds and experiences and are committed to building an inclusive work environment that makes Graphcore a great home for everyone. We are an equal opportunity employer and want to build a work environment where everyone is happy, productive and respectful so they can do their best work. If you have a disability or additional need that requires accommodation, just let us know.

Apply for this Job

* Required
File   X
File   X