WeMu
A UWB-based theremin for two pairs of performers. Instead of hand-to-antenna distance, the instrument is the distance between people.
Read →Essays and notes
A UWB-based theremin for two pairs of performers. Instead of hand-to-antenna distance, the instrument is the distance between people.
Read →A touch-sensitive sailing instrument built on a model boat: five copper tape regions, an ESP32, and a lot of calibration. Each part of the boat controls a different layer of sailing sound—sail flutter, line tension, wind, hull, wake.
Read →A generative animation on an ESP32 TTGO T-Display modeling a team-racing upwind passback: three boats, dirty air, and how a small change in heading controls the whole configuration.
Read →Even now, getting from "blank laptop" to "working system" is way harder than it should be. Here I talk about the practical knowledge CS students accumulate over years and how tooling still assumes you already know what you're doing.
Read →Version control assumes a human writing deterministic code. That breaks down fast once agents start generating, editing, and refactoring constantly. Current tools feel wrong for agentic workflows and here I believe there are better primitives.
Read →A case for messy, duct-taped projects. Some of the most useful things I've built were objectively a mess—but they taught me how APIs break, how systems fail, and how fast you can learn when you don't overthink structure too early. Clean code is nice. Learning fast is nicer.
Read →A paper on the evolution of Uniswap from V1 through V4 — the constant-product AMM, concentrated liquidity, and the hook-based architecture that turned it into a programmable protocol layer. Written for Science of Blockchains with David Chang, Xincheng Zhang, and Nathan Wangidjaja.
Read →