About the job
About Graphcore
Graphcore is at the forefront of innovation in Artificial Intelligence computing, committed to developing cutting-edge hardware, software, and systems infrastructure that will catalyze the next wave of AI advancements and facilitate the widespread adoption of AI across various industries.
As a proud member of the SoftBank Group, Graphcore is part of a distinguished family of companies that are shaping some of the most transformative technologies in the world. Together, we share an ambitious vision: to enable Artificial Super Intelligence while ensuring its benefits are available to all.
Our teams comprise individuals from a multitude of backgrounds, fostering a rich environment of diverse skills and perspectives. The Graphcore culture emphasizes continuous learning and relentless innovation, supported by AI research specialists, silicon designers, software engineers, and systems architects.
Job Summary
We are seeking a Principal Software Architect to define and implement the architectural vision of the software stack for the Graphcore ML accelerator. In this pivotal role, you will shape our software ecosystem's architecture, maintaining a profound understanding of the product's hardware and software components, their interfaces, and their interactions.
As an exceptional communicator, you will proactively articulate the software architecture and its implications. Your pragmatic approach to decision-making will take into account the critical trade-offs associated with architectural choices and their impact on product direction and engineering outcomes.
The Team
The software architecture team is tasked with defining, maintaining, and communicating the overarching architecture of our software stack, spanning from firmware to ML frameworks. Collaborating closely with engineering teams, we ensure alignment with this architectural vision.
Responsibilities and Duties
- Define and document the software architecture of the stack.
- Collaborate across diverse software domains to ensure a cohesive end-to-end architecture.
- Effectively communicate the software architecture to engineering teams.
- Ensure teams grasp key architectural components, interfaces, and guiding principles.
- Continuously evolve the software architecture as the product develops, proactively communicating changes to all relevant stakeholders.
- Stay abreast of emerging trends and technologies in software architecture.

