Shadowfetch

Journal

Writing from an independent software studio, on the five subjects it actually works in.

73 pieces to

The current desk publishes four technology columns each day. New work appears from the live publication feed; the curated collection and complete dated archive remain below.

Current desk

Latest from the Journal

Four technology columns each day

Loading the current publication feed…

The oldest writing in the archive is a run of first-person notes on building and shipping small software - the closest thing here to the studio talking about its own work. A newest-first list buries them under two months of later pieces, so they are collected here instead, in the order they were written.

The Smartest Feature is an Off Switch

The angriest support email I ever received wasn't about a crash or a missing feature. It was about an app that was trying too hard to be helpful, and the…

Your Best Feature is Your Privacy Policy

I got an email last week that wasn't a bug report or a feature request. It was a thank you note. For a sentence in a privacy policy. That told me more…

My Most Valuable File Isn't Code

I spent four hours last Tuesday hunting a bug I wrote myself. The real crime wasn't the bug, it was the amnesia. I stared at a block of code, knew my…

The Work Between the Work

I woke up yesterday to three emails with the same subject line: 'App Gone?' A quick check confirmed it. Numsy Pro, Focus Freeze, and MockupKit—three paid…

The Student Who Pays the Tutor

A few years back, I shipped a little flashcard app called SnapDecks. The idea was simple: take a picture of a page of notes, and it would turn the text…

The Mac Mini at the End of the World

I have this old Mac mini that just runs one thing: a script that pings a server in Taiwan. It’s not for uptime. The script measures the round-trip time…

The Scar Tissue is the Brand

My phone buzzed at 3:14 AM last Tuesday with the distinct, flat vibration of a critical crash alert. It wasn’t a elegant system notification; it was the…

The high cost of clean data

I spent three hours yesterday manually deleting duplicate database rows because a background migration got interrupted by an App Store update. There was…

The Button After the Permission Sheet

The thing I kept staring at this morning was not the AI code, or the App Store review queue, or the new iOS beta note that somehow says less than the bug…

The Cost of AI Code Verification

It’s 6 AM. The cursor blinks. Another feature, another API endpoint to integrate. The usual grind. Lately, though, there’s a new variable in the equation…

The First Question the Machine Asks

The installer stopped on the keyboard screen again. Not the disk screen. Not the network screen. The keyboard. A plain list, a highlighted default, one…

The Changelog Is a Lie Detector

The cursor is sitting in the release notes field, doing what cursors do best: accusing me. The build is already archived. The screenshots are in the right…

The Package That Would Not Leave

There is a particular kind of quiet that happens around an old dependency. Not dramatic quiet. No siren from monitoring, no customer email with a subject…

small ships and big waves

today we pushed a tiny fix that most folks will never notice. a little smoother scroll in one of the mac apps, a quieter default in umbra when you first…

the small ship that stuck

woke up early with that familiar itch to nudge one tiny thing live before the day got loud. just a quiet tweak to how our little note-taking app handles…

All 73 pieces

Everything in the archive, newest first. Each piece opens at its original address.

July 202656 pieces

June 20262 pieces

May 202615 pieces

These 73 pieces are the tech-adjacent subset of a larger archive. The rest of it, and every piece linked from this page, is still published at its original address on the previous Shadowfetch site: the full archive.