Side Projects

Building in public. Exploring AI tooling, developer experience, and whatever catches my interest.

Fighting With AI

A catalog of failure modes, patterns, and hard-won lessons for working with AI. Built with Astro and the sailkit component library.

AstroTypeScriptAI/ML

Surf Deeper

Open-source surf education platform with interactive maps, forecasts, and learning resources. Built while learning to surf—and learning AI.

AstroMapsEducation

Surfing Game

Canvas-based wave physics simulation exploring realistic water dynamics and surfing mechanics.

CanvasWebGLPhysics

Bearing

Git worktree management CLI for parallel AI-assisted development. Enables multiple Claude sessions to work on isolated branches simultaneously.

CLIGitDeveloper Tools

Sailkit

Component library for Astro sites including compass (search), teleport (vim mode), lantern (theme toggle), atlas (magic links), and lighthouse (404 pages).

AstroComponentsTypeScript

LeetDreamer

What if algorithm explanations didn't put you to sleep? Pipeline that generates narrated algorithm visualization videos—because watching a robot explain Two Pointers in 37 seconds beats staring at code for 3 hours.

PythonVideoAlgorithms

LeetDeeper

Learning algorithms in public. Staying sharp in the age of AI coding when everyone's gonna default to not thinking. Curated submodules from NeetCode, Labuladong's algorithm book, and community solutions—complete with notes, workflows, and test runners.

AlgorithmsPythonLearning