Skip to Main Content
Location icon
London

Software Engineer (Virtualisation)

Apple
Office & Professional
Office & Professional
Company logo image
Description

Location
London

Hours
Full Time

Salary
Negotiable

About the Role
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. 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.
Key responsibilities include contributing to the Virtualisation and AccessoryAccess frameworks, designing and implementing support for external devices in virtual machines, writing high-quality, well-tested, maintainable code in C++ and Swift, designing and implementing test suites to ensure reliability and correctness across the stack, debugging complex issues spanning kernel, user-space, and guest operating system layers, optimizing performance of virtualised devices, working cross-functionally with drivers, frameworks, and QA teams to deliver integrated solutions, participating in code reviews and technical design discussions, and picking up new subsystems and device technologies as team priorities evolve.

Requirements

Experience
- 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)
- 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

About you
Passionate about building impactful products that affect millions of users. Excellent collaborative skills with strong written and verbal communication. Able to pick up new device technologies and subsystems as priorities evolve. Comfortable working across kernel, user-space, and guest OS boundaries with broad systems fluency.

Qualifications
Bachelor's degree or equivalent experience in computer science or a related field.

Expiry date: 21/11/2026
Software Engineer (Virtualisation)
Company:
Apple
Job Type:
Full-time
Location:
London