Anil Madhavapeddy
banner
anil.recoil.org
Anil Madhavapeddy
@anil.recoil.org
Professor of Planetary Computing at the University of Cambridge @cst.cam.ac.uk, where I co-lead the @eeg.cl.cam.ac.uk and work on computing for global biodiversity and climate change with @conservation.cam.ac.uk.

Homepage at https://anil.recoil.org
Pinned
I've also started the refresh cycle for Real World OCaml v3 w/ @yminsky.bsky.social in preparation for being on a sabbatical year in 2025! What would you all like to read more about in the latest OCaml 5 goodies? (aside from parallelism; there'll be lots about parallelism.)
Looks like AWS S3 buckets of @gbif.org species occurrence data stopped mirroring about six months ago; anyone know if that's permanent? gbif-open-data-ap-southeast-2.s3.ap-southeast-2.amazonaws.com/index.html#o...
AWS S3 Explorer
gbif-open-data-ap-southeast-2.s3.ap-southeast-2.amazonaws.com
February 9, 2026 at 9:52 PM
not mass appeal but @tangled.org is my default code hosting now and I use it more than Bluesky
February 9, 2026 at 6:00 PM
congrats on launching!!
February 9, 2026 at 5:59 PM
Well done and well deserved!!!
February 9, 2026 at 5:58 PM
We're so tantalisingly close to 'Microsoft Ecosystem Professionals' in the embedding space
February 9, 2026 at 5:47 PM
I was absolutely exhausted after I did my December "one a day" agentic coding thing. The amount of context switching involved was insane compared to a normal day of coding.
February 9, 2026 at 4:46 PM
I think we just accidentally created one of the biggest storage clusters in Cambridge by pooling together our individual machines into ~1.5PB of usable CephFS storage (for TESSERA embeddings, datasets like GBIF, OpenAlex, OpenStreetmap, AGB maps, downloaded fulltext papers etc)
February 9, 2026 at 4:08 PM
Will do
February 4, 2026 at 9:31 PM
Oh and SPJ wants to meet you too! Just to throw some more vegetables in the stew
February 4, 2026 at 6:01 PM
its still nice converting the libs to use small ints for future representation optimization. I'm really interested in trying out the concurrency; @nickbarnes.bsky.social has convinced me that zerocopy should be pretty straightforward end-to-end so it just needs a good suspension mechanism
February 4, 2026 at 9:42 AM
there are more ways to generate bad python code than bad ocaml code, but mostly because I generate ocaml module interfaces first (all of them, type them with dune build @check) and only then do implementations
February 2, 2026 at 10:12 PM
agreed; minimizing moving seems good
February 2, 2026 at 10:11 PM
sweet! that's zero copy IO sorted then. we just do an oxcaml slab allocator over a few larger allocations that we fix in memory and register with the kernel unixism.net/loti/tutoria...
February 2, 2026 at 6:58 PM
if we allocate 16kb pages then even compaction wont relocate them will it? they'll be in the malloced bit of the heap
February 2, 2026 at 6:49 PM
yes the oxcaml docs are very out of date, so I just synthesise accurate claude skills from the source code diffs. The code never lies :-) also I use feeds from thicket.dev to keep track of day to day changes in the background
OCaml Thicket
thicket.dev
February 2, 2026 at 10:54 AM
yep, this monorepo uses git subtree to do the same: tangled.org/anil.recoil..... but it's mostly unnecessary when you can use the package manager to get the source metadata directly rather than guessing from the commit logs
anil.recoil.org/monopam-myspace
My aggregated monorepo of OCaml code, automaintained
tangled.org
February 2, 2026 at 9:15 AM
It's convenient for agents, but the real issue is that many third-party git repos aren't rebase friendly, so the default merge scripts fail. I've switched over to just maintaining monorepos instead github.com/avsm/oxmono
GitHub - avsm/oxmono: My giant OxCaml monorepo
My giant OxCaml monorepo . Contribute to avsm/oxmono development by creating an account on GitHub.
github.com
February 1, 2026 at 10:27 PM
Got my website running live on my zero-allocation (ish) OxCaml webserver! First of a series of posts on building out our planetary computing system infrastructure using the performance extensions in the Jane Street fork of OCaml. anil.recoil.org/notes/oxcaml... (and thanks @thenumb.at for tips)
My (very) fast zero-allocation webserver using OxCaml
Building httpz, a high-performance HTTP/1.1 parser with zero heap allocation using OxCaml's unboxed types, local allocations, and mutable local variables.
anil.recoil.org
February 1, 2026 at 9:54 PM
And my tax self-assessment took about 30 minutes in total. The gov.uk is brilliant!
gov.uk
January 31, 2026 at 11:41 AM
Watching @ryan.freumh.org give his unified formal calculus talk for package management to an overflowing room at #fosdem! Livestream stream.fosdem.org/k3201.m3u8 and preprint at arxiv.org/pdf/2506.10803 amok.recoil.org/system/media... amok.recoil.org/system/media...
January 31, 2026 at 11:16 AM
Reposted by Anil Madhavapeddy
In my own interregnum, but:

I’m open to new opportunities.

If you’re looking for someone who can lead teams working in AWS/serverless, Typescript or OCaml, and/or take an observability or DevOps lens to their cloud infrastructure, I’d love to chat.

I’m based in Sydney for onsite/hybrid/remote
January 26, 2026 at 6:56 AM
same with or_null, although I think I've got some dodgy unsafe_gets with overflow intersecting badly. This is all hot off the press; fun catching up with thicket.dev?group=oxcaml
OCaml Thicket
thicket.dev
January 25, 2026 at 6:44 PM
not that I can find -- all this is boxing like it's 2025 github.com/janestreet/b...
base_bigstring/src/base_bigstring.mli at master · janestreet/base_bigstring
String type based on Bigarray, for use in I/O and C-bindings - janestreet/base_bigstring
github.com
January 25, 2026 at 6:34 PM
ha just ran into that but not a big deal! I'm just trying to get an unboxed char# out of a bigstring ... github.com/avsm/httpz/b...
httpz/lib/buf_read.ml at main · avsm/httpz
Zero heap allocation HTTP server using OxCaml. v experimental! - avsm/httpz
github.com
January 25, 2026 at 6:16 PM
don't think I can stomach it ;-)
January 25, 2026 at 6:13 PM