Build LogLearning
#166
2026-06-295 min read

Before the first word: three architecture decisions in an 8-chapter GSC and GA4 course

An 8-chapter guide to Google Search Console and GA4 automation forced three architecture decisions before any writing started: a throwaway GCP project per reader, Steps components over prose, and inline chapter links from day one. I made the first two immediately. The third I retrofitted.

Read post→
SwiftUIiOS
#167
2026-06-295 min read

Calendar → Day → Back Landed on Accounts. The Stack Was Correct; the Model Wasn't.

A8 in the round-2 device QA pass: tapping Back from the day view skipped the full-screen calendar and landed on Accounts. The NavigationStack had done nothing wrong. The navigation model had no concept of levels.

Read post→
SEOBuild Log
#168
2026-06-296 min read

My canonical tags were deindexing my own articles. GA4 had been right all along.

GA4 showed 2 events per seven days across a site with 70+ articles. The first instinct was broken tracking. The real cause was canonical tags instructing Google to ignore the pages meant to rank — a discovery collapse that looks identical to a measurement failure until GSC gives it away.

Read post→
Build LogPrivacy
#169
2026-06-296 min read

The privacy policy was correct. The article body wasn't.

A production audit found the macOS username in a published plist example and private project names on two public pages. Neither would have been caught by a policy document. The fix was a pre-commit hook and an aggregation change — pipeline enforcement that runs whether the author remembers or not.

Read post→
Build LogDVLAW
#170
2026-06-285 min read

Five Phase B fixes in 48 hours. They were all patching the same missing type.

Twenty percent autonomous success across five scheduled slots. The same breach shape surfacing twice from different audit trails. Five fixes shipped in 48 hours — and when the sixth investigation opened, the pattern became unmistakable: the slot had never been an entity.

Read post→