Craig Ferguson

Open-source software developer at Tarides. ⛵

Working on OCaml open-source tooling and distributed storage.

Living in Paris, under the careful supervision of those who can speak French.


  • Irmin, a high-performance distributed database with Git-based semantics;
  • Alcotest, a testing framework with combinators and coloured output;
  • Repr, run-time representations of OCaml types;
  • Progress, a small library for defining and using progress bars;
  • Brands, tiny library for lightweight higher-kinded polymorphism in OCaml;
  • Oskel, a skeleton-builder for modern OCaml projects;
  • ... see my GitHub profile.


Mostly discussion of OCaml design patterns and tooling:


  • CausalRPC, in which I discuss the design trade-offs of creating a type-safe RPC framework using Git-based semantics. Given at the OCaml workshop at ICFP 2019 (23rd August). Recording of the talk forthcoming.
  • Particle Swarm Optimisation, in which I give a brief introduction to swarm intelligence and its practical applications. Presented to my fellow Churchill Computer Scientists during my degree.