Job header section
Senior Software Engineer - GPU Compute
job navigation section
Software Engineering at Arm
You might not think you know us, but you do. Our software is all over Silicon Valley. In fact, it's right in the palm of your hand. Because the biggest names in tech, from your smartphone brand to the makers of the world's fastest supercomputer look to us for the most powerful advanced core processors.
When you think about what software development can stretch to at Arm, from physical IP to machine learning, you'll wonder why you didn't apply sooner. The real-world applications for our technology are so massive, your work will influence the lives up to 70% of the global population, whether it's through award-winning VR gaming or life-enhancing medical equipment. Here you'll develop a better, connected future.
One benefit we're really proud of is FlexPot; a sum of money on top of your salary (which is the same value regardless of your seniority) which you can use for charitable giving, development or your personal wellbeing. Ready to start that French language course you've always wanted to do? Or are you a keen gym-goer and want to use it for a membership? There's lots different of ways to enjoy your Flexpot.
We'll always encourage you to take plenty of annual leave, so you stay fresh and inspired. But you know what really does it? When we encourage you to take an extended, paid 4 weeks' sabbatical after 4 years of service. You could even combine your FlexPot allowance with your sabbatical and volunteer overseas!
You're a human being, not a resource. And so it's important to us that we're there for you at significant points in your life. That's why we offer flexible progressive leave. Whether you're having kids, acting as a primary care giver or have lost a loved one, you'll be able to put your family first without worrying about your career.
We create a safe space for you to look after your mental and physical health, with support ranging from medical insurance to the workplace mental health platform Unmind. Alongside a growing number of onsite gyms, yoga, cycling and running clubs. All of which comes with a flexible working policy to ensure you can live life and be your brilliant self.
Senior Software Engineer – GPU Compute
You will join a multifaceted, collaborative and highly motivated Agile software development team working on the GPU compute drivers for the next generation Mali™ mobile GPUs.
You will develop with the latest yet-to-be-published Android versions and will help craft the technologies that the mobile market will see in years to come.
This inclusive multinational development team is located in a cheerful campus in Cambridge, the technological centre of the UK.
Our group writes the layer of the driver that implements the popular GPU compute APIs, such as OpenCL, which provide massively parallel execution of general purpose (C-like) code on Mali GPUs, often known as GPGPU (General-purpose computing on graphics processing units).
Our many customers have performance-critical GPU compute use cases that include machine learning (ML), image processing & computer vision (CV), video encoding and decoding. Mobile devices are highly constrained environments, and our challenge is to provide this sophisticated functionality, while improving both dependability and efficiency.
If you want to develop your skills and understanding in these technologies, this is the opportunity for you. Join us and together we will make GPU compute and Mali a success in our customers hands!
Day to day activities
We have different teams that handle the development, performance analysis and optimization of the GPU driver. You may be adding a new functionality to support the latest GPUs, identifying optimisation opportunities to squeeze out that last bit of performance, developing our infrastructure to ensure it supports the ever-growing number of benchmarks that we run or working on many other exciting tasks!
You will work in a Linux environment, working on Arm-based targets including models, FPGAs and silicon from our partner companies (thereby covering past, present and future generations of our designs).
As a member of an Agile team, you will have the chance to try your hand at different aspects of our work. Engineers grow their expertise through in-house and externally hosted training, and through peer code reviews.
You will be working closely together with our community of engineering teams across Arm’s European design centres developing technologies for the current and next generations of Arm Mali™ GPUs.
What I will be doing?
Depending on the team you join:
- Participating in all phases of software development – including design, implementation, testing, code review and documentation.
- Implementing new features in the driver and/or infrastructure.
- Testing and analysing the functionality and performance of our software.
- Performing design and code reviews for other team members.
- Engaging with the rest of the team for investigation, estimation and planning purposes.
- Maintaining the existing codebase: fixing bugs and other quality assurance activities.
- Promoting and demonstrating the Arm core beliefs and behaviours.
What skills, experience and qualifications do I need?
- Experience in C and C++ programming.
- Experience in scripting with Python and Bash.
- A proven understanding of embedded hardware architectures and software engineering development practices.
- Proficiency in problem solving and debugging with a practical, organized and analytical approach to work.
- Good interpersonal team-working skills, self-motivated and results focused.
- Good written and spoken English.
- Experience of OpenCL, CUDA, or Vulkan.
- Knowledge of software optimisation, profiling and instrumentation techniques.
- Experience developing software for Linux or Android based systems.
- Experience with data analysis and statistics.
- Experience with machine learning.
- Knowledge of the internal operation of compilers (particularly LLVM), although this is not a compiler role.
- Familiarity with Git, and bug tracking tools.
- Experience in creating design and test specifications and in the creation and maintenance of test suites.
- Automation skills, with exposure to Docker.
- Experience with Agile development processes.
- Experience of driver or HAL development.
- Working exposure to software development for a commercial organization.
- Willingness to travel occasionally to meet our teams in other sites.
Arm is an equal opportunity employer, committed to providing an environment of mutual respect where equal opportunities are available to all applicants and colleagues. We are a diverse organization of dedicated and innovative individuals, and don’t discriminate on the basis of any characteristic.
Life at Arm
Life in the office doesn't get any better. Especially when those offices are as sleek as ours. And the people are as creative and intuitive. Combine that with our popular ‘we, not I' mindset and you enjoy the kind of teamwork and togetherness rarely found elsewhere. We share so much in common, not least the same passion for progress, but we also welcome each other's diversity. Because, ultimately, we love to inspire and be inspired every day.
Everything Made Possible
Just how far do the possibilities of Arm's tech stretch? AI, Machine Learning, IoT… billions of people use our technology every day, spanning countless nations, industries and applications. Most people run their lives on Arm technology. So, you see: you really do know us.