Build

TypeScript, Python, WebGL. Research code that survives contact with real users.

Five projects

How I work

Research code has a reputation for being disposable and most of it earns that. It runs once, on one machine, to produce one figure in one paper, and then nobody can make it run again.

I write it expecting someone else to run it, including me in six months. That means the dull things: real dependency management, tests around the parts that quietly produce wrong numbers rather than crashing, and interfaces that do not assume the caller has read the paper first.

Most of my time goes on the seam between a model and everything around it. Ingestion, retrieval, serving, and the moment a spreadsheet arrives in a format nobody anticipated. That seam is where these systems actually fail, and it is rarely the part anyone budgets for.

Next practice Ship