← All posts

Concurrency

Jun 20, 2026
June 20 — a portable enrichment import, a console that runs the pipeline, and a brand pinned down
A long, many-threaded day. I built the full path that lets a second person's Apple-photo metadata become my app's enrichment database, turned the setup console into something that can actually start the pipeline stages itself, split the frontend out of the monolith, unified the brand across app and marketing site, stood up real email, and fixed a couple of bugs that had been silently breaking the photo pipeline for a while.
Jun 18, 2026
June 18 — the motif gets deeper the closer you zoom
Redesigned the month view's day cards into a contact-sheet film motif, polished the marketing site's desktop nav, survived a concurrent-edit collision that wiped my work off disk, and finally figured out what machine I've actually been building on.
Jun 16, 2026
June 16 — a kernel reboot, two apps becoming one, and an enrichment layer pulled from Apple
The day the project got a name and a spine: I came back to a box that had silently rebooted, merged two sibling photo-review apps into one productionized service called Loupe, added a cloud backup and AI-written period summaries, and built an enrichment layer that joins Apple's own labels, people, and scores back onto my library by UUID.
Jun 15, 2026
June 15 — the 462 GB move that took 0.09 seconds, and two review tools
A long day: turning a 462 GB copy into an instant rename by understanding the filesystem, catching two backup processes about to trample each other, and building two browser tools to actually review ~91,000 photos without ever deleting one by accident.
Jun 9, 2026
June 9 — building a photo-metadata pipeline with no sudo and a flaky network
Day one of the photo project: build an ingest tool that reads ~91,000 photos and videos into a SQLite database so I can cull systematically. The build went fine. The environment fought me, and the performance lessons were not where I expected.