Pre-Silicon Software Engineer
Santa Clara, California, United States
Software and Services
The Pre-Silicon Evolution team within Apple's CoreOS organization is searching for talented software engineers to develop software infrastructure and tooling for Apple Silicon SoCs. Our team lives at the intersection of hardware and software and we push the boundaries of full-system, pre-silicon simulation to enable software development for future iOS and macOS products during some of their earliest phases of development.
- Highly proficient in Python, C/C++
- Driven to seek out the right solution to difficult engineering problems with cross-functional teams.
- Excellent collaborative skills to ensure clear communication with hardware and software engineering peers.
- General understanding of embedded software architecture and development workflows.
- Outstanding written and verbal communication
The software tooling and cloud infrastructure developed by the Pre-Silicon Evolution team is used across Apple's hardware and software organizations. Our technologies enable development and testing of both hardware and software features for future Apple products to ensure that they work seamlessly together before they are manufactured. As a Pre-Silicon Evolution engineer, you will play an important part in bringing our future SoC designs to life in Pre-Silicon simulation environments. You will have the opportunity to work shoulder-to-shoulder with CoreOS bringup teams to enable bringup of macOS and iOS devices in simulation, as well as with QA teams in order to support their testing needs using our infrastructure. As we continue to grow these capabilities, you will have the opportunity to work throughout our software stack, from low level hardware initialization code all the way up to cloud and container technologies running in our data centers. Desirable Skills: Previous experience with embedded hardware bringup Familiarity with FPGA and processor simulation technologies
Education & Experience
BS in CS, CE, EE or equivalent industry experience required
- Hands on (or academic) experience with software simulation environments (e.g. simics, QEMU) and software modeling techniques