I currently work on the video player at Tubi. I spent two years before that working on 🎥a browser-based multitrack video editor. I've gone fairly deep with video and audio in the browser. I often practice TDD, hold myself to a high standard of quality and readability, and spend a lot of time thinking about how tests can inform design.
Much of my recent and most interesting output is closed-source, but here are some assorted projects which I can share:
- callback-batcher is a small library for isomorphic rate-limiting of events; won 2nd place at tubitv.com 2023 company hackathon (
typescript,vitest; on NPM here) - gcull is a small, well-tested CLI tool for interactively deleting merged and stale local git branches (
typescript,vitest; on NPM here) - gchk is a small, well-tested CLI tool for interactively checking out git branches (
typescript,vitest; on NPM here) - prettier-inittier is a one-liner that installs and configures Prettier (
node,vitest; on NPM here)
- krnsk0.dev is my infrequently-updated dev blog (
astro, deployed here) - planetfall is a browser game with a complex data model built to explore some possibilities and constraints around
mobxandmobx-keystone(deployed here)
- guser is a small, well-tested CLI tool for git user switching (Node, shelljs; on NPM here)
- ng-draw is a canvas-based shape-drawing toy built to learn HTML canvas and Angular (deployed here)
- sort_buddy visualizes sorting algorithms commonly taught in intro algorithms courses (
react/redux; deployed here) - snek_io is a multiplayer websocket game built for a hackathon (no client framework,
expressandsocket.iobackend; deployed here) - pixalive is a multiplayer editor for animated pixel art built by a small team for a hackathon (
react, HTML5 canvas,node,postgres; deployed here; desktop only!)
Most of my writing for the last several years is in private RFCs and ADRs; here are some blog posts:
- A Thorough Introduction to Git's Interactive Patch Mode
- Solving Every Skyscraper Puzzle, parts one and two




