I am a computer systems researcher with the goal of improving the reliability, sustainability and scalability of a networked world.
Computer systems research involves all areas of computer science, but with a heavy emphasis on building real prototypes to test hypotheses and make new observations. This page describes some of the initiatives I've started at the Cambridge Computer Laboratory and provides some background into where the code, publications and later technology transfer came from.
If you're a student looking for new projects to work with me on, then start at the top to find out what I'm doing right now. If you're curious about the broad sweep of 'how I think', then start from the early projects and follow the flow to the present day.
The Cambridge Centre for Carbon Credits is an initiative I started with Andrew Balmford, David Coomes, Srinivasan Keshav and Thomas Swinfield, aimed at issuing trusted and verifiable carbon credits towards the prevention of nature destruction due to anthropogenic actions. We are using a combination of large-scale data processing (satellite and and sensor networks) and decentralised Tezos smart contracts to build a carbon marketplace with verifiable transactions that link back to trusted primary observations.
Digital infrastructure in modern urban environments is currently very Internet-centric, and involves transmitting data to physically remote environments. The cost for this is data insecurity, high response latency and unpredictable reliability of services. I am working on Osmose -- a new OS architecture that inverts the current model by building an operating system designed to securely connect physical spaces with extremely low latency, high bandwidth local-area computation capabilities and service discovery.
I founded a research group called OCaml Labs at the University of Cambridge, with the goal of pushing OCaml and functional programming forward as a platform, making it a more effective tool for all users (including large-scale industrial deployments), while at the same time growing the appeal of the language, broadening its applicability and popularity.
I proposed the concept of unikernels -- specialised machine images constructed by using library operating system architectures and safer programming languages such as OCaml. I also co-founded the MirageOS project which is a complete unikernel framework written in pure OCaml.
As cloud computing empowered the creation of vast data silos, I investigated how decentralised technologies might be deployed to allow individuals more vertical control over their own data. Personal containers was the prototype we built to learn how to stem the flow of our information out to the ad-driven social tarpits.
My PhD dissertation work proposed an architecture for constructing new implementations of standard Internet protocols with integrated formal methods such as model checking and functional programming that were then not used in deployed servers.
I investigated how to interface the new emerging class of smartphone devices (circa 2002) with concepts from ubiquitous computing such as location-aware interfaces or context-aware computing. I discovered the surprisingly positive benefits of piggybacking on simple communications medium such as audible sound and visual tags.
I was on the original team at Cambridge that built the Xen hypervisor in 2002 -- the first open-source "type-1" hypervisor that ushered in the age of cloud computing and virtual machines. Xen emerged from the Xenoservers project at the CL SRG, where I started my PhD and hacked on the emerging codebase and subsequently worked on the development of the commercial distribution of XenServer.