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.



Established: October 2, 2014

An Ironclad App lets a user securely transmit her data to a remote machine with the guarantee that every instruction executed on that machine adheres to a formal abstract specification of the app's behavior. This does more than eliminate implementation vulnerabilities such as buffer overflows, parsing errors, or data leaks; it tells the user exactly how the app will behave at all times. Our specifications, code, proofs, and tools for our projects Ironclad Apps (verifying the…


Established: September 19, 2011

Drawbridge is a research prototype of a new form of virtualization for application sandboxing. Drawbridge combines two core technologies: First, a picoprocess, which is a process-based isolation container with a minimal kernel API surface. Second, a library OS, which is a version of Windows enlightened to run efficiently within a picoprocess. Hardware-based Virtual Machines (VMs) have fundamentally changed computing in data centers and enabled the cloud. VMs offer three compelling qualities:…


Established: August 27, 2009

Barrelfish is a new operating system being built from scratch in a collaboration between researchers at ETH Zurich and Microsoft Research, Cambridge. We are exploring how to structure an OS for future multi- and many-core systems. The motivation is two closely related hardware trends: first, the rapidly growing number of cores, which leads to scalability challenges, and second, the increasing diversity in computer hardware, requiring the OS to manage and exploit heterogeneous hardware resources. For…















Professional Activities


At UW:

At ETH Zurich, with Timothy Roscoe:

  • Autumn 2010: Advanced Operating Systems
  • Spring 2010: Lions’ Commentary on 6th Edition UNIX Seminar
  • Autumn 2009: Advanced Operating Systems
  • Spring 2009: Advanced Operating Systems
  • Autumn 2008: Data Processing Architectures for New Hardware Platforms Seminar
  • Spring 2008: Advanced Operating Systems
  • Autumn 2007: Advanced Topics in OS Kernel Design Seminar