Projects
Things I've built recently. Each one links to a live site or a full
write‑up.
ThruTrack
2026 · Local-first desktop app · Solo project
A desktop app for thru-hikers. After 2,600+ miles on the Continental
Divide Trail, my GPS tracks, phone photos and satellite check-ins
were in different places, on different clocks, with no single view
of what actually happened on a given day. ThruTrack brings them
together: import a day's GPX track, drop in the photos, and
everything lands on a shared map and timeline automatically.
Everything is stored in a local SQLite database. There's no account
and no cloud, so every trip, photo and journal entry stays on your
own machine.
-
Reconciles camera and GPS clocks with custom EXIF and time-zone
logic, and catches photos imported onto the wrong day and suggests
the right one
-
Interpolates a photo's position from the GPS track when the photo
has no location of its own
-
Groups multi-day trips by state automatically, and treats a hike
that follows a state line for a week as one stretch instead of
flipping between groups day to day
-
Clusters busy days on the timeline, and migrated 114 real trail
days from an earlier personal project into ThruTrack's own schema
instaGallery
2026 · Self-hosted web app · Personal project
A private, self-hosted archive for my 1000+ saved Instagram posts.
It copies the images, video and captions onto my own computer and
gives me a fast, searchable gallery for sorting them. It's a private
tool with no public URL, so the write-up is here instead.
-
Ingest pipeline that downloads the real media and captions, which
Instagram's official export leaves out
-
Two-level categories with an editable keyword auto-tagger that
won't re-add tags I've removed by hand
-
Runs entirely on my Mac. My iPad reaches it over a private
Tailscale network.
CDT Data Vis
2025-2026 · full-stack web app · solo project
This was essentially ThruTrack v1
The journal I kept on my 2024 Continental Divide Trail thru-hike was
spread across a notebook app, CalTopo track exports, Garmin
check-ins and thousands of phone photos. CDT Journal brings them
together in one password-protected app. Each day on trail links its
journal entry, GPS segment, campsite, messages and photos, and you
can browse by map, calendar, list or photo album.
-
An interactive D3.js map of all five CDT states. It shows each
day's trail segment, campsites, Garmin message pins and geotagged
photos, and you can zoom in on any day straight from the map.
-
Elevation contour lines built from DEM raster data by a Python
script, drawn under the trail as a topographic layer.
-
Photo clusters on the map with leader lines that stay anchored
when you pan, plus keyboard navigation that steps through photos
and moves the map to follow.
-
Daily entry pages with a mini-map of that day's route, full create
and edit, and a searchable, paginated list view.
-
Raw SQL against Postgres with no ORM, Server Actions validated
with Zod, and NextAuth for login.
Earlier work
The first three were built while I was an astrophysicist and data
technician at the Center for Astrophysics in Cambridge, MA, from 2011
to 2015. Pack Weight and Developer's Toolbox were class projects in
2015.
-
D3 · JavaScript · PHP · Databases
A tool for visualizing time allocations during the Chandra Space
Telescope's yearly peer review, used by the meeting's organizers.
-
D3 · JavaScript
A visualization of the first 15 years of proposals approved for the
Chandra Space Telescope.
-
Chandra Data Tables
jQuery
A better way to list all of Chandra's observed targets.
-
Pack Weight
JavaScript · jQuery · DataTables · Responsive design
A backpacking gear calculator. Enter the weight of each item across
five categories (the "big three," clothing, kitchen, health and
hygiene, and extras) to see category totals and the whole pack's
weight in pounds or kilograms, plus a sortable list of everything
packed.
-
Developer's Toolbox
Laravel · PHP
A Laravel app with tools for web developers: a lorem ipsum text
generator, a random user generator for seeding test databases, an
XKCD-style password generator (with a Mad Max: Fury Road edition),
and an .htpasswd generator for password-protecting directories on
an Apache server. I've rebuilt the two password tools to run in the
browser, with their security issues fixed.
More on GitHub.