Senior Software Engineer
Role details
Job location
Tech stack
Job description
Our team develops the driver layer that implements widely used GPU compute and machine learning APIs, including Vulkan ML and OpenCL, enabling massively parallel workloads on Arm Mali GPUs.
Mali GPUs power performance-critical applications such as machine learning, image processing, computer vision, and video encode and decode. Working within the constraints of mobile and embedded systems, we deliver advanced functionality while continuously improving performance, efficiency, and reliability.
You will join a collaborative Agile team developing GPU compute drivers for next-generation Mali GPUs. Working with pre-release Android platforms and emerging technologies, you will help shape capabilities that will reach the mobile market in the years ahead.
We use modern AI information retrieval tools and advanced engineering practices to improve productivity and quality, placing you at the forefront of contemporary software development.
Based in Cambridge, one of the UK's leading technology hubs, you will be part of a diverse and inclusive team in a supportive, forward-looking environment.
Responsibilities:
You will contribute to one of several specialised areas within the GPU compute driver team, including feature development, performance optimisation, infrastructure, and quality engineering.
Your work may involve enabling new GPU capabilities, identifying optimization opportunities to maximise performance, enhancing internal tooling and infrastructure, or supporting demanding ML and compute workloads.
You will:
- Contribute across the full software development lifecycle, including design, implementation, testing, review, and documentation
- Develop and optimise driver features and supporting infrastructure
- Analyse functionality and performance across diverse, performance-critical workloads
- Maintain and improve the codebase through debugging, refactoring, and quality assurance activities
- Take part in design discussions, peer reviews, estimation, and Agile planning
- Collaborate with compiler, ML, integration, and solutions teams on cross-functional initiatives
- Work in a Linux environment on Arm-based targets, including models, FPGAs, and production silicon
- Apply modern AI-assisted engineering tools and practices to improve productivity and quality
- Uphold Arm's engineering standards and collaborative culture
This role offers broad technical exposure, continuous learning through training and peer collaboration, and the opportunity to influence technologies deployed in millions of devices worldwide.
Requirements
Do you have experience in Scripting?, * Strong proficiency in C and C++ for systems-level development
- Good understanding of embedded systems and hardware-software interaction, applying solid software engineering principles
- Strong problem-solving and debugging skills, with a structured and analytical approach
- Effective communication and teamwork skills, with experience working in an Agile environment
- Clear written and spoken English suitable for an international engineering setting
"Nice To Have" Skills and Experience :
- Experience with graphics or compute APIs such as Vulkan or OpenCL
- Experience in device driver development, ideally in GPU or other performance-critical areas
- Exposure to machine learning workloads in performance-sensitive environments
- Experience writing design documentation and developing automated test suites
- Proficiency in Python or Bash for scripting and automation
- Experience developing for Linux or Android platforms
- Familiarity with Git, issue tracking tools, and Agile development practices
- Experience contributing to large or multi-site software projects
- Knowledge of performance optimisation, profiling, and instrumentation techniques
- Understanding of compiler internals, particularly LLVM
- Experience with automation and DevOps tools such as Docker and CI/CD systems
- Exposure to data analysis and statistics for performance evaluation