Software Engineer (Virtualisation)
Core
Design and implement support for external devices in virtual machines, spanning hardware passthrough and software device emulation.
Role type
Senior IC systems engineer (virtualisation)
Builds
Virtualisation and AccessoryAccess frameworks for virtualised devices
Domain
Operating systems internals, systems programming, virtualisation
Required skills
C++, operating systems internals, systems programming, cross-stack software development, test suite design, performance optimization, code review
Preferred skills
USB/device/bus technologies, virtualisation/hypervisor concepts, device emulation, hardware passthrough, driver development, Swift
Technologies
C++, Swift, kernel, user-space, guest OS
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.
