Personal Projects
Most of my client work is under NDA so here's a sampling of side projects.
Forgekeeper (a chess-like game)
Had some free time before starting a new job so I took part in a game jam. Didn't win anything, but I'm happy with how it turned out. And I learned some new algorithms and ways to improve their performance.
Technologies: React Router, Tailwind, Minimax with alpha-beta pruningPhoto sharing app
An app with six new prompts every day. Users pick at least one (up to all six) prompts then take a photo that matches those prompts. Photos can be shared publicly, among friends, or kept private.
Technologies: Docker, Postgres, Drizzle, Zod, Next.js, React, React Query, Typescript, TailwindTravel blog
A configurable blogging platform I built to document a road trip. Posts are written and stored in markdown files. To improve performance, it uses Next.js to generate all the pages at compile-time; the server just serves static html.
Technologies: Vercel (CI/CD), Next.js, React, Typescript, TailwindNumber game
Basically the number game from the TV show Countdown but infinite and with three difficulty levels.
Technologies: React, ReduxInstallable, offline list app
I built this progressive web app years ago to use as a shopping list app, and I still use it for that to this day.
Technologies: PWA, React, Typescript, ReduxRobot game demo
A game I made during a sabbatical. It's built on top of a custom React- and SVG-based engine. It was a good excuse to mess around with the Web Audio API, SVGs, ECS architecture, and behavior trees.
Technologies: React, Typescript, Web Audio API, SVG filters and animation