§ 01 / 05

Recent work & writing

Talks, longform posts and smaller essays from the last few years. Newest first.

Talks 04

28 May 2026

ClickHouse as an AI Safety Layer

ClickHouse OpenHouse · San Francisco
Mar 2026

AI Dashboards & Time-Travel Debugging Kubernetes

ClickHouse Observability Meetup at SRE Days London · Everyman Canary Wharf
Sep 2025

Beyond the Hype: Practical AI Applications for SRE

Big Data London
Big Data LDN 2025 — AI for Internal Observability @ ClickHouse
Sep 2025

LogHouse — the story behind ClickHouse's own logging platform

SRE Day London
May 2025

Building LogHouse

London ClickHouse Meetup
2022  ·  Go, FUSE

kubefs

Kubernetes FUSE CLI

Use the plaintext tools you already know inside out to interact with your clusters. kubefs makes your clusters available as a tree of plaintext files.

It's an argument that the Unix philosophy is still the best IDE we have, and that a filesystem is a perfectly good API.

~ / kubefs · demo
# get a pod spec, the hard way $ kubectl --context majestic-gnat \ --namespace flycatcher get po nginx-1 -oyaml ↓ becomes ↓ $ cat /tmp/kubefs/majestic-gnat/namespaces/\ flycatcher/pods/nginx-1/def.yaml # or diff two pods in emacs $ ediff …/pods/nginx-1/def.yaml \ …/pods/nginx-2/def.yaml # exec on a container $ echo "cat blah" >> \ …/pods/nginx-1/containers/nginx-ingress
2018  ·  Dissertation

Peer-to-Peer Poker

Or, how to gamble in secret casinos.

Cryptography P2P Protocol

A protocol and toolkit for playing Texas Hold 'em without a trusted authority — secret casinos, if you like.

The dissertation explores cryptographic card-dealing, the challenge of fair play among peers who don't trust each other, and the civic case for a protocol that lets people evade censorship without funding corrupt house operators.

The deliverable is a toolkit for peer-to-peer card games; Texas Hold 'em is the reference implementation demonstrating that the protocol actually works end-to-end.

2017  ·  Literate Haskell → WASM

Connect4RESTful

Connect4 with a Minmax AI, written in literate Haskell, playable in the browser.

Haskell WASM Minmax
  /$$$$$$   /$$$$$$  /$$   /$$ /$$   /$$ /$$$$$$$$  /$$$$$$  /$$$$$$$$       /$$   /$$
 /$$__  $$ /$$__  $$| $$$ | $$| $$$ | $$| $$_____/ /$$__  $$|__  $$__/      | $$  | $$
| $$  \__/| $$  \ $$| $$$$| $$| $$$$| $$| $$      | $$  \__/   | $$         | $$  | $$
| $$      | $$  | $$| $$ $$ $$| $$ $$ $$| $$$$$   | $$         | $$         | $$$$$$$$
| $$      | $$  | $$| $$  $$$$| $$  $$$$| $$__/   | $$         | $$         |_____  $$
| $$    $$| $$  | $$| $$\  $$$| $$\  $$$| $$      | $$    $$   | $$               | $$
|  $$$$$$/|  $$$$$$/| $$ \  $$| $$ \  $$| $$$$$$$$|  $$$$$$/   | $$               | $$
 \______/  \______/ |__/  \__/|__/  \__/|________/ \______/    |__/               |__/

Connect4RESTful was a project to implement Connect4 with Minmax AI written in literate Haskell. It's compiled to wasm and playable in the browser.

-- The length of a winning combo, declared as a constant
> c_win = 4

-- Boards use O, X, B — where B is 'Blank'
> data PlayerValue = O | B | X
>   deriving (Ord, Eq, Show, Generic)

> instance ToJSON   PlayerValue
> instance FromJSON PlayerValue
-- …

Read the literate source →

2013  ·  Arduino + Android

toroCam

A camera-control system for DSLR photography — unparalleled precision in microseconds.

Arduino Android PCB

toroCam puts a dedicated Arduino-compatible board between your phone and your SLR. The phone only hands over instructions; the board reacts to sensor values in microseconds — far faster than any phone-tethered rig — which unlocks the kind of precisely-timed shots you couldn't otherwise catch.

Like this droplet, frozen mid-rebound. The phone is the UI; the board is the shutter.

A droplet captured mid-rebound
Fig. 01 — test shot, 2013
toroCam custom PCB, front
Board · Rev A01 / 02
toroCam custom PCB, back
Board · Rev A02 / 02
SPEC · toroCam
MCU   ATmega328P
TRIG   3.5 mm optocoupled
SENS   laser · audio · IR
LAT     < 30 µs
UI      Android BT classic
→ github / toroCamAndroid

Tweaks ● live