I’m a researcher in the Systems Group at Microsoft Research Redmond. My research interests include operating systems, distributed systems, multi-/many-core architectures, and a smattering of security.
I completed my BE (2002) and PhD (2007) in the Operating Systems Research Group at the School of Computer Science and Engineering, University of New South Wales, which is also the ERTOS program of National ICT Australia. I then spent three years as a postdoctoral researcher in the Systems Group at ETH Zurich, before moving to sunny Redmond at the end of 2010.
Much of my work has been part of the Barrelfish project, which is exploring how to structure an OS for future multi- and many-core systems. I led this project for its first three years as a postdoc at ETH Zurich, working with Timothy Roscoe and some talented students. Together with collaborators at MSR, we built an OS from scratch to exploit our observation that modern computers are increasingly structured as distributed systems, by mirroring that structure in the OS. For example, we used an asynchronous message-passing abstraction for all inter-core communication, rather than assuming shared memory. Today Barrelfish is a substantial prototype OS, and is still under active research and development.
I’ve also contributed code and research to Drawbridge, a new form of virtualization for application sandboxing based on a library OS version of Windows. As reported in the Bascule paper, my focus has been on generalising the architecture to permit other guest and host operating systems (including Barrelfish), and to support lightweight interposition of extensions that are independent of both host and guest. Haven exploits this ability, along with new hardware extensions (Intel SGX), to shield unmodified applications from an untrusted cloud host.
The result of a fruitful internship at IBM Research, my PhD work focused on dynamic updates in the K42 multiprocessor operating system. For my undergraduate thesis, and also much of my PhD, I did a lot of hacking on the Mungi single-address-space operating system.