Responsibilities:- Optimization of numerical libraries for a range of target Arm-based systems, including improving vectorization, cache usage and parallel performance
- Producing and delivering high-quality, reliable libraries to Arm’s customers, partners and the community
- Collaborating with customers and partners on their needs
- Working with other divisions in Arm to expand adoption of the architecture
Required Skills & Experience:- Excited by the prospect of delivering added performance to end users by writing high-performing low-level numerical code
- Excellent programming skills in at least one of C++, C and/or Fortran, developing code on Linux, using git and doing code review
- Enthusiastic approach to working with a team of other software engineers, sharing innovative ideas and giving constructive feedback
“Nice To Have” Skills and Experience :The following is a selection of skills used across our projects. They are not necessarily required for a successful application.
- Programming in parallel. Experience with vector (SIMD) architectures, vectorization techniques and parallel runtimes
- Some knowledge of at least one of our key areas of interest: linear algebra, FFTs, video codecs, security algorithms or function approximation
- Exposure to large-scale software Build, Integration and Test environments
- Some experience of Open Source development
Education & Qualifications:You will need a good degree (or equivalent) in Mathematics, Computing, or an alternative with relevant experience.