What are the responsibilities and job description for the Principal Performance Application Engineer position at Arm?
Job Description:
Applications Engineering is a multifaceted and wide-ranging role that combines deep technical expertise with outstanding interpersonal skills. As a Performance Applications Engineer at Arm, you will mainly work with our partners to guide them through difficult and exciting software technical challenges!
Responsibilities:
You will engage with Arm's partners through web portal and virtual meetings to tackle sophisticated performance debug and optimization problems revolving around Arm IP and Arm-based systems. You will help to debug hardware performance issues during the SoC bring-up stage. You will support Arm's performance debug tools to help partners understand how hardware features impact the workloads of interest, and how to tune hardware and software to achieve the highest level of performance. As your experience grow, you will develop and present training courses on Arm's SoC, performance tooling, and processes to partner development teams. You will also collaborate closely with other product engineering groups, acting as the voice of the customer to motivate change and improve existing products through raising defects, reviewing documentation, crafting software examples and knowledge articles to facilitate proactive learning.
Required Skills and Experience :
- Bachelor's, Master's, or PhD degree in Computer Engineering, Computer Science, or Electrical Engineering (other subject areas will also be considered with meaningful experience)
- Minimum of 10 years of experience in application development and experience with workload performance optimization
- Experience doing performance analysis for industry standard benchmarks and datacenter workloads on real and simulated platforms
- A deep understanding of application/server class processors
- Comprehension of the interaction between software and hardware
- Plentiful experience crafting and debugging software in C and C
- Experience with software performance analysis and debug tools and applications, including perf().
- Good understanding of the Linux kernel, including how to build
- Strong foundational knowledge of SoC architectures, particularly CPU clusters, interconnects, and memory subsystems
“Nice To Have” Skills and Experience :
- Experience using software debuggers, compilers, modeling solutions, and simulation
- Familiarity with Arm products and Arm's software ecosystem
- Experience working directly with external and internal customers
- Ability to learn new hardware system features quickly
- Ability to take on explorative work individually