Help develop software tools to support the needs of the scientists and engineers working with supercomputers. We are looking for a highly skilled and enthusiastic C++ software engineer who is passionate about producing quality software to join our engineering team.
In the course of this role, you’ll have the opportunity to learn about and use the world-leading supercomputers that we support. Our tools are used by industry, government and academia to perform ground breaking scientific research and simulations, such as weather forecasting, modelling the big bang and simulating the human brain.
You shall learn how to develop an LLVM based compiler, analyse and drive up the performance of workloads on Arm through compiler and library tuning, contribute back to the open source community and help an engineering department of over fifty people utilise DevOps to drive an efficient and effective process.
Our group are responsible for developing Allinea tools (the DDT debugger, Map profiler, and Performance Reports), The Arm Compiler, Arm Performance Libraries, Arm Instruction Emulator and the Arm Code Advisor (a web-based tool that advises on code performance improvements).
You will work as a member of our Arm Compiler for HPC team and alongside our Quality Engineering and Performance Libraries teams.
Your role as a software engineer will require you to:
- Identify and implement changes to our LLVM compiler, libraries and open source applications to improve the performance of benchmark workloads.
- Enhance the LLVM compiler framework to support new Arm architectural designs. This framework is used internally by the Architecture team in the development of those designs and externally to support our commercial HPC compiler, and to push forward the capabilities of the open source LLVM framework. You can also expect to work on upstreaming code to the open source LLVM community.
- Develop our automated test frameworks to defend the functionality and performance of our commercial HPC compiler.
Key Skills and Experience
Experienced with and highly competent at:
- C and/or C++ programming.
- Compiler development
- Effectively communicating to persuade and influence internal or external partners.
- Application of software methodologies, tools, and processes including code review.
Note: Training may be provided for the right candidate with only a subset of the skills and experience.
You will be educated to degree level or have similar relevant experience.
Desirable Skills & Experience
The following is a selection of skills used across our projects.
You do not need to have experience with any of these to apply or succeed in your application.
Experience with and competent at:
- Open source community citizenship including code commits and reviews.
- Basic Linux administration, particularly installation and maintenance.
- Test development using Continuous Integration tools such as GoCD, Jenkins or Robot, and maintenance of test infrastructure using DevOps frameworks such as Chef or Ansible.
- Optimising code for performance.
At Arm, we are guided by our core beliefs that reflect our rare culture and guide our decisions, defining how we work together to defy ordinary and shape extraordinary:
We not I
- Take daily responsibility to make the Global Arm community thrive.
- No individual owns the right answer. Brilliance is collective.
- Information is crucial, share it.
- Realise that we win when we collaborate — and that everyone misses out when we don’t.
Passion for progress
- Our differences are our strength. Widen and mix up your network of connections.
- Difficult things can take unexpected directions. Stick with it.
- Make feedback positive and expansive, not negative and narrow.
- The essence of progress is that it can’t stop. Grow with it and own your own progress.
Be your brilliant self
- Be quirky not egocentric.
- Recognise the power in saying ‘I don’t know’.
- Make trust our default position.
- Hold strong opinions lightly.
Arm has a responsibility to ensure that all employees are eligible to live and work in the UK.