Compiler CPU Backend Engineer
Job Description
Summary
The CPU and Accelerator Compilers Team is looking for passionate individuals who are interested in advancing compiler technology. In this role, you will have the opportunity to delve deep into the realms of code generation and CPU architecture exploration. Our primary responsibility is to optimize CPUs and Accelerators across all Apple platforms, advancing our leading-edge technology. We collaborate with various organizations to enhance the user experience for all Apple customers by improving runtime performance, extending battery life, and bolstering security. A significant portion of our work is carried out in close collaboration with CPU architects and application engineers.
Join us in shaping the future of compiler technology and CPU architecture at Apple. Our team emphasizes diversity, collaboration, and creativity.
Join us in shaping the future of compiler technology and CPU architecture at Apple. Our team emphasizes diversity, collaboration, and creativity.
Description
When you join us, you will be part of a dedicated group of engineers committed to advancing compiler and CPU technology. Your responsibilities will include working closely with CPU architects and tools engineers designing compiler features that maximize the impact of Apple silicon. You will conduct application and benchmark performance analysis, explore new CPU architectures, and work on development of the compiler backend for Apple CPUs.
In this environment you will continuously apply and grow your expertise, learn new technologies, and engage in projects spanning hardware and software teams. Your work will impact all classical applications used by everyday users, countless customers, and give raise to new applications and technologies. Picture this: next time you pick up an Apple device the software running on it will be using your work.
If you believe you have additional skills not listed here that would make you a good candidate for this position, please feel free to include a cover letter describing those skills and their applicability to the position. If this sounds of interest to you, we'd love to hear from you!
In this environment you will continuously apply and grow your expertise, learn new technologies, and engage in projects spanning hardware and software teams. Your work will impact all classical applications used by everyday users, countless customers, and give raise to new applications and technologies. Picture this: next time you pick up an Apple device the software running on it will be using your work.
If you believe you have additional skills not listed here that would make you a good candidate for this position, please feel free to include a cover letter describing those skills and their applicability to the position. If this sounds of interest to you, we'd love to hear from you!
Minimum Qualifications
- Strong C and C++ programming expertise
- Background in compiler backend development and/or optimizations
- Good understanding of CPU architecture and micro-architecture
Preferred Qualifications
- Strong C and C++ programming expertise
- Knowledge of common data structures like linked lists, sets, maps, and graphs
- Background in compiler backend development and/or optimizations
- Hands-on experience developing LLVM-based compiler backends (e.g. instruction selection, instruction scheduling, register allocation) is a plus
- Good understanding of CPU architecture and micro-architecture, familiarity with ARM is a plus
- Ability to communicate clearly and effectively