Skip to content

Projects

Capitol Hill Coffee Guide

September 30, 2026 • 2 min read

A hand-curated guide to independent coffee shops: filterable browsing, a map, detail pages, a visit “passport” and taste-based recommendations. Built and deployed in about 48 hours: 42 commits and 233 test cases. Architecture Next.js, TypeScript, standalone build. The bundle is built and validated locally, then synced to a VPS behind nginx and systemd, so the server only needs Node. Data. Curated, researched shop data compiled into the bundle and validated by schema on every deploy, merged with live Google Places data at request time.

Read more →

Seattle Events Collector

September 28, 2026 • 2 min read

A pipeline that pulls events from 50+ Seattle venues, ticketing APIs and calendar feeds, merges the duplicates, and serves one digest as a web UI, RSS and iCal feeds, and personalized email. 63 commits from May to September 2026, over 4,700 lines of Python outside the scrapers. Architecture Scraping layer. Static HTML (BeautifulSoup, 35+ sites), JSON APIs (Ticketmaster, Bandsintown, ESPN, Luma, Eventbrite), JavaScript-heavy sites via Playwright, and iCal feeds. Every scraper returns the same Event model.

Read more →

Rewards Account Change Watcher

July 8, 2026 • 2 min read

A headless watcher that monitors a loyalty-program account, detects any change to its activity history (including edits and deletions of old rows), and alerts me on Telegram. It only reads my own account. About 900 lines of Python with 60 unit tests, built in three days. Architecture fetch, diff, alert, then persist. Each run captures the account’s data, diffs it against stored state, sends one message summarizing changes, and only then saves the new state.

Read more →