Help develop software tools to support the broad range of use-cases that Arm enables. Our compilers cover everything from embedded software development up to the needs of the scientists and engineers working with supercomputers. We are looking for skilled and hardworking compiler engineers who are passionate about producing quality software to join our engineering teams at all levels of seniority.
Our teams develop both commercial and open-source products. You will help develop our GCC and LLVM based compilers (C/C++ and Fortran), working on adding support for new architectural features, and analysing and improving the performance of workloads running on Arm hardware. You will also have the opportunity to work closely with open-source communities, making contributions to upstream toolchains. Previous experience working with GCC, LLVM or other compiler toolchains will be helpful, but is not essential.
Other work that we do includes the development of high-performing libraries to support program execution. These include math libraries for both fundamental operations, such as math.h, up to optimized matrix and vector operations. Additionally, we have a team developing optimized libraries for Machine Learning.
In addition to the main compiler development roles, we seek skilled engineers to join our DevOps and Quality teams to ensure that released products are robustly tested and of high quality before they reach customers.
Technical and people leadership roles are also available. Arm places great emphasis on growing and developing its people. We are always looking for people ready to take that next step up in their careers!
MAIN DUTIES:
You will work as a member of our compiler teams in either Cambridge or Manchester.
Your role as a software engineer will require you to:
- Identify and implement changes to our compilers and libraries to deliver novel features and improve benchmark performance.
- Work on upstreaming code to the open-source GCC and LLVM communities.
- Develop our automated test frameworks to defend the functionality and performance of our compilers.
You will work in either Cambridge or Manchester, where Arm has large offices. Occasional opportunities exist to travel to events and meet our partners.
Job Requirements
EXPERIENCED WITH AND HIGHLY COMPETENT AT:
- C and/or C++ programming.
- 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 if you have only a subset of these key skills.
EDUCATION
- 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.
- Open-source community citizenship including code commits and reviews.
- Compiler development, particularly GNU and LLVM.
- Test development using continuous integration tools such as Jenkins, BuildBot or Robot, and maintenance of test infrastructure using DevOps frameworks such as Chef or Ansible.
- Optimizing code for performance.
Benefits
Your particular benefits package will depend on position and type of employment and may be subject to change. Your package will be confirmed on offer of employment. Arm’s benefits program provides permanent employees with the opportunity to stay innovative and healthy, ensure the wellness of their families, and create a positive working environment.
- Annual Bonus Plan
- Discretionary Cash Award
- Group Personal Pension Plan with enhanced company contribution
- Medical, Travel, Health & Life Insurances
- Holiday, 25 days annual leave with option to buy an additional 5 days per year
- Sabbatical, 20 paid days every four-year of service
- Volunteering, One (1) paid working day each year (TeamARM)
- Varies by location: cycle to work, free car parking, gym on site, team and social events