# Principal Software Architect

**Company**: Graphcore
**Location**: Bristol
**Experience**: senior
**Job type**: full-time
**Category**: Engineering
**Industry**: Technology

**Apply**: https://job-boards.greenhouse.io/graphcore/jobs/8392083002?utm_source=yubhub.co&utm_medium=jobs_feed&utm_campaign=apply
**Canonical**: https://yubhub.co/jobs/job_3e307364-99f

## Description

We are seeking a Principal Software Architect to define and drive the architectural vision of the software stack for the Graphcore ML accelerator.

In this role, you will shape the architecture of our software ecosystem and maintain a deep understanding of the product's hardware and software components, their interfaces, and how they interact.

You will be an excellent communicator, proactively conveying the software architecture to engineering teams.

Your pragmatic approach to decision-making will recognise the impact of architectural choices on product direction and engineering outcomes.

## Responsibilities and Duties

- Define and document the software architecture of the software stack.

- Work across different software domains to ensure a coherent end-to-end architecture.

- Clearly communicate the software architecture to engineering teams.

- Ensure teams understand key software architectural components, interfaces, and guiding principles.

- Continuously maintain the software architecture as the product evolves, communicating architectural changes proactively to all relevant stakeholders.

- Stay informed about trends and developments in the ML/software ecosystem.

- Assess the architectural impact of new technologies.

- Be aware of usability, performance, reliability, maintainability, testability, security, and observability constraints on the software architecture.

- Prototype and validate architectural concepts through proof-of-concept implementations.

- Contribute to future and/or related product definitions with a forward-looking mindset, understanding and communicating the impact of future direction on software architecture.

- Work with HW and Silicon architects to ensure the software stack meets product needs.

- Ensure the software architecture meets product requirements.

- Work closely with engineering, product, leadership, and partners to ensure alignment between business goals and architectural direction.

## Candidate Profile

### Essential:

- Expertise in one or more of these technologies: Firmware, Drivers, ML frameworks (PyTorch, Triton, etc.), Collectives, HPC, Tooling, C & C++, CPU architectures.

- Technical expertise in the ML accelerator software space.

- Excellent communication skills, both written and verbal.

- Collaborative mindset and ability to influence.

- Pragmatic approach to decision-making, being aware of trade-offs and implications.

### Desirable

- Demonstrable experience in a previous architecture role.

## Skills

### Required
- Firmware
- Drivers
- ML frameworks
- Collectives
- HPC
- Tooling
- C & C++
- CPU architectures
- Technical expertise in ML accelerator software space
- Excellent communication skills
- Collaborative mindset
- Pragmatic approach to decision-making

### Nice to have
- Demonstrable experience in a previous architecture role

---

Source: [Apply at job-boards.greenhouse.io](https://job-boards.greenhouse.io/graphcore/jobs/8392083002?utm_source=yubhub.co&utm_medium=jobs_feed&utm_campaign=apply)
