Anil Madhavapeddy is the Professor of Planetary Computing at the University of Cambridge Computer Laboratory, based in the Energy & Environment Group and the Systems Research Group. I research topics related to computer systems and programming languages, with a focus on applying the insights to global conservation and biodiversity. I am on the management committee of the Cambridge Conservation Initiative where I co-direct the Cambridge Centre for Carbon Credits (4C) and the Cambridge Centre for Earth Observation and collaborate with wonderful colleagues from Plant Sciences, Zoology, and Economics and NGOs such as UNEP-WCMC and the IUCN. I have held a JM Keynes Fellowship since 2022, towards my work on combining computer science with economics. I am signed up to the Keshav declaration on the necessity of computer scientists responding to the urgent planetary crisis.

I also teach computer science and am a Fellow at Pembroke College where I am the co-Director of Computer Science. I enjoy hacking on open-source code and co-founded the MirageOS framework and am a long-time contributor to projects ranging from OCaml, OpenBSD, Docker, Horde and Xen. The 2nd Edition of my book Real World OCaml was published in Oct 2022 by Cambridge University Press and is available freely online and in print. I would really love to see a pika in real life.

In the past, I've co-founded Unikernel Systems and High Energy Magic and worked for Docker, Citrix, XenSource, Intel Research, Fraser Research, Imperial College, and NASA MVACS at UCLA. You can read up some of the history over in my projects. I obtained my PhD from the University of Cambridge in 2003 and my BEng in Information Systems Engineering from Imperial College in 1999. I've been on various boards, such as Tarides (2019-) the Tezos Foundation (2021-2024) and Segfault Systems (2020-).

Interested students are welcome to get in touch informally, but all applications must go through the department process. You may find my research, papers and project ideas helpful background material before getting in touch.

News Updates

Dec 2024. «» LOCO abstract on carbon-aware DNS resolution available / «» Paper on our horizon scan for AI in conservation published / «» LOCO abstract on ZKP emissions tracking available / «» LOCO abstract on Shark the time travelling shell available / «» LOCO abstract on Terracorder sensing available.
Nov 2024. «» Preprint on LLMs for conservation evidence / «» Paper on decentralised scheduling to appear at SOCC 2024 / «» Poster on Terracorder published at Sensys / «» Paper on legal aspects of forest carbon credits in Carbon & Climate Law review / «» Notes on the Deepmind/Royal Society AI for Science meeting.
Oct 2024. «» Attended Royal Society meeting on ecological/commercial risks / «» Served on the ACM SOCC 2024 program committee / «» Talked at the UCL Institute for Global Prosperity.
Sep 2024. «» Paper at HOPE 2024 on agentic specifications using F* / «» New project on building species models of the whole planet / «» New teaching page with my past and present courses / «» Discuss the Bastion paper / «» Discuss the NbS risks paper / «» Served on the HotNets 24 PC.
Aug 2024. «» Preprint on Terracorder ground sensing / «» Comment on nature-based credits published in Nature Sustainability / «» Discussion on the nature-based credits article / «» Tropical Moist Forest v2.1 specification released / «» Paper on ex-ante projection for nature-based solutions.
Jul 2024. «» LIFE biodiversity paper accepted for publication later this year / «» Chaired session at ACM COMPASS 2024 and attended CoRE stack RIC / «» Refreshed ideas for incoming Part II student projects for 2024-2025.
Jun 2024. «» Preprint on hyperspectral tree species identification / «» AI@Cam interview with me on Conservation Evidence Copilots project / «» Talk on the conservation copilot using LLMs.
May 2024. «» Paper on SDMs with remote sensing at ICLR CCAI workshop / «» Submitted preprint on quantifying the biodiversity cost of global food consumption for peer review / «» Keynoted at Lambda Days on Programming for the Planet.
Apr 2024. «» New personal site design based on my upcoming Bushel content manager / «» Paper on smart contracts for carbon credits at ICBC 2024 in Dublin.
Mar 2024. «» Revision of planetary computing preprint / «» Preprint on forecasting nature based project risk / «» Abstract on urban biodiversity and human health at EGU 24.
Feb 2024. «» Paper on uncertainty in climate science in Undone CS / «» We won the AI@CAM challenge bid with our conservation copilot project!
Dec 2023. «» Tropical Moist Forest v2.0 specification / «» Joined the Royal Society Newton International Fellowships Committee.
Nov 2023. «» Preprint on new LIFE metric for global biodiversity / «» Paper on spatial networks on DNS at HotNets 2023 / «» Paper on valuing impermanent carbon credits at Nature Climate Change, with cam.ac.uk coverage / «» On the BBC briefly about the Dawn supercomputer.
Oct 2023. «» Paper on DIFC Deluminator interface at RAID 2023 / «» Paper on microgrounds memory API at ACNSW / On stage for Mission Possible during NYC Climate Week.
Sep 2023. «» Presentation on the OCaml Platform in 2023 / «» An update on the OCaml EIO library at the OCaml Workshop 2023 / «» Keynoted at ICFP 2023 on Functional Programming for the Planet.
Jul 2023. «» Preprint of paper on valuing impermanent carbon credits.
Jun 2023. «» Published Tropical Moist Forest v1.0 specification / «» Won the ACM Programming Languages Software Award for 2023 with the OCaml team!
May 2023. «» Perspective in Science on carbon credits credibility.
Mar 2023. «» Preprint of planetary computing paper / «» Discussion with Mantle Labs about carbon credits.
Jan 2023. «» Recap of the OCaml community in 2022 posted along with plans to join the 'fediverse'.
Nov 2022. «» Opened the 17th William Pitt Seminar at Pembroke College on climate change / «» Wednesday seminar on financing forests using carbon credits.
Oct 2022. «» The second edition of Real World OCaml available from Cambridge University Press!
Sep 2022. «» Paper on our incremental computation DSL ocurrent presented in OCaml Workshop 2022.
May 2022. «» Quoted in Vox article on carbon credits.
Apr 2022. «» Update posted to the OCaml community on progress towards OCaml 5.0.
Feb 2022. «» Update posted to the OCaml community on post-multicore-merge activities in OCaml trunk.
Jan 2022. «» Preprint on security vulnerabilities in brain-computer interfaces.
Dec 2021. «» Update posted to the OCaml community on major multicore code review with Inria.
Nov 2021. «» I am on the Signals and Threads podcast with Yaron Minsky / «» Pembroke College covers the launch of 4C.
Oct 2021. «» Update posted to the OCaml community on confirmation that the effect system will appear in OCaml 5.0.
Sep 2021. «» Note on the decentralised stack used in Recoil / «» Started maintaining (sporadically) a note on a forest preservation and restoration bibliography.
Aug 2021. «» Preprint about our working notes on how CS might contribute to forest preservation / «» Paper on programming with effects in OCaml / «» Published a roadmap for OCaml.org's revamp.
Jun 2021. «» Paper on retrofitting effects in OCaml presented in PLDI 2024.
Nov 2020. «» Paper on Banyan for coordination-free distributed transactions in ASPLAS 2020.
Sep 2020. «» Annual update on the OCaml Platform at the OCaml Workshop.
Aug 2020. «» Won best paper award at ICFP 2020 for our paper on retrofitting parallelism onto OCaml! / «» Presented the new OCaml DSL for continuous integration at the OCaml Workshop / «» Paper on how to parallelise OCaml code at the OCaml Workshop / «» Update on multicore OCaml being ready for testing / «» Talk on the state of the OCaml Platform in 2020.
Apr 2020. «» Update the OCaml community on multicore progress and linked preprint of ICFP submission on the runtime.
Feb 2020. «» Part 3 / «» Part 2 / «» Delivered the distinguished seminar series at St Andrews on rebuilding Operating Systems with functional principles.
Jan 2020. «» Began updating the OCaml community regularly with multicore monthly reports.
Aug 2019. «» Paper on the MirageOS 4 build system at OCaml Workshop / «» Annual update on the OCaml Platform in 2019 / «» Note on OpenBSD cloud hosting options.
May 2019. «» Preprint on programming unikernels with ML modules.
Mar 2019. «» Paper on a framework to rearchitect applications for better TEE support at EdgeSys 2019.
Nov 2018. «» Rearranged the OCaml opam repository layout.
Oct 2018. «» Journal paper on building modular foreign function interfaces.
Jun 2018. «» Paper on the OCaml memory model and underlying theory at PLDI 2018.
Apr 2018. «» Paper on the interspatial networking architecture at HotPOST 2018 / «» Paper on concurrent systems programming with effect handlers at TFP 2017.
Sep 2017. «» Annual update on the OCaml Pltform at ICFP / «» Paper on how to tackle awkward IO patterns with effect handlers / «» Talk on the state of the OCaml Platform.
May 2017. «» Position paper on building databases-as-a-library at SNAPL 2017 / «» Opened up a new OCaml discussion forum based on Discourse.
Oct 2016. «» DockerCon talk on unikernels and MirageOS.
Jun 2016. «» Paper on application-specific network services at USENIX ATC 2016 / «» Interviewed by The New Stack at OSCON in Austin, Texas / «» Talk on the functional innards of Docker for Mac and Windows using OCaml / «» Updated the MirageOS community about the 2016 hack retreat.
May 2016. «» Announced HyperKit, VPNKit and DataKit for the Docker ecosystem.
Feb 2016. «» Paper on declarative approaches to foreign function bindings at FLOPS 2016.
Jan 2016. «» Announced that Unikernel Systems is now part of Docker / «» My startup Unikernel Systems was acquired by Docker.
Oct 2015. «» Paper on formal specificaiton and testing of filesystems at SOSP 2015 / «» Paper on personal databoxes at the one-in-a-decade Aarhus conference.
Sep 2015. «» Update on the state of the OCaml Platform / «» Invited talk at NetPL on Immutable Distributed Infrastructure with Unikernels.
Aug 2015. «» Paper on rebuilding TLS securely but practically at USENIX Security 2015.
May 2015. «» Workshop paper on DIY networking using timelock puzzles / «» Paper on spinning up low-latency unikernels per-connection at NSDI 2015 / «» NSDI 2015 talk on Jitsu / «» Talk at Esper on functional programming with unikernels.
Apr 2015. «» Updated the OCaml community on annual OCaml Labs activities for 2014.
Feb 2015. «» Announced a call for sponsorships for ICFP 2015 in my role as industrial relations chair.
Jan 2015. «» Paper on reproducing the raft consensus protocol / «» Paper on mergeable data structures using Irmin (nee Irminsule) at JFLA 2015 / «» Published the scribe's report for CUFP 2013 in JFP / «» Gave BOB 2015 keynote on functional Operating Systems.
Dec 2014. «» Gave Codemesh 2014 talk on Nymote.
Nov 2014. «» Report on regional cloud computing law available / «» New Directions in Operating Systems talk on Jitsu.
Oct 2014. «» At the Xen Summit speaking about branch consistency for Xen Stub Domains.
Sep 2014. «» Paper on the OCaml Platform status / «» Paper at the OCaml Workshop on the Irmin database library / «» First paper on multicore OCaml's design at the OCaml Workshop / «» Gave Haskell Symposium 2014 Keynote on functional OS design / «» Talk on the OCaml Platform reaching v1.0.
Aug 2014. «» Note on talks from OCaml Labs at ICFP 2014.
Jul 2014. «» Announced the release of MirageOS 1.2, and a roadmap towards MirageOS 2.0 / «» Announced the long-awaited release of MirageOS 2.0 / «» Appeared on FLOSS Weekly 302 about Open Mirage.
May 2014. «» Appeared on SE Radio Episode 204 about Mirage and OCaml.
Mar 2014. «» Paper on building dust clouds for anonymous communication / «» Call for sponsorships for ICFP 2014 in my role as industrial relations chair / «» Note on an experiment to improve the coupling of opam with GitHub / «» Note on the Codio support for the opam package manager.
Jan 2014. «» Note on the discussions around my recent CACM article on unikernels.
Dec 2013. «» Updated the OCaml community on the activities of OCaml Labs in 2013.
Nov 2013. «» Article on the Communications of the ACM on unikernels is published / «» Published the scribe's report for CUFP 2012 / «» The 1st Edition of Real World OCaml by O'Reilly associates is released! / «» Paper on fountain coding for datacentre networking at HotNets 2013 / «» Liveblog from PLOS 2013 / «» MirageOS and XAPI project update at XenSummit / «» Note on integrating Docker and opam more effectively.
Oct 2013. «» Liveblog from the first Human-Data Interaction workshop.
Sep 2013. «» Presented an OCaml ecosystem testing system / «» Paper on the OCaml Platform at the OCaml Workshop 2013 / «» Note on the release of the OPAM 1.1 beta / «» Liveblog from the CUFP 2013 workshop at ICFP / «» Liveblog from the OCaml 2013 workshop.
Aug 2013. «» Paper on DNSSEC-based Signpost servers for better p2p communications at USENIX FOCI.
Jul 2013. «» Mirage Developer Preview 1 screencast.
Apr 2013. «» Note on how to grep the source code for all packages on opam.
Mar 2013. «» The first paper on unikernels is pubished at ASPLOS 2013.
Feb 2013. «» Paper on dataware computing in the digital economy.
Dec 2012. «» Paper on extending TCP in a backwards compatible way at CoNeXT 2013.
Oct 2012. «» Discussing how we disaggregated MirageOS into opam packages / «» Announced the opening of OCaml Labs at Cambridge, along with Jane Street support.
Sep 2012. «» Paper on programming the Xen cloud using OCaml at the OCaml Workshop / «» Paper on control flow analysis to break up applications into compartments / «» Demoed the Signposts DNSSEC system at SIGCOMM / «» Note on how to build XenStore stub domains using MirageOS / «» Recording of the OCaml Labs announcement.
Jun 2012. «» Paper on using MirageOS for better SDN infrastructure with OpenFlow.
Apr 2012. «» Paper on our use of data lockers within Cambridge to incentivise more green commuting patterns.
Mar 2012. «» Paper on a new design for reconfigurable IO that copes with heterogenous software/hardware.
Feb 2012. «» Note on using ARM Dreamplugs with OCaml published.
Jan 2012. «» Published the scribe's report for CUFP 2011.
Oct 2011. «» At the OCaml Meeting 2011 speaking about MirageOS.
Sep 2011. «» Liveblog on the talks at CUFP 2011.
Jul 2011. «» Published dyntype at the Workshop on Generative Technologies / «» Paper on statically typed value persistence for OCaml in ENTCS 2011.
Jun 2011. «» Note discussing an OCaml interface to our new CIEL dataflow engine / «» Published a note on delimited continuations vs Lwt in OCaml for MirageOS.
May 2011. «» Paper on what a Xen+FPGA cloud would look like at FCCM.
Apr 2011. «» Trip report about the new OCaml Users Group in Paris / «» Blogged about the growth of functional programming in the Systems Research Group.
Mar 2011. «» Paper on CIEL, a distributed dataflow engine, at USENIX NSDI 2011.
Jan 2011. «» Paper on a vision for a semi-federated cloud for personal data at ICDCN.
Nov 2010. «» Talk on building the Xen toolstack using OCaml.
Oct 2010. «» Paper on personal containers for data management at the UK Digital Economy meeting / «» Announced that the MirageOS website now self-hosted on MirageOS! / «» At LinkedIn giving tech talk about Mirage.
Sep 2010. «» Paper on our experiences with writing the Xen control stack in OCaml at ICFP 2010.
Jun 2010. «» Workshop paper on the early MirageOS architecture and evaluation at HotCloud 2010 / «» At HotCloud for the first talk about MirageOS.
May 2010. «» My PhD thesis is now also published as a print book.
Apr 2010. «» Paper on our vision for multiscale programming at the BCS Visions 2010 conference / «» Blogged about progress of the user interface for personal containers / «» Note on our approach to personal data management as 'yurts' for digital nomads.
Mar 2010. «» Paper on privacy butler services for more private data management / «» PhD thesis now available as a technical report / «» Announced the personal containers project and new website.
Nov 2009. «» Paper on a DSL for specifying temporal protocol automata at ICFEM 2009.
Sep 2008. «» Blogged at Citrix about how XenServer high availability works.
Aug 2008. «» Blogged at Citrix about tuning XenServer for better client VDI performance using XenApp available.
Jul 2008. «» Blogged at Citrix about how to install Ubuntu on XenServer as a PV guest.
Jun 2008. «» Paper on splitting trust between smartphones and webrowsers at MobiSys 2008.
Jun 2007. «» Won best student paper for my PhD work on a high-performance functional packet parsing DSL at Eurosys 2007!
Feb 2007. «» Journal paper on interacting with mobile services using camera-phones.
Aug 2005. «» Workshop paper on temporal automata for protocol specifications at SPIN 2005.
Jul 2005. «» Ubicomp paper on a study of indoor bluetooth propagation using the Active Bat system / «» Position paper on ubiquitous computing approaches to emerging stream media appliances / «» New paper Audio networking: the forgotten wireless technology available.
Jun 2005. «» Paper on temporal automata for protocol implementations at HotDep 2005 / «» Blogged about the OpenBSD C2K5 hackathon trip in Canada.
Jan 2005. «» Journal paper on our SpotCode visual tag system for cameraphones / «» Report on our hacking on the AT&T Broadband Phone / «» Article on using cameraphones to access site-specific services in IEEE Pervasive Computing.
Dec 2004. «» Technical report on our SpotCode visual tag system and a user study.
Oct 2004. «» Spotcodes are featured in the New York Times!
Sep 2004. «» Demo at UbiComp on our SpotCode visual tag system / «» MIT Technology Review covers SpotCodes and our startup.
Aug 2004. «» Built an augmented reality game over the summer and published about it in NetGames.
Jun 2004. «» Wired covers our SpotCodes along with a prawn sandwich clock.
May 2004. «» The Ubiquitous Interaction Devices software was spun out into High Energy Magic Ltd.
Oct 2003. «» Ubicomp paper on using commodity audio for user-friendly data communications.
Jun 2003. «» Paper on security policies using a declarative language at SAM 2003 / «» Merged my GCC static bounds checking extension into OpenBSD.
May 2003. «» Redesign of my homepage and moving to this domain.
Jan 2003. «» The first technical report on the Xen hypervisor.
Sep 2002. «» I start my PhD at the Systems Research Group in Cambridge.
Apr 2002. «» Technical report on setting up CDN for streaming U2 across Europe.
Feb 2001. «» Slashdot covers the GPL release of OpenFX.
Jul 2000. «» Technical report on Mars Polar Lander website acceleration available.
Dec 1999. «» Slashdot covers my work on the Mars Polar Lander.