We are looking for a Senior Software Engineer to help a team of 140 developers optimize and improve performance in a large, complex C++ codebase. Activities in your role might include: developing, supporting and operating benchmarking infrastructure; building custom tools to help developers measure and understand various aspects of performance; designing & running performance investigations; and analyzing complex performance data. Your work will set developers up to facilitate performance improvement of the Fast Models simulator.
Fast Models is used for multiple sectors including HPC, cloud, automotive, and mobile. It plays a critical role in the SoC design process, both as an independent implementation that enables pre-silicon validation against FPGAs and RTL emulators, and as a simulator for developing software for a new system so that the software stack is ready to go on day one of silicon availability. Simulating innovative, complex designs is very computationally demanding, so improving performance here will make a meaningful difference to these design programmes.
Ideally, you are someone who enjoys finding performance wins in software, and helping others with this; and you are willing to challenge the status quo, share your ideas and learn from others in order to improve performance and performance tooling. You’ll have the opportunity to grow your own optimization expertise by learning from Arm’s authorities in the area. Also, we hope you'll help steer the wider team to seek the best ways of accomplishing improvements. This role will often involve collaborating with developers across several sites.
So, if you love improving software performance, you are caring, self-starting, and keen to innovate, we would like to hear from you!
Responsibilities:
- Benchmarking infrastructure - integrate and evolve an infrastructure for measuring, logging and visualizing / reporting of performance metrics to allow engineers to get deeper visibility of performance
- Connect with software engineers across Arm to understand their requirements and performance challenges and work with them to log and visualize data.
- Help define and drive guidelines around performance
- Design and implement complex performance investigations that drill down into a particular area
- Recommend, prototype or implement performance improvements to the software
- Write tooling and plugins in to make it easy for the team of software developers to understand or improve performance
Required Skills and Experience :
- Proficiency and passion for C++ performance optimization.
- Experience with scripting languages such as Python, Javascript, etc.
- Strong interpersonal skills and excellent written and spoken English
“Nice To Have” Skills and Experience :
- Experience of the full software development lifecycle in a commercial or open source environment
- Experience writing benchmarking applications and reporting infrastructure.
- Experience with low-level or bare-metal software, firmware or device-driver development is an advantage.
- Experience with CI/CD tools like Jenkins, Docker, AWS
- Experience working on complex software projects in collaboration with a large multi-site team.
In Return:
In return at Arm, you will enjoy working in a highly stimulating environment. We work closely with other software, hardware and system teams across the company. You will have a chance to share ideas with and learn new skills from the best engineers in the world.
Salary Range:
$156,500-$211,700 per yearWe value people as individuals and our dedication is to reward people competitively and equitably for the work they do and the skills and experience they bring to Arm. Salary is only one component of Arm's offering. The total reward package will be shared with candidates during the recruitment and selection process.
Accommodations at Arm
At Arm, we want to build extraordinary teams. If you need an adjustment or an accommodation during the recruitment process, please email accommodations@arm.com. 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.
Equal Opportunities at Arm
Arm is an equal opportunity employer, committed to providing an environment of mutual respect where equal opportunities are available to all applicants and colleagues. We are a diverse organization of dedicated and innovative individuals, and don’t discriminate on the basis of race, color, religion, sex, sexual orientation, gender identity, national origin, disability, or status as a protected veteran.