/ Research

Areas. I am a computer systems researcher focussed on research that improves global sustainability, particularly in conservation. I am co-lead of the Energy and Environment research group at the Department of Computer Science at the University of Cambridge.

Approach. 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 research areas that I have or am currently working on.

Ideas. If you're a student looking for new projects to work with me on, then go over to my ideas page to find out what I'm doing right now and some topics you might want to work on. If you're curious about the broad sweep of 'how I think', then start from the earlier projects at the bottom of the page and follow the flow to the present day. The ideas listed here aren't exhaustive, especially for projects I supervised before 2019. If you did do one with me and it's not here, please do send it to me and I'll add it in!


Conservation Evidence Copilots (2024)

Conservation Evidence has screened 1.6m+ scientific papers on conservation, as well as manually summarising 8600+ studies relating to conservation actions. However, progress is limited by the specialised skills needed to screen and summarise relevant studies -- it took more than 75 person years to manually curate the current database and only a few 100 papers can be added each year! We are working on AI-driven techniques to accelerate addition of robust evidence to the CE database via automated literature scanning, LLM-based copilots and scanning of grey literature. We aim to provide co-pilots that augment human decision making to figure out how to categorise interventions much more quickly and accurately, and ultimately accelerate the positive impact of conservation actions. Read more »

Remote Sensing of Nature (2023)

Measuring the world's forest carbon and biodiversity is made possible by remote sensing instruments, ranging from satellites in space (Landsat, Sentinel, GEDI) to ground-based sensors (ecoacoustics, camera traps, moisture sensors) that take regular samples and are processed into time-series metrics and actionable insights for conservation and human development. However, the algorithms for processing this data are challenging as the data is highly multimodal (multispectral, hyperspectral, synthetic aperture radar, or lidar), often sparsely sampled spatially, and not in a continuous time series. I work on various algorithms and software and hardware systems we are developing to improve the datasets we have about the surface of the earth. Read more »

Mapping LIFE on Earth (2023)

Human-driven habitat loss is recognised as the greatest cause of biodiversity loss, but we lack robust, spatially explicit metrics quantifying the impacts of anthropogenic changes in habitat extent on species' extinctions. LIFE is our new metric that uses a persistence score approach that combines ecologies and land-cover data whilst considering the cumulative non-linear impact of past habitat loss on species' probability of extinction. We apply large-scale computing to map ~30k species of terrestrial vertebrates and provide quantitative estimates of the marginal changes in the expected number of extinctions caused by converting remaining natural vegetation to agriculture, and also by restoring farmland to natural habitat. We are also investigating many of the conservation opportunities opened up via its estimates of the impact on extinctions of diverse actions that change land cover, from individual dietary choices through to global protected area development. Read more »

Planetary Computing (2022)

Planetary computing is our research into the systems required to handle the ingestion, transformation, analysis and publication of global data products for furthering environmental science and enabling better informed policy-making. We apply computer science to problem domains such as forest carbon and biodiversity preservation, and design solutions that can scalably processing geospatial data that build trust in the results via traceability and reproducibility. Key problems include how to handle continuously changing datasets that are often collected across decades and require careful access and version control. Read more »

Trusted Carbon Credits (2021)

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. Read more »

Information Flow for Trusted Execution (2020)

There is now increased hardware support for improving the security and performance of privilege separation and compartmentalization techniques such as process-based sandboxes, trusted execution environments, and intra-address space compartments. We dub these "hetero-compartment environments" and observe that existing system stacks still assume single-compartment models (i.e. user space processes), leading to limitations in using, integrating, and monitoring heterogeneous compartments from a security and performance perspective. This project explores how we might deploy techniques such as fine-grained information flow control (DIFC) to allow developers to securely use and combine compartments, define security policies over shared system resources, and audit policy violations and perform digital forensics across hetero-compartments. Read more »

Interspatial OS (2018)

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. Read more »

OCaml Labs (2012)

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. Over a decade, we retrofitted multicore parallelism into the mainline OCaml manager, wrote a popular book on the language, and helped start and grow an OCaml package and tooling ecosystem that is thriving today. Read more »

Unikernels (2010)

I proposed the concept of "unikernels" -- single-purpose appliances that are compile-time specialised into standalone bootable kernels, and sealed against modification when deployed to a cloud platform. In return they offer significant reduction in image sizes, improved efficiency and security, and reduce operational costs. I also co-founded the MirageOS project which is one of the first complete unikernel frameworks, and also integrated them to create the Docker for Desktop apps that are used by hundreds of millions of users daily. Read more »

Personal Containers (2009)

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. We also deployed personal containers in an experimental data locker system at the University of Cambridge in order to incentivise lower-carbon travel schemes. Read more »

Functional Internet Services (2003)

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. A more informal summary is "rewrite all the things in OCaml from C!", which lead to a merry adventure into implementing many networks protocols from scratch in a functional style, and learning lots about how to enforce specifications without using a full blown proof assistant. Read more »

Ubiquitous Interaction Devices (2003)

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. Our implementations of some of these ended up with new audio ringtone and visual smart tags that worked on the widely deployed mobile phones of the era. Read more »

Xen Hypervisor (2002)

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. Read more »