Silicon Validation Software Engineer: CPU and Memory Hierarchy

Beaverton, Oregon, United States


Role Number:200307175
Imagine what you could do here. At Apple, new ideas have a way of becoming extraordinary products, services, and customer experiences very quickly. Bring passion and dedication to your job and there's no telling what you could accomplish. Dynamic, smart people and inspiring, innovative technologies are the norm here. The people who work here have reinvented entire industries with all Apple Hardware products. The same passion for innovation that goes into our products also applies to our practices strengthening our commitment to leave the world better than we found it. Join us to help deliver the next groundbreaking Apple product. Are you passionate about changing the world? We have a critical impact on getting high quality functional products to millions of customers quickly and we are hiring all levels from junior to senior roles. The Silicon Validation team is responsible for validating functional behavior and exercising interactions between different IP blocks in the SoC. Join a team of expert software engineers with diverse backgrounds (graphics, video encoding, video processing, file systems, CPUs and caching, kernel programming, embedded systems) in developing low-level software to test code to drive the CPUs, the caches, the fabric, the memory controller, and the coherency point with the goal of finding bugs.

Key Qualifications

  • Experienced with low-level CPU code interacting with the MMU and dealing with load/store units.
  • Experienced with finding bugs in SoC designs and implementations
  • Deep understanding of CPUs, and memory hierarchy
  • Knowledge of Assembly language knowledge is a must
  • Skilled and interested in validation and debugging
  • Ability to work well on a team, but also self-driven
  • Passionate about writing code close to the hardware, and debugging
  • Experience in SoC system level validation and debugging of SoC software and hardware issues.


You will work closely with designers and architects to understand the architectural and operational details of the various functional blocks You will write directed and random tests to push the blocks to their limits You will Integrate these tests into an existing test framework You will use these tests, other tests, and this framework to find issues pre-silicon, and post-silicon You will debug pre-silicon and/or post-silicon issues using this test framework You enjoy the validation mindset: detail-oriented, curious, and persistent

Education & Experience

BS / MS / Ph.D in EE or CS is required.

Additional Requirements