Linaro is hiring a software developer for our Performance Optimization team. The primary responsibility of the role will be to work with various open source communities, analyze current performance of the projects, find potential bottlenecks, and work to improve the execution performance of the source code on Arm64 platforms. This role will require working with engineers in Linaro, as well as engineers from the various open source communities, and Linaro customers.
Linaro has a vast experience in doing performance optimization for Arm platforms. We worked on many aspects of the performance analysis: from reducing memory and energy consumption to simply make things run faster. The focus of this role is mainly on execution time.
Apart from improving performance on various open source projects, which imply working with different programming languages and build environments, we also strive to make sure the projects we work on don’t regress in the future. Linaro has a performance regression analysis platform that we can leverage for that, but the engineer in this role is responsible to make sure that this will work as expected by helping whenever needed to integrate our current platform with the different open source projects they would work on.
A day in the life of this team will involve working with the community on the priority projects selected by Linaro customers as requiring performance optimization, identify potential performance bottlenecks and work to fix them. That could involve, amongst other things, changes in the algorithms or writing assembly code that is optimized for Arm64 processors. We also need to make sure that the work we do is not lost in the future. So integrating the open source project in Linaro's performance regression analysis platform is essential to keep monitoring any optimizations we do.
The ideal candidate is someone that can work with various programming languages and that has knowledge on how to run benchmarks and performance analysis tools to find potential performance bottlenecks. Performance analysis and statistics experience is a must, as the person will have to know how to make good measurements (reducing noise in the measurements, for instance). Having worked with Arm64 platforms and knowledge of the Arm64 assembly language is a plus.
Linaro is a great place to work. If you have a passion for open source, cutting edge software for devices and you want to be part of a true development community, then you belong at Linaro. Linaro offers you the opportunity to work remotely with an outstanding environment for professional growth, all while working alongside a team of world-class open source and Arm software experts working with leading-edge technology.
Required travel: some domestic and international travel will be required for conferences and team working sprints.
Key Responsibilities Will Be a Subset Of The Following
- Responsible for running benchmarks, generating good performance analysis reports, and driving the software development of the changes needed to improve the execution time performance on various open source projects according to the priorities listed by Linaro’s customers.
- Interact with the projects’ open source communities to make sure the patches needed to improve the Arm64 execution performance are accepted.
- Make sure each open source project is integrated into Linaro’s performance regression analysis platform so that we can monitor the execution performance in the future and find regressions early.
Required Skills And Experience
- Familiarity with various programming languages, and no restrictions on which language to work on.
- Experience with execution time performance optimization projects, including performance analysis and statistics.
- Experience with assembly language programming.
- Ability and willingness to travel domestically and internationally three to four times a year.
- Excellent communication skills in English, both verbal and written.
- Independently motivated, requiring little external motivation to keep on task.
- Ability to be productive as part of a globally distributed team.
Desired Skills And Experience
- University engineering or computer science degree or equivalent experience.
- Experience with Arm64 platforms and assembly language.