You're the Oldies!
A static music comparison site that pairs a song from the four years before high school graduation with a song of the same age today.
Projects
My best learning happens when I work on a real question. These projects cover personal analytics, platform utilities, data collection, visualization, and small applications.
A static music comparison site that pairs a song from the four years before high school graduation with a song of the same age today.
A Linux Mint screen zoom, annotation, and image snip utility inspired by Microsoft Sysinternals ZoomIt.
A terminal Wordle clone with persistent statistics, non-repeating answers, and frequency-weighted word selection.
A dependency-free local Ollama chat interface with a browser UI and a quick-access Cinnamon panel applet.
A self-hosted home for practical dashboards and personal data products, backed by a Python API and a modern responsive frontend.
A mobile-friendly OCR workflow that turns Apple Workout screenshots into reviewed swimming records.
A scheduled scraper that turns the Dakota Jazz Club event calendar into structured, downloadable event data.
A Python utility that inspects Tableau workbooks and calculates a configurable complexity score.
A daily mortgage-rate collection pipeline and dashboard built to understand market movement while buying a home.
A small documentation site with everything a caregiver needs to know while looking after Finn.
A personal training log for exploring workout trends, stroke mix, pace, distance, and long-term swimming progress.
The first generation of this portfolio, built with Hugo and maintained from 2022 through 2026.
An end-to-end Raspberry Pi pipeline collecting minute-level temperature and humidity readings.
A Flask application that estimated the cost of a three-stone engagement ring from local jeweler data.
A Tableau visualization tracking the Minnesota Twins as they raced toward the 2019 MLB home-run record.
A geospatial method for estimating truck freight rates from relationships among known transportation lanes.