Over the years, I've built and contributed to quite a few open source software. Here are some of the projects I'm most proud of.
- decoders — Elegant data validation library for TypeScript, designed around composability. Predates Zod etc by years, still actively maintained, with a much smaller footprint and an emphasis on beautiful human-readable error messages
- itertools — Python's
itertoolsandmore-itertools, brought to JavaScript - git-toolbelt — a collection of Git commands I use every day
- @liveblocks/client — the core Liveblocks client library
- @liveblocks/react — React bindings for Liveblocks
- @liveblocks/server — the Liveblocks room server
- Finite state machine library — a general-purpose finite state machine library in TypeScript, designed to be simple and flexible. It powers the connection lifecycle states within the Liveblocks client, but it's not specific to Liveblocks
- Liveblocks CLI — scaffolding and managing Liveblocks projects
- Liveblocks DevTools — browser extension for inspecting multiplayer state
- Zen Router — an opinionated routing library
- mysql-simulator — simulates MySQL DDL state to power code generation
- gitflow — the Git branching model (now maintained by Tower)
- rq — simple Python job queue (now maintained by the RQ community)
- pip-tools — sane Python dependency management (now maintained by the Jazzband community)
Academic work
I have a bachelor's and a master's degree in Computer Science from Radboud University in Nijmegen.
My bachelor's thesis, The Power of Wobbly Types (2006), explored type inference in Haskell — specifically how the compiler uses "wobbly" types to provide better error messages when dealing with GADTs.
My master's thesis focused on domain-specific languages and code generation. Looking back, it fits a pattern. The interest in language design, tool building, and the developer experience were there from the start.