Virtualisation Software Engineering Internship, CoreOS

Apple•Published 13 hours ago•First seen 13 hours ago

Summary

Imagine what you could do here. At Apple, new ideas quickly become products, services and experiences that people love. As an intern in the Core Virtualisation team, you'll do real engineering work alongside experienced engineers on technology that ships across the Apple ecosystem.

The Core Virtualisation team builds features that bring hardware, system software and apps together into one Apple experience. If you like to know how things work at the lowest level, from CPU architecture to the kernel to the frameworks developers use, this internship is a chance to learn from the people who build them.

Description

The Virtualisation team builds the core technology that lets developers and users run macOS and other operating systems and environments reliably on their Mac. Our work covers kernel-level support, the Hypervisor framework and the Virtualisation framework.
As an intern, you'll own a meaningful project with guidance from a dedicated mentor and support from the wider team. Depending on your interests and the team's needs, you might:

  • Explore, prototype and build new features in Apple's Hypervisor or Virtualisation frameworks.
  • Help improve existing features in the Apple virtualisation stacks.
  • Write tests and test tools that improve the reliability and correctness of virtualisation components.
  • Investigate and debug issues that span the kernel, the hypervisor, user space and guest operating systems.
  • Measure and analyse virtual machine performance and look for ways to improve it.
  • Take part in code reviews and design discussions, and present your work to the team at the end of your internship.
You'll write production-quality C and C++, learn how a modern OS and hypervisor work on Apple silicon, and see how hardware and software teams work together to deliver new features.

Minimum Qualifications

  • Exposure to virtualisation technologies (for example KVM, QEMU, Xen, Hyper-V or similar) through coursework, research, open source or personal projects.
  • Familiarity with the Arm architecture (Armv8/Armv9) or experience with any assembly language.
  • Experience with kernel development, device drivers or bare-metal / embedded programming.
  • Experience debugging low-level software with tools such as LLDB/GDB.
  • Interest in software testing and in designing systems that are easy to test.
  • Curiosity, eagerness to learn, and clear written and verbal communication.

Preferred Qualifications

  • Currently enrolled in a Bachelor's, Master's or PhD programme in Computer Science, Computer Engineering, Electrical/Electronic Engineering or a related field.
  • Solid programming skills in C and/or C++.
  • Coursework or project experience in at least one of: operating systems, computer architecture, systems programming or compilers.
  • Understanding of core OS concepts such as processes, memory management, and interrupts/exceptions.

At Apple, we're not all the same. And that's our greatest strength. We draw on the differences in who we are, what we've experienced and how we think. Because to create products that serve everyone, we believe in including everyone. Therefore, we are committed to treating all applicants fairly and equally. As a registered Disability Confident employer, we will work with applicants to make any reasonable accommodations. Apple will consider for employment all qualified applicants with criminal backgrounds in a manner consistent with applicable law. Learn more