Senior Software Engineer

Arm Limited
Cambridge, United Kingdom
yesterday

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Senior
Compensation
£ 100K

Job location

Cambridge, United Kingdom

Tech stack

Test Suite
API
Data analysis
Computer Vision
Bash
Bug Tracking Systems
Compilers
Profiling
Code Review
Nvidia CUDA
Computer Programming
Software Debugging
Linux
Field-Programmable Gate Array (FPGA)
General-Purpose Computing on Graphics Processing Units
Python
Machine Learning
OpenCL
Software Engineering
Video Encoding
Scripting (Bash/Python/Go/Ruby)
Graphics Processing Unit (GPU)
GIT
Decoding
Docker

Job description

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 optimisation of the GPU driver. You may be adding 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., * 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.

Requirements

  • Experience in C and C++ programming.
  • An understanding of embedded hardware architectures and software engineering development practices.
  • Proficiency in problem solving and debugging with a practical, organised and analytical approach to work.
  • Good interpersonal team-working skills, self-motivated and results focused.
  • Good written and spoken English.

"Nice To Have" Skills and Experience :

  • Experience of OpenCL, CUDA, or Vulkan.
  • Experience in scripting with Python and Bash.
  • 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 of driver or HAL development.
  • Working exposure to software development for a commercial organisation.

In Return:

We have a strong background of building up expertise in people, so this is an excellent opportunity to learn something new and interesting in a friendly and collaborative environment. You will get to contribute to our Mali GPU product lines, learn about the latest GPU technologies, utilise your engineering skills to support and influence the technologies used on millions of devices.

Benefits & conditions

We provide benefits beyond a competitive salary to reward our people for their dedication and contributions.

About the company

At Arm, we want to build extraordinary teams. If you need an adjustment or an accommodation during the recruitment process, please email . To note, by sending us the requested information, you consent to its use by Arm to arrange for appropriate accommodations. All accommodation or adjustment requests will be treated with confidentiality, and information concerning these requests will only be disclosed as necessary to provide the accommodation. Although this is not an exhaustive list, examples of support include breaks between interviews, having documents read aloud, or office accessibility. Please email us about anything we can do to accommodate you during the recruitment process. Hybrid Working at Arm Arm's approach to hybrid working is designed to create a working environment that supports both high performance and personal wellbeing. We believe in bringing people together face to face to enable us to work at pace, whilst recognizing the value of flexibility. Within that framework, we empower groups/teams to determine their own hybrid working patterns, depending on the work and the team's needs. Details of what this means for each role will be shared upon application. In some cases, the flexibility we can offer is limited by local legal, regulatory, tax, or other considerations, and where this is the case, we will collaborate with you to find the best solution. Please talk to us to find out more about what this could look like for you., Power the Future on Arm Working in software engineering at Arm is about shaping a future of technology for which we don't yet have words. Our engineers lead innovation in physical IP, AI and machine learning, cloud architecture, automotive tech, and every aspect of computing that matters. Spanning software's full spectrum, from compilers to AI-powered IoT and beyond, your code can enable virtually anything to be produced on silicon. Whether you're developing award-winning VR gaming or life-enhancing medical equipment, you can improve the lives of millions by being your brilliant self at Arm.

Apply for this position