Senior Software Engineer
Role details
Job location
Tech stack
Job description
- Create representative ML workloads and gain insights from their execution. (Numerical accuracy, performance analysis and benchmarking).
- Build Continuous Integration/Delivery (CI/CD) against hardware simulators/emulators and physical hardware.
- Take responsibility for designing and writing tests for projects within the Software team and ML frameworks.
- Work closely with all Software development teams, supporting a culture of quality, security and maintainability.
- Guide the team in industry best practices and improve the team's code quality and technical capabilities.
- Evaluate the effectiveness of existing test strategies and infrastructure and make thoughtful improvements to ensure they continue to support team goals and organizational direction.
Requirements
Applicants for this role should possess prior experience in software development, as the primary focus will involve testing a Machine Learning (ML) software development stack. The position requires a strong interest in reliability and performance testing, as well as a genuine passion for debugging and problem-solving. Ideal candidates will be self-motivated, enthusiastic, and able to work independently while also being effective communicators who can collaborate with team members. They should also be the type of person who takes initiative and gets things done quickly and efficiently. This opportunity is particularly well-suited for an experienced software engineers seeking to gain hands-on exposure to the exciting fields of Artificial Intelligence (AI), ML, and AI accelerator hardware., The Software QA team is composed of highly skilled and dedicated software engineers with a strong passion for automation and data analysis. They collaborate extensively with industry-standard machine learning frameworks and models, making contributions to upstream open-source projects. Operating in a dynamic and fast-paced environment, the team consistently delivers high-quality results, ensuring exceptional customer experiences and impactful advancements in the product., * At least 6 years of experience in production quality software development
- Bachelor/Master's/PhD or equivalent experience in Computer Science, Maths, Machine Learning, Data Science, or related field
- Strong proficiency in Python
- Proficiency in C++
- Experience with Linux operating systems
- Must be a fast learner
Desirable
- Exposure to machine learning frameworks such as PyTorch, JAX, Triton, TensorFlow
- Experience with distributed workload management systems such as Kubernetes, VLLM, Keras or MLOps pipelines
- Experience with hardware architectures or compilers
- Experience with test automation in a CI/CD environment
- Exposure to data analytic methodologies
- Some experience with people management or mentoring
Benefits & conditions
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; 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.