As a Senior Software Engineer in the Analysis Tools Team you will drive the effort to design and develop profiling tools to help users optimise their applications on single processors and large computing clusters. The ideal candidate will have extensive experience in designing, developing, and maintaining complex software systems involving custom hardware. You will be responsible for leading development efforts, mentoring junior engineers, and driving technical excellence in our projects.
The Team
The Analysis Tools team builds profiling tools to help users optimise their applications for Graphcore hardware. The team is responsible for collecting profiling information from the Graphcore hardware and software, processing the profiling data and presenting the profiling information to the user via command line tools and graphical applications.
Responsibilities and Duties
Technical leadership on profiling software design.
Mentoring junior engineers and promoting an environment of continuous learning and improvement.
Understanding the Graphcore platform, how it can be profiled and how it is presented to the user.
Design, development and testing of features for profiling.
Fixing bugs and supporting customers.
Experience of developing complex software solutions using a systems language (C, C++, Rust).
Understanding of system architecture, memory management, multithreading, and hardware utilisation.
Excellent problem-solving skills and ability to debug and resolve complex issues.
Strong communication and collaboration skills, with the ability to influence stakeholders and peers.
Proficiency with version control (Git).
Experience working in Agile environment and iterative development.
Desirable skills:
Experience with performance profiling tools.
Experience with front-end development using TypeScript and/or modern frameworks (ideally React).
Experience with relational databases for profiling or data collection.
Experience with large computing clusters and their performance monitoring ecosystems.
Knowledge of machine learning frameworks (ideally PyTorch).
Knowledge of continuous integration/continuous delivery pipelines and build tools.
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; were 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.