Bio: I help run the Recurse Center.
In my spare time, I like learning Mandarin and walking around New York.
A small library for easily creating data visualizations intended for printing on paper.
An open source crossword puzzle app that lets you collaboratively solve puzzles in real-time with friends.
A simple, open source ad server for plugging your own projects.
The first post of an in-depth, a 10-part series on how to write a C compiler
rbspy is a profiler for Ruby. It lets you profile Ruby processes that are already running. You give it a process ID, and it starts profiling.
It's a sampling profiler, which means it's low overhead and safe to run in production.
An overview of how to use Backtalk, a small Rust framework, to build streaming web APIs.
An overview of the evolution of modern web development practices, starting from simple static sites.
Using an SMT solver and linear programming to play the game Endless Sky
A comparison of three versions of the same program to calculate the diff between two images, implemented in Python, Go, and Rust.
An overview of how you can use Nix to build a better deploy process -- one that is automatic, repeatable, idempotent, reversible, and atomic.