Aron Adler

Software engineer

I've spent about ten years building software for a living: front ends, back ends, and a couple of products from an empty repo.

My favourite bugs are the ones that can't be written. I lean hard on type-driven design and making invalid states unrepresentable, which is what moved me from JavaScript to TypeScript and then on to functional programming. I've since written F#, Elm and OCaml professionally.

Elm gave me the urge to design a type system of my own. I've had a few goes since, with mixed results, and that's how I ended up learning Lean, building small languages and proving things about them in my own time. Most of the projects below came out of that.

These days I build a lot of it with coding agents. I set the architecture and make the design calls; the agents do most of the typing.

Projects

Smaller projects

inner-ear A snail-like mascot whose shell is a cochlea hears sound arrive, lifts its ear-loops, and the sound winds into its spiral.

inner-ear turns your Mac's own sound into an input any app can record from, so Screenshot (⌘⇧5) can finally capture system audio. No audio driver, and about a hundred lines of Swift. I made it for myself.

Live pair-proving

streams A live pair-proving stream in outline: two cursors take turns typing a proof, chat scrolls, two people in headphones talk, and the goal closes.

A friend and I proving theorems in Lean 4 live, with chat chipping in. The recordings are all on YouTube.