Software Engineer (Virtualisation)

Apple•Published 1 days ago•First seen 1 days ago

Summary

Apple is where individual imaginations gather together, committing to the values that lead to
great work. Every new product we build, service we create, or Apple Store experience we
deliver is the result of us making each other’s ideas stronger. That happens because every one
of us shares a belief that we can make something wonderful and share it with the world,
changing lives for the better. It’s the diversity of our people and their thinking that inspires the
innovation that runs through everything we do. When we bring everybody in, we can do the
best work of our lives. Here, you’ll do more than join something — you’ll add something.
Join the Virtualisation team and work on projects that span the entire system, from the kernel
to libraries, frameworks, and applications. As a Virtualisation engineer, you will have a major
impact on the design and implementation of Apple's virtual machines and virtualisation
frameworks. You will also collaborate with experts across Apple's software and hardware
organizations to virtualise operating system products. We are looking for a passionate
candidate who wants to work on products that affect the lives of millions of users.

Description

The Virtualisation team is looking for a talented systems engineer to join the virtualised devices
group. Our team builds the foundational technologies for supporting external devices within
virtual machines, spanning hardware passthrough and software device emulation. We've
shipped USB passthrough support in the Virtualisation framework and created the
AccessoryAccess framework, and we're expanding the scope of both. This role touches kernel,
user-space, and guest OS boundaries, and we value broad systems fluency and the ability to
pick up new device technologies over deep prior expertise in any single one.

Responsibilities

  • Contribute to the Virtualisation and AccessoryAccess frameworks.
  • • Design and implement support for external devices in virtual machines.
  • • Write high-quality, well-tested, maintainable code in C++ and Swift.
  • • Design and implement test suites to ensure reliability and correctness across the stack.
  • • Debug complex issues spanning kernel, user-space, and guest operating system layers.
  • • Optimize performance of virtualised devices.
  • • Work cross-functionally with drivers, frameworks, and QA teams to deliver integrated
  • solutions.
  • • Participate in code reviews and technical design discussions.
  • • Pick up new subsystems and device technologies as team priorities evolve.

Minimum Qualifications

  • • Strong C++ programming skills.
  • • Strong understanding of operating systems internals and systems programming.
  • • Demonstrated ability to work effectively across different layers of a software stack (e.g.,
  • kernel, user-space, framework, application).
  • • Excellent collaborative skills, with strong written and verbal communication.
  • • Bachelor's degree or equivalent experience in computer science or a related field.

Preferred Qualifications

  • • Knowledge of USB or other device/bus technologies.
  • • Familiarity with virtualisation/hypervisor concepts.
  • • Experience with device emulation or hardware passthrough/redirection.
  • • Driver development experience.
  • • Swift programming skills.

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