CPU Performance Simulation Environment Lead
Austin, Texas, United States
Are you forever advocating for a better way to do things? Do you believe that automation is key to advancement? Do you derive satisfaction from empowering others as well as yourself 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 architect and enhance CPU simulator environment as a leader on the CPU Architecture and Performance Team; a group that is driving advanced exploration for next generation iPhone, iPad, and Mac CPU architectures.
- Strong C/C++ knowledge with expertise in at least one modern scripting language (i.e. Python)
- Understanding of robust, agile, and scalable software engineering design patterns including OOP, low-level programming, etc
- Eagerness and independence in driving good practices across the team, including writing high quality code reviews
- Excellent communication and technical documentation skills
- Deep familiarity with CPU simulators, simulation strategies, and identification of architectural performance bottlenecks using visualization
- Familiarity with build toolchains, unix tools, and software performance optimization
- Familiarity with web development, GUI frameworks, and/or common data analysis libraries
- Experience integrating/interfacing software (i.e. different models or scripts)
- Exposure to cloud compute, databases, and logging techniques
- Knowledge of OS internals, compiler technology, and ARM architecture a plus
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 architecting new CPU simulator features and brainstorming novel ideas to boost simulation performance or debuggability. You’ll collaborate with world-class CPU and SoC Architects to steer and improve the implementation of CPU simulators and performance models used for research, performance analysis, and microarchitecture tuning. This includes overseeing code quality, supporting the integration of CPU software models with other models, building peripheral infrastructure and scripts to improve team productivity, and guiding visualization and data analysis strategy. All in an effort to support our fervent drive for insight into system power or performance bottlenecks.
Education & Experience
BS, MS, or PhD in Electrical or Computer Engineering, Computer Science, or related field