← Writing
Rescuing and stabilizing mobile apps
Taking over inherited or stalled apps: stabilizing before a rewrite, store rejections, ad and release problems, and testing that catches regressions.
- The App-Rescue PlaybookGoogle Play Target API Level Requirement: A Checklist for an App Nobody Has TouchedWhat Play Help requires, what changes when you raise targetSdk to 36, and the order that keeps a neglected app shippable.October 22, 2026 · 6 min read
- Working With AI AgentsDon't Trust an Agent That Says the Tests PassedAn agent's report is a claim. The setup I run only accepts evidence a machine or a second agent can check, and the cases where that caught something are on the page.October 21, 2026 · 9 min read
- The App-Rescue PlaybookLive Users, Zero Ad RequestsAn ad-supported app with its ads switched off does not crash. It just earns nothing, and in my case every release check passed. Three cases from my own apps, and how to tell them apart.October 13, 2026 · 7 min read
- The App-Rescue PlaybookYour App Should Still Be Yours When the Developer LeavesMost handovers get the code across. The things that decide whether someone else can ship next week are the history, the keys, and whose name is on the accounts.September 24, 2026 · 7 min read
- The App-Rescue PlaybookThe Agent Taps the Phone. Nothing Touches the Mac.Writing code stopped being the expensive half; verifying it started. On iOS the last mile is a real device — and unlike Android, the platform does not simply let you in. Here is what it takes, and what it catches.September 9, 2026 · 9 min read
- The App-Rescue PlaybookA Correct Fix That Quietly Broke the Feature Next to ItThe dangerous bugs aren't in the code you're editing. They're in the code you're not looking at — the feature that still compiles, still passes its own screen, and silently does less than it did last week.August 15, 2026 · 5 min read
- The App-Rescue PlaybookYour Crash-Free Rate Is 99.5% and Users Still Say the App Is BrokenCrash-free sessions measures the one failure class users forgive. The ones they churn over — the queue that wedges, the race that loses a write, the row that quietly stops matching — never raise an exception at all.August 12, 2026 · 9 min read
- The App-Rescue PlaybookYour App Hasn't Shipped in a Year. The Problem Usually Isn't the Code.A frozen app isn't a stable one. It's decaying against store policy, OS behaviour, and credentials that expire on their own schedule — and the thing blocking the release is almost never the code.August 5, 2026 · 9 min read
- Android ReliabilityYou Cannot Test Android on Every Phone. Here's What to Prove.The device matrix is unbounded and it changes under you weekly. What you need instead: proof on representative devices, honest telemetry, and fallbacks that fail loudly.July 29, 2026 · 8 min read
- App Store ReviewApp Store Rejection for Requiring WhatsApp: Fixing Guideline 4.2.3(i)The rejection, the fix that wasn't enough, and the first-launch change that finally cleared Apple's minimum-functionality bar.July 22, 2026 · 7 min read
- The App-Rescue PlaybookHow to Know an Android App Audit Actually Found NothingA clean bug report is only good news if the process behind it was built to draw blood. Three bugs, one phantom, and the four questions that separate a real audit from theater.July 10, 2026 · 7 min read