These are research ideas looking for a student. Each one says the level it suits and sits under the project that owns it, so follow the project link for the wider context. Pick a level or type a keyword to narrow the list, then write to me to discuss an idea. You are welcome to propose your own along the lines of an existing project. Ideas offered previously stay under their project as folded lines, which the chevron beside a project opens.

12 open for takers
A Living IUCN Red List of the World's SpeciesUnder way with Shane Weisz since 2025

The IUCN Red List of Threatened Species is one of the world's most important conservation resources–often referred to as a Barometer of Life. It provides a standardised, evidence-based assessment framework for grouping species into extinction risk categories…

>_OxCaml Labs2 open
An io_uring IO implementation for Lean

An MPhil or Part III project, proposed in 2026, co-supervised with KC Sivaramakrishnan.

Modern operating systems are increasingly moving away from the syscall-at-a-time POSIX model towards shared-memory submission/completion queues like Linux's io_uring, Windows IoRing and macO…

A programmatic diagramming library for OCamlUnder way with @agolkari since 2026

Programmatic diagramming tools let developers, educators and researchers turn structured data (like trees, graphs, ASTs, neural networks, symbolic terms, ...) into clear pictures without reaching for a full interactive visualisation stack. Shriram Krishnamurth…

Co-supervised with KC Sivaramakrishnan and Shriram Krishnamurthi.

A Hybrid Graph-Vector Database in O(x)CamlCompleted by Oliver Fogelin in 2026

This project proposes building a hybrid graph-vector database in OCaml. Retrieval-Augmented Generation (RAG) grounds LLM responses in external data. The naive approach to implementing RAG is to embed relevant documents with a pre-trained embedding model, store…

Co-supervised with Ryan Gibb and Jon Crowcroft.

Earth embeddings for probabilistic weather downscalingUnder way with Pedro Sousa since 2026

Pedro Sousa began his PhD in January 2026 working on what a geospatial foundation model can contribute to near-surface weather prediction. This is joint work with the Aardvark group in the Department of Engineering, with Richard Turner and Will Tebbutt, whose …

Co-supervised with Sadiq Jaffer.

Global habitat maps from Tessera embeddingsUnder way with Michael Dales, Aneesh Naik and Alison Eyres since 2026

Michael Dales, Aneesh Naik and Alison Eyres are working with David Coomes' group and me on whether the TESSERA foundation model can produce robust, high-resolution (10m) global habitat maps. Habitat maps underpin most of the conservation pipelines we work on (…

Co-supervised with David Coomes.

Evaluating LLMs for providing evidence-based information on conservation actionsUnder way with Radhika Agrawal since 2025

We are building a Conservation Co-Pilot to improve worldwide conservation action through evidence-driven insights. Biodiversity loss is one of the biggest threats to our planet and to tackle it, we must improve the effectiveness of conservation action, which c…

Co-supervised with Alec Christie and Sadiq Jaffer.

Assessing Conservation Action Suitability using Multimodal RepresentationsCompleted by Radhika Iyer in 2026

This is a difficult project that will combine spatial evidence of conservation interventions with a geospatial foundation model (TESSERA): Conservationists often consider whether a beneficial conservation action is likely to be suitable in a new location. The …

Co-supervised with Sadiq Jaffer and Bill Sutherland.

Accurate summarisation of threats for conservation evidence literatureCompleted by Kittson Hamill in 2024

At the Conservation Evidence Copilots project, we are interested in constructing a taxonomy of threats to wildlife from the literature. This involves scanning the body of conservation literature and gathering/synthesising evidence for conservation intervention…

Co-supervised with Sadiq Jaffer.

Generating chunk-free embeddings for LLMsCompleted by Mark Jacobsen in 2024

This project aims to explore the development of a chunk-free approach for generating embeddings in Retrieval-Augmented Generation (RAG) models. Traditional RAG workflows often involve manual or predefined chunking of documents, and we seek to bypass this requi…

Co-supervised with Sadiq Jaffer.

Crawling grey literature for conservation evidenceCompleted by Shrey Biswas and Kacper Michalik in 2024

At the Conservation Evidence Copilots project, we are interested in finding and synthesising evidence for conservation interventions. Much of this evidence is published in academic journals, but there is a large body of grey literature that is not indexed in a…

Co-supervised with Sadiq Jaffer.

Evaluating RAG pipelines for conservation evidenceCompleted by Radhika Iyer in 2024

At the Conservation Evidence Copilots project, we are interested in finding and synthesising evidence for conservation interventions. Once we have this evidence, it needs to be synthesised into a form that can be used to inform policy and practice via natural …

Co-supervised with Sadiq Jaffer.

Assessing mangrove literature for conservation evidenceOffered in 2024, no longer open

At the Conservation Evidence Copilots project, we are interested in finding and synthesising evidence for conservation interventions. Mangrove forests are one of the most threatened ecosystems in the world, and there is a large body of literature on the topic.…

Co-supervised with Sadiq Jaffer and Tom Worthington.

Spatial and multi-modal extraction from conservation literatureOffered in 2024, no longer open

The Conservation Evidence Copilots database contains information on numerous conservation actions and their supporting evidence. We also have access to a large corpus of academic literature detailing species presence and threats which we have assembled in Camb…

Co-supervised with Sadiq Jaffer, Alec Christie and Bill Sutherland.

>_Mapping LIFE on Earth2 open
Using wasm to locally explore geospatial layersUnder way with Sam Forbes since 2024

Some of my projects like Mapping LIFE on Earth or Remote Sensing of Nature involve geospatial base maps with gigabytes or even terabytes of data. This data is usually split up into multiple GeoTIFFs, each of which has a slice of information. For example, the L…

Co-supervised with Michael Dales.

Real-time mapping of changes in species extinction risksUnder way with Emilio Luz-Ricca since 2024

Loss of habitat represents the most significant threat to wildlife overall, but advances in satellite sensing have enabled the assessment of habitat extent with comprehensive spatial coverage and reasonable temporal resolution. To address rising demand for met…

Co-supervised with Andrew Balmford.

Habitat mapping of the Cairngormes Connect restoration areaUnder way with Isabel Mansley since 2025

The Cairngorms Connect is the largest landscape restoration project in the UK. Four landowners (RSPB, Wildlands Ltd, FLS, and NatureScot) embarked on a 200-year vision to restore over 600 km2 of land in the Cairngorms National Park with an emphasis on natural …

Co-supervised with David Coomes and Aland Chan.

Mapping urban and rural British hedgehogsUnder way with Gabriel Mahler since 2025

The National Hedgehog Monitoring Programme aims to provide robust population estimates for the beloved hedgehog. Despite being the nation’s favourite mammal, there's a lot more to learn about hedgehog populations across the country. We do know that, although…

Co-supervised with Silviu Petrovan.

Validating predictions with ranger insights to enhance anti-poaching patrol strategies in protected areasUnder way with Hannah McLoone and Smera Sachin since 2025

Biodiversity is declining at an unprecedented rate, underscoring the critical role of protected areas (PAs) in conserving threatened species and ecosystems. Yet, many of these are increasingly dismissed as "paper parks" due to poor management. Park rangers pla…

Co-supervised with Charles Emogor, Rob Fletcher and Sadiq Jaffer.

Battery-free wildlife monitoring with RioteeUnder way with Dominico Parish since 2025

Monitoring wildlife in the field today relies heavily on battery-powered devices, like GPS collars or acoustic recorders. However, such devices are often deployed in remote environments, where battery replacement and data retrieval can be labour-intensive and …

Co-supervised with Josh Millar.

Affordable digitisation of insect collections using photogrammetryUnder way with Beatrice Spence, Arissa-Elena Rotunjanu and Anna Yiu since 2025

Insects dominate animal biodiversity and are sometimes called "the little things that run the world". They play a disproportionate role in ecosystem functioning, are highly sensitive to environmental change and often considered to be early indicators of respon…

Co-supervised with Tiffany Ki and Edgar Turner.

Enhancing Navigation Algorithms with Semantic EmbeddingsUnder way with Gabriel Mahler since 2024

Pathfinding algorithms used in modern navigation systems utilize a plethora of different geospatial data, such as from OpenStreetMap. Nevertheless, they often operate under one-size-fits-all assumptions and the simple objective of minimizing the anticipated tr…

Foundation models for complex geospatial tasksUnder way with Onkar Gulati since 2024

Self-supervised learning (SSL) represents a shift in machine learning that enables versatile pretrained models to leverage the complex relationships present in dense–oftentimes multispectral and multimodal–remote sensing data. This in turn can accelerate h…

Co-supervised with Sadiq Jaffer and David Coomes.

Low-power sensing infrastructure for biodiversityUnder way with Josh Millar since 2024

In-situ sensing devices need to be deployed in remote environments for long periods of time, and minimizing their power consumption is vital for maximising both their operational lifetime and coverage. We are exploring the construction of a versatile multi-sen…

Co-supervised with Hamed Haddadi.

The role of urban vegetation in human healthUnder way with Andres Zuñiga-Gonzalez since 2023

Cities around the globe have experienced unprecedented growth in recent years, becoming centres of economic, cultural, and social hubs for human activity. Rapid urbanisation has transformed the physical landscape and significantly altered local climates, with …

Co-supervised with Ronita Bardhan.

Mapping hunting risks for wild meat in protected areasUnder way with Charles Emogor since 2024

There is an important balance needed between the biodiversity damage caused by hunting in protected areas and the well-being of local communities that depend on it. One understudied driver of overly damaging hunting in these areas is snaring (as opposed to gun…

Co-supervised with Milind Tambe.

Reverse emulating agent-based models for policy simulationCompleted by Pedro Sousa in 2023

Governments increasingly rely on simulation tools to inform policy design. Agent-based models (ABMs) simulate complex systems to study the emergent phenomena of individual behaviours and interactions in agent populations. However, these ABMs force an iterative…

Co-supervised with Sadiq Jaffer.

Species distribution modelling using CNNsCompleted by Emily Morris in 2023

The goal of this project is to compare the performance of MaxEnt techniques to the performance of a CNN model for the task of species distribution modeling. The CNN model will use remote sensing data as part of the input features. The remote sensing data we pl…

Co-supervised with David Coomes.

Scalable agent-based models for optimized policy designCompleted by Sharan Agrawal in 2022

As the world faces twinned crises of climate change and biodiversity loss, the need for integrated policy approaches addressing both is paramount. To help address this, this project investigates a new agent-based model dubbed the VDSK-B. Using Dasgupta's revie…

Co-supervised with Srinivasan Keshav.

Exploring Concurrency in Agent-Based Modelling with Multicore OCamlCompleted by Martynas Sinkievič in 2021

Computational modelling techniques such as ABMs are used to understand the dynamics of ecosystems and predict their behaviour in response to climate change and ecological disturbances, while also searching for optimal paths towards solutions to these problems.…

Diffusion models for terrestrial predictions about land use changeOffered in 2024, no longer open

This project investigates how to build remote sensing data-driven models for the evolution of landscapes, which we can use to better predict deforestation, flooding and fire risks. Diffusion models are now widespread for image generation and are now being appl…

Co-supervised with Sadiq Jaffer.

>_Planetary Computing2 open
Using computational SSDs for vector databases

An MPhil or Part III project, proposed in 2025, co-supervised with Sadiq Jaffer.

Large pre-trained models can be used to embed media/documents into concise vector representations with the property that vectors that are "close" to each other are semantically related. ANN …

ZFS replication strategies with encryptionUnder way with Becky Terefe-Zenebe since 2025

We are using ZFS in much of our Planetary Computing infrastructure due to its ease of remote replication. Therefore, its performance characteristics when used as a local filesystem are particularly interesting. Some questions that we need to answer about our u…

Co-supervised with Mark Elvers.

Bidirectional Hazel to OCaml programmingUnder way with Max Carroll since 2025

Hazel is a pure subset of OCaml with a live functional programming environment that is able to typecheck, manipulate, and even run incomplete programs. As a pure language with no effects, Hazel is a great choice for domains such as configuration languages wher…

Co-supervised with Patrick Ferris and Cyrus Omar.

An imperative, pure and effective specification languageUnder way with Max Smith since 2024

Formal specification languages are conventionally rather functional looking, and not hugely amenable to iterative development. In contrast, real world specifications for geospatial algorithms tend to developed with "holes" in the logic which is then filled in …

Co-supervised with Patrick Ferris.

Effective geospatial code in OCamlUnder way with George Pool since 2024

Geospatial data processing is a critical component of many scientific and engineering workflows, from environmental monitoring to urban planning. However, writing geospatial code that scales to multiple cores and makes best use of available memory can be chall…

Co-supervised with Michael Dales and Patrick Ferris.

Privacy preserving emissions disclosure techniquesUnder way with Jessica Man since 2024

Customers of online services may want to take carbon emissions into account when deciding which service to use, but are currently hindered by a lack of reliable emissions data that is comparable across services. Calculating accurate carbon emissions across a c…

Co-supervised with Martin Kleppmann.

Computational Models for Scientific ExplorationUnder way with Patrick Ferris since 2023

The modern scientific method has become highly computational, but computer science hasn't entirely caught up and is sometimes hindering research progress. We use climate science and ecology computation needs as a case study, we are conducting a systematic stud…

Co-supervised with Srinivasan Keshav.

Bidirectional type slicingCompleted by Max Carroll in 2025

Development tools report what type an expression has, but not why it has that type. This project develops a theory of type slicing: a programmer selects a term, queries any part of its type information, and receives a program slice that is sufficient to reprod…

Co-supervised with Cyrus Omar.

Gradually debugging type errorsCompleted by Max Carroll in 2024

Reasoning about type errors is very difficult, and requires shifting between static and dynamic types. In OCaml, the type checker asserts ill-typedness but provides little in the way of understanding why the type checker inferred such types. These direct error…

Co-supervised with Patrick Ferris.

Assessing high-performance lightweight compression formats for geospatial computationCompleted by Omar Tanner in 2023

Geospatial data processing can benefit from by applying lightweight compression techniques to data in GeoTIFF format, addressing the challenge of modern CPU bandwidth surpassing RAM bandwidths. This project will explore how to mitigate the impact of poor cache…

Co-supervised with Sadiq Jaffer.

Towards reproducible URLs with provenanceOffered in 2024, no longer open

Vurls are an attempt to add versioning to URI resolution. For example, what should happen when we request https://doi.org/10.1109/SASOW.2012.14 and how do we track the chain of events that leads to an answer coming back? The prototype vurl library written in O…

Co-supervised with Patrick Ferris.

Composable diffing for heterogenous file formatsOffered in 2024, no longer open

When dealing with large scale geospatial data, we also have to deal with a variety of file formats, such as CSV, JSON, GeoJSON, or GeoTIFFs, etc. Each of these file formats has its own structure and semantics, and it is often necessary to compare and merge dat…

Co-supervised with Patrick Ferris.

Legal perspectives on integrity issues in forest carbonCompleted by Sophie Chapman in 2024

Carbon finance offers a vital way to fund urgently needed forest conservation, but there are integrity issues on the supply side.[1] Besides the known issues with carbon quantification,[2] carbon credits are often poorly designed and implemented from a legal p…

Co-supervised with Eleanor Toye Scott.

Meta Properties of Financial Smart ContractsCompleted by Derek Sorensen in 2023

Financial smart contracts routinely manage billions of US dollars worth of digital assets, making bugs in smart contracts extremely costly, and are also increasingly being used in other areas of endeavour such as carbon credit tracking. Because of this, much w…

Co-supervised with Srinivasan Keshav.

Making GPS accurate in dense forests using sensor fusionCompleted by Keshav Sivakumar in 2020

Current GPS solutions are either very expensive ($8k+) or have relatively poor accuracies (10m+) under dense forest canopy. This project explores how to determine our location accurately in a forest area where we travel by foot under canopy without a GPS signa…

Co-supervised with Srinivasan Keshav and David Coomes.

Secure Programming with Dispersed CompartmentsCompleted by Zahra Tarkhani in 2022

This PhD project proposes novel approaches and mechanisms for application compartmentalization and isolation to reduce their ever-growing attack surfaces. Our approach is motivated by the key observation that while hardware vendors compete to provide security …

Decentralised Capability-based Code Collaboration using MatrixCompleted by Samuel Wedgwood in 2022

In 2005, due to licensing disputes, the team behind Linux parted ways with their proprietary source management tool BitKeeper, and needed a new solution. This prompted the development of Git, an open-source decentralised version control system (DVCS), which wa…

Security analysis of brain-computing interfacesCompleted by Malachy O'Connor Brown and Oscar Hill in 2021

Brain Computing Interface (BCI) technologies, both invasive and non-invasive, are increasingly used in a wide range of applications, from health-care to smart communication and control. Most BCI applications are safety-critical or privacy-sensitive. However, t…

Co-supervised with Zahra Tarkhani and Lorena Qendro.

Void Processes: Minimising privilege by defaultCompleted by Jake Hillion in 2021

Void processes intend to make it easier for all developers to produce effectively privilege separated applications. The project has two primary goals: show the merits of starting from zero privilege, and provide the utilities to make this feasible for the aver…

>_Interspatial OS
Low power audio transcription with WhisperUnder way with Dan Kvit since 2025

The rise of batteryless energy-harvesting platforms could enable ultra-low-power, long-term, maintenance-free deployments of sensors. This project explores the deployment of the OpenAI Whisper audio transcription model onto embedded devices, initially starting…

Co-supervised with Josh Millar.

Low-latency wayland compositor in OCamlUnder way with Tom Thorogood since 2024

When building situated displays and hybrid streaming systems, we need fine-grained composition over what to show on the displays. Wayland is a communications protocol for next-generation display servers used in Unix-like systems.[^0] It has been adopted as the…

Co-supervised with Ryan Gibb.

Building bigraphs of the real worldUnder way with Roy Ang since 2024

Bigraphs were originally proposed as a model for the behaviour of ubiquitous systems since interaction between mobile devices is dependent on both placing (locality) and linking (connectivity). However, there has yet to be a bigraph that represents the complet…

Co-supervised with Ryan Gibb.

Interspatial Networking with DNSUnder way with Ryan Gibb since 2023

The existing Internet architecture lacks support for naming locations and resolving them to the myriad addressing mechanisms we use beyond IP. While there have been many advances in addressing locations via multiple routing schemes, it remains difficult to ref…

Co-supervised with Jon Crowcroft.

3D printing the planet (or bits of it)Completed by Finley Stirk in 2025

Thanks to a combination of satellite information, remote sensors and data-science, we now are able to reason about places all over the globe from the comfort of our desks and offices. But sometimes, you just want to be able to see or touch an area to understan…

Co-supervised with Michael Dales.

Scheduling for Reduced Tail Latencies in Highly Utilised DatacentersCompleted by Smita Vijayakumar in 2023

Modern datacenters have become the backbone for running diverse workloads that increas- ingly comprise data-parallel computational jobs. Due to the ease of use and diversity of resources they host there has been an exponential rise in the demand for datacenter…

Co-supervised with Evangelia Kalyvianaki.

A DSL for decentralised identity in OCamlCompleted by Michał Mgeładze-Arciuch in 2022

There are currently multiple identity providers without direct incentives to cooperate. This leads to many redundant implementations of the identity handling logic, many of which are not immediately compatible with each other, leading to additional increases i…

Co-supervised with Patrick Ferris.

Spatial Name SystemCompleted by Ryan Gibb in 2022

The development of emerging classes of hardware such as Internet of Thing devices and Augmented Reality headsets has outpaced the development of Internet infrastructure. We identify problems with latency, security and privacy in the global hierarchical distrib…

Co-supervised with Jon Crowcroft.

Deep learning for decomposing sound into vector audioOffered in 2024, no longer open

All that we hear is mediated through cues transmitted to the brain from the cochlea, which acts like a bank of auditory filters centred at a wide range of centre frequencies. A lot of our knowledge of hearing comes from psychoacoustical experiments that involv…

Co-supervised with Trevor Agus.

>_OCaml Labs1 open
Effects based scheduling for the OCaml compiler pipelineUnder way with Lucas Ma since 2025

In order to compile the OCaml program foo.ml containing: Stdlib.print_endline "Hello, world" the OCaml compilers only require the compiled stdlib.cmi interface to exist in order to determine the type of Stdlib.print_endline. This separate compilation technique…

Co-supervised with David Allsopp.

Runtimes à la carte: crossloading native and bytecode OCamlUnder way with Jeremy Chen since 2025

In 1998, Fabrice le Fessant released Efuns ("Emacs for Functions"), an implementation of an Emacs-like editor entire in OCaml and which included a library for loading bytecode within native code programs[^1]. This nearly a decade before OCaml 3.11 would introd…

Co-supervised with David Allsopp.

Implementing a higher-order choreographic languageCompleted by Rokas Urbonas in 2024

This project aims to implement a functional choreographic language inspired by the Pirouette calculus. This language was meant to make the notoriously difficult process of implementing distributed algorithms easier, while offering a practical execution model f…

Co-supervised with Dmirtij Szamozvancev.

Parallel traversal effect handlers for OCamlCompleted by Sky Batchelor in 2024

Most existing uses of effect handlers perform synchronous execution of handled effects. Xie et al proposed a traverse handler for parallelisation of independent effectful computations whose effect handlers are outside the parallel part of the program. The pape…

Co-supervised with Patrick Ferris.

Using effect handlers for efficient parallel schedulingCompleted by Bartosz Modelski in 2022

Modern hardware is so parallel and workloads are so concurrent, that there is no single, perfect scheduling strategy across a complex application software stack. Therefore, there are significant performance advantages to be gained from customizing and composin…

Probabilistic Programming in OCamlCompleted by Hari Chandrasekaran in 2018

With increasing use of machine learning, it is useful to develop frameworks that support rapid development and functional specification of probabilistic models for inference and reasoning. Probabilistic Programming Languages aim to support concise syntax for s…

Co-supervised with Tom Kelly and Liang Wang.

Concurrent revisions for OCamlCompleted by Dimitar Popov in 2013

The biggest challenge when using parallel programming is typically how to keep track of the side effects of computations that are executed in parallel and that involve shared mutable state. Traditional methods for dealing with this issue often limit concurrenc…

Macro- and Micro-benchmarking in OCamlCompleted by Sebastian Funk in 2012

Benchmarking involves the measurement of statistics such as run-time, memory allocations, garbage collections in a running program in order to analyze its performance and behaviour. To scientifically evaluate and understand the performance of a program, there …

Analysis of the Raft Consensus ProtocolCompleted by Heidi Howard in 2012

The Paxos algorithm, despite being synonymous with distributed consensus for a decade, is famously difficult to reason about and implement due to its non-intuitive approach and underspecification. In response, this project aimed to implement and evaluate a fra…

Functional Reactive Web ApplicationsCompleted by Henry Hughes in 2010

There are a variety of programming languages which can be used to create desktop applications, and each provides different tradeoffs. This could be anything from the runtime guarantees the programming language provides to rapid development and prototyping. It …

>_Unikernels1 open
An antibotty defensive testbed to protect network services

An MPhil or Part III project, proposed in 2026.

The mean time to exploit a vulnerability is now negative, as LLM-driven exploitation precedes the publication of a fix. A coding agent needs to be given little more than the class of a bug, …

Distributed Task Scheduling Framework over IrminCompleted by Mohammed Daudali in 2019

Distributed computation and task scheduling frameworks can be decentralised with minimal cost to performance. Furthermore, this decentralisation can provide a significant reduction in the trusted computing base and complexity of the system, affording end consu…

A strongly consistent index for email using git and MirageOSCompleted by Oliver Hope in 2019

Maildir is a widely used format for storing emails. Its main benefit is that it uses the filesystem in such a way that client programs do not have to handle locking themselves. The downside of this is that it makes it hard to create a consistent index as we ca…

Co-supervised with David Allsopp.

CausalRPC: a traceable distributed computation frameworkCompleted by Craig Ferguson in 2018

The project aims to implement an RPC framework in OCaml using the Irmin distributed database library as a network substrate. It will explore the trade-offs of a novel data-oriented approach to RPC in which race conditions between clients are resolved automatic…

Consolidating Trust for Client Groups that use TLS to Secure ConnectionsCompleted by Johann Beleites in 2014

This project aimed to develop a framework that allows administrators to centrally manage trust in CAs and certificates across a large number of clients. The framework should be responsive and changes in trust should not require any software updates or reboots …

Co-supervised with David Sheets.

Extending 64-bit MIPS support for LLVMCompleted by William Morland in 2011

In the summer of 2011, we hosted William Morland to do an internship in the Computer Lab just as the CTSRD/CHERI project kicked off. I was interested in MIPS as a potential target for MirageOS, and Robert M Watson in using it for the future CHERI processor. Wi…

Co-supervised with Robert M Watson.

Control flow analysis for privilege separationCompleted by Chris Harding and Ross McIlroy in 2011

In the summer of 2011, we hosted Chris Harding and Ross McIlroy to do an internship in the Computer Lab working just as the CTSRD/SOAPP project kicked off. Ross McIlroy built a tool called privgrind, using valgrind that tracks, for all data addresses touched, …

Co-supervised with Robert M Watson.

Improving Resilience of ActivityPub ServicesCompleted by Gediminas Lelešius in 2023

The original goal of the project was to improve the resilience of the distributed social networking protocol "ActivityPub", by caching the content on multiple instances and serving them in case the origin instance goes down. The project uses public-key cryptog…

Simulating XMPP Group CommunicationCompleted by Farhān Mannān in 2011

The problem of getting a digital message from one place to another has a staggering range of possible scenarios, constraints and applications. Humans and devices are in constant dialogue, with various constraints and contracts being invisibly maintained. Even …

Not-quite-so-broken TLS in OCamlCompleted by Hannes Mehnert and David Kaloper-Mersinjak in 2014

Transport Layer Security (TLS) implementations have a history of security flaws. The immediate causes of these are often programming errors, e.g. in memory manage- ment, but the root causes are more fundamental: the challenges of interpreting the ambiguous pro…

Co-supervised with Peter Sewell.

Functional ABNF parser generatorsCompleted by Nicholas Skehin in 2011

Writing internet servers is a difficult proposition. On some levels it seems as though we haven’t made much progress since the 1970s, as popular servers such as Apache and nginx for HTTP, BIND for DNS and qmail for IMAP for many Internet protocols still tend…

Audio networking using commodity hardwareCompleted by Gareth P. Williams in 2004

Many everyday electronic devices such as laptops, PDAs and telephones are able to play and record audio. Invariably this ability is used to interface with people, playing or recording music, speech or sound effects. However, it is just as possible for the devi…