/projects

Things I've
built

Each project is its own repo and its own deploy. Some are live, some are works in progress, all of them taught me something.

2026

Ecommerce Ticket Triage Assistant

Multi-service GCP system that triages support tickets by predicted priority with a fine-tuned DistilBERT classifier. FastAPI backend on Cloud Run with Firebase auth and per-user rate limits, Cloud SQL Postgres scoped by uid, Vertex AI for training and the model registry.

GCPCloud RunFastAPIDistilBERTVertex AI
2025

LLM From Scratch

Implementing a transformer-based LLM in PyTorch from first principles, following Sebastian Raschka's Build a Large Language Model. A working understanding of every line, not just the API.

PyTorchPython
2026

Claude Orchestrate

A Claude Code skill and matching sub-agent that turn the main agent into a coordinator. Decomposes a plan into waves, spawns implementer sub-agents in isolated git worktrees, runs them in parallel where safe, and stays out of the way between checkpoints.

Claude CodeAgentsGit Worktrees
2024

Cellular Microscopy Counting

U-Net CNN for image segmentation that automates cell counting for biomedical research. Mean error of 1.4 cells, beating the 3-cell target by 2x and replacing manual counting.

PyTorchU-NetCV
2026

Wallpaper Gen

Full-stack AI wallpaper generator pairing a FastAPI backend with a React UI. Generates SDXL images, upscales with Real-ESRGAN to 4–5K, and ships with 15 device presets and a searchable gallery. WebSockets stream live progress.

SDXLFastAPIReactTypeScriptWebSockets
2026

MCP Server SVG

An MCP server that lets Claude Code screenshot SVG files in-context — pass a path, get back a rendered PNG. Closes the visual feedback loop for SVG diagramming, so Claude can see what it's drawing without leaving the terminal.

MCPTypeScriptPlaywright
2026

Screen FX

A self-contained ~95KB single-file visual playground — generative gradients, lava lamps, starfields, liquid glass — with a layerable post-FX pipeline (bloom, film grain, vignette). All state round-trips through the URL hash so any look is shareable.

WebGL2JavaScriptGLSL
2026

Campsite Crawler

Polls recreation.gov and ReserveCalifornia for campsite availability on a fixed date range and pushes a notification the instant something opens up. Both providers expose unauthenticated JSON APIs — no scraping, no token, just diff-on-poll.

Pythonntfyuv