These are all of my publications, both peer-reviewed and technical reports, that I've published over the years. You may find it easier to read through my research areas to see them categorised more usefully. If you would like to collaborate, look over my ideas list.
[»] The potential for AI to revolutionize conservation: a horizon scan |
[»] Carbon-aware Name Resolution |
[»] Emission Impossible: privacy-preserving carbon emissions claims |
[»] Cooperative Sensor Networks for Long-Term Biodiversity Monitoring |
[»] Lineage first computing: towards a frugal userspace for Linux |
[»] Scheduling for Reduced Tail Task Latencies in Highly Utilized Datacenters |
[»] Poster: Towards Low-Power Comprehensive Biodiversity Monitoring |
[»] A Legal Perspective on Supply-side Integrity Issues in the Forest Carbon Market |
[»] Can Large Language Models facilitate evidence-based decision support for conservation? |
[»] Modularizing Reasoning about AI Capabilities via Abstract Dijkstra Monads |
[»] PACT Tropical Moist Forest Accreditation Methodology v2.1 |
[»] Nature-based credit markets at a crossroads |
[»] Mitigating risk of credit reversal in nature-based climate solutions by optimally anticipating carbon release |
[»] Terracorder: Sense Long and Prosper |
[»] LIFE: A metric for quantitatively mapping the impact of land-cover change on global extinctions |
[»] Harnessing temporal & spectral dimensionality to identify individual trees in tropical forests |
[»] Quantifying the impact of the food we eat on species extinctions |
[»] Towards Scalable Deep Species Distribution Modelling using Global Remote Sensing |
[»] Global, robust and comparable digital carbon assets |
[»] Green Urban Equity: Analyzing the 3-30-300 Rule in UK Cities and Its Socioeconomic Implications |
[»] Planetary computing for data-driven environmental policy-making |
[»] Uncertainty at scale: how CS hinders climate research |
[»] Realizing the social value of impermanent carbon credits |
[»] Where on Earth is the Spatial Name System? |
[»] Enabling Lightweight Privilege Separation in Applications with MicroGuards |
[»] Information Flow Tracking for Heterogeneous Compartmentalized Software |
[»] Eio 1.0 – Effects-based IO for OCaml 5 |
[»] State of the OCaml Platform 2023 |
[»] Credit credibility threatens forests |
[»] Real World OCaml: Functional Programming for the Masses |
[»] Homogeneous Builds with OBuilder and OCaml |
[»] Enhancing the Security & Privacy of Wearable Brain-Computer Interfaces |
[»] Experiences with Effects |
[»] How Computer Science Can Aid Forest Restoration |
[»] Retrofitting effect handlers onto OCaml |
[»] Banyan: Coordination-Free Distributed Transactions over Mergeable Types |
[»] The OCaml Platform: 2020 |
[»] Parallelising your OCaml Code with Multicore OCaml |
[»] OCaml-CI: A Zero-Configuration CI |
[»] Retrofitting parallelism onto OCaml |
[»] The OCaml Platform in 2019 |
[»] MirageOS 4: the dawn of practical build systems for exotic targets |
[»] Programming Unikernels in the Large via Functor Driven Development |
[»] Snape: The Dark Art of Handling Heterogeneous Enclaves |
[»] A modular foreign function interface |
[»] Bounding data races in space and time |
[»] Concurrent System Programming with Effect Handlers |
[»] An architecture for interspatial communication |
[»] Effectively tackling the awkward squad |
[»] The State of the OCaml Platform: Sep 2017 |
[»] DaLi: Database as a Library |
[»] FLICK: Developing and Running Application-Specific Network Services |
[»] Declarative Foreign Function Binding Through Generic Programming |
[»] Personal Data: Thinking Inside the Box |
[»] SibylFS: formal specification and oracle-based testing for POSIX and real-world file systems |
[»] Not-Quite-So-Broken TLS |
[»] Jitsu: Just-In-Time Summoning of Unikernels |
[»] Kadupul: Livin' on the Edge with Virtual Currencies and Time-Locked Puzzles |
[»] CUFP'13 scribe's report |
[»] Mergeable persistent data structures |
[»] Raft Refloated: Do We Have Consensus? |
[»] Regional clouds: technical considerations |
[»] Multicore OCaml |
[»] Irminsule: a branch-consistent distributed library database |
[»] The OCaml Platform v1.0 |
[»] Using Dust Clouds to Enhance Anonymous Communication |
[»] Trevi: watering down storage hotspots with cool fountain codes |
[»] Commercial users of functional programming workshop report |
[»] Unikernels: Rise of the Virtual Library Operating System |
[»] The OCaml Platform v0.1 |
[»] Ocamlot: Online OCaml Testing |
[»] Lost in the Edge: Finding Your Way with DNSSEC Signposts |
[»] Unikernels: library operating systems for the cloud |
[»] Perceived risks of personal data sharing |
[»] Evolving TCP: how hard can it be? |
[»] Signposts: end-to-end networking in a world of middleboxes |
[»] Exploring Compartmentalisation Hypotheses with SOAAP |
[»] Programming the Xen cloud using OCaml |
[»] Cost, Performance & Flexibility in OpenFlow: Pick three |
[»] Confidential carbon commuting: exploring a privacy-sensitive architecture for incentivising 'greener' commuting |
[»] The case for reconfigurable I/O channels |
[»] CUFP 2011 Workshop Report |
[»] Dynamics for ML using Meta-Programming |
[»] Dynamics for ML using Meta-Programming |
[»] Reconfigurable Data Processing for Clouds |
[»] CIEL: A universal execution engine for distributed data-flow computing |
[»] Unclouded vision |
[»] The personal container, or your life in bits |
[»] Using functional programming within an industrial product group: perspectives and perceptions |
[»] Turning Down the LAMP: Software Specialisation for the Cloud |
[»] Creating High-Performance, Statically Type-Safe Network Applications |
[»] Multiscale not multicore: efficient heterogeneous cloud computing |
[»] Privacy Butler: A Personal Privacy Rights Manager for Online Presence |
[»] Combining Static Model Checking with Dynamic Enforcement Using the Statecall Policy Language |
[»] Enhancing web browsing security on public terminals using mobile composition |
[»] Melange: creating a "functional" internet |
[»] Interacting with mobile services: an evaluation of camera-phones and visual tags |
[»] Fighting Crimeware: An Architecture for Split-Trust Web Applications |
[»] A Study of Bluetooth Propagation Using Accurate Indoor Location Mapping |
[»] SPLAT: A Tool for Model-Checking and Dynamically-Enforcing Abstractions |
[»] Ubiquitious Computing needs to catch up with Ubiquitous Media |
[»] Audio networking: the forgotten wireless technology |
[»] On the challenge of delivering high-performance, dependable, model-checked internet servers |
[»] Using smart phones to access site-specific services |
[»] The Broadband Phone Network: Experiences with Context-Aware Telephony |
[»] Using visual tags to bypass Bluetooth device discovery |
[»] Using camera-phones to interact with context-aware mobile services |
[»] Using Camera-Phones to Enhance Human-Computer Interaction |
[»] Feedback, latency, accuracy: exploring tradeoffs in location-aware gaming |
[»] Context-Aware Computing with Sound |
[»] The Case for Abstracting Security Policies |
[»] Xen 2002 |
[»] Tiscali: How to build a Content Delivery Network |
[»] Application of a Ditsributed Web Site Acceleration: Mars Polar Lander |