Posted: Aug 10, 2021
Role Number: 200084557
Are you forever advocating for a better way to do things, or do you believe that automation is key to advancement? We seek satisfaction by empowering others as well as ourselves to work more efficiently. Enable something remarkable that makes a difference. Use your skills to solve demanding challenges. Apple is seeking an experienced software engineer who can collaborate with a team of CPU hardware architects in effort to build the best CPU performance simulation environment. You'll be embedded in a group that is driving advanced exploration for next generation iPhone, iPad, and Mac CPU architectures!
- Strong expertise in Python and some familiarity with C/C++, including industry experience
- Understanding of robust, agile, and scalable software engineering design patterns including OOP, event-driven programming, low-level programming, etc.
- Exposure to cloud compute, databases, and logging techniques
- Familiarity with web development, GUI frameworks, and/or common data analysis libraries
- Familiarity with build toolchains, UNIX tools, and software performance optimization
- Excellent communication and technical documentation skills
- Experience integrating/interfacing software (i.e. different models or scripts)
- Knowledge of computer architecture, CPU simulators, and simulation strategies preferred
- Knowledge of AI/ML techniques preferred
- Experience with crafting thread-safe software preferred
We are seeking an experienced software engineer for an opportunity to have real impact on the methodology by which we explore groundbreaking CPU designs. You'll be maintaining and architecting the infrastructure that enables productive CPU simulation used for research, performance analysis, and microarchitecture tuning. You'll collaborate with world-class CPU and SoC architects to steer and improve the tools and techniques used in the fervent drive for insight into system power or architectural performance bottlenecks. This includes improving code quality, supporting the integration of CPU software models with other models, building or enhancing scripts to improve team productivity, and guiding visualization and data analysis strategy.
Education & Experience
BS, MS, or PhD in Electrical or Computer Engineering, Computer Science, or related field