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-line command that installs and configures Prettier in a repository (
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
mobx
andmobx-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,
express
andsocket.io
backend; 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