Craig Ferguson

Software Engineer – currently at Monzo 🏦

  •    •    •  

Working to help secure the infrastructure on which Monzo runs.

Previously, I worked on open-source OCaml tooling and distributed storage at Tarides


Mostly discussion of OCaml design patterns and tooling:


  • Irmin, a high-performance distributed database with Git-based semantics;

  • Alcotest, a testing framework with combinators and coloured output;

  • Progress, a small library for defining and using progress bars;

  • Oskel, a skeleton-builder for modern OCaml projects;

  • Operator Lookup, an online lookup utility for OCaml operators.

  • ... see my GitHub profile.


  • 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.