
Testing a SwiftUI app on the iPhone Duo simulator, headless
Rydger UI tests on the iPhone Duo simulator: Cancel and Save vanished, SpringBoard crash-looped, and the inner screen needed a workaround. Here are the fixes
I write about what I test outside my day job: AI coding agents, Astro, iOS apps and TypeScript. I share code, sources and what worked or failed in my projects.

Rydger UI tests on the iPhone Duo simulator: Cancel and Save vanished, SpringBoard crash-looped, and the inner screen needed a workaround. Here are the fixes
// also recent
Several Claude Code agents ran in parallel on my iOS app and maxed out a 12-core Mac. One spotted it in a crash report. Its summary had three false claims.
Anthropic and an October paper question when subagents pay off. My case: parallel agents sharing one iOS simulator. When subagents still earn their place.
How I build this site with Claude Code agents: worktrees, adversarial verifiers, a night queue and a smoke test. Plus the three-month contact form 500.
More tests with coding agents, Astro, TypeScript and iOS apps.

Rydger UI tests on the iPhone Duo simulator: Cancel and Save vanished, SpringBoard crash-looped, and the inner screen needed a workaround. Here are the fixes

Several Claude Code agents ran in parallel on my iOS app and maxed out a 12-core Mac. One spotted it in a crash report. Its summary had three false claims.

Anthropic and an October paper question when subagents pay off. My case: parallel agents sharing one iOS simulator. When subagents still earn their place.

How I build this site with Claude Code agents: worktrees, adversarial verifiers, a night queue and a smoke test. Plus the three-month contact form 500.

What spec-driven development is, where OpenSpec chafes after months of daily use, and what Anthropic, Willison and Hashimoto lean on instead of the spec

Agents write two things: code your tests run, and claims about it nobody checks. A batch where a verifier caught four bad builds, the prompt and its limits

Claude Code subagents in Rydger: Opus coordinates stories, Sonnet implements, Fable advises, with separate worktrees and shared tests across iOS and Android.

WealthSim's preset and calculator disagreed. Fixing preview inputs, early ads and a disappearing result led to My Plan, with retention still unproven.

Rydger is live on the App Store with three users. Apple's search makes new indie apps invisible until you bring your own traffic. The cold start and my move.

SwiftData's CloudKit mirroring needs defaults or optionals, no @Attribute(.unique), optional relationships with inverses, no .deny. What error 134060 means.

I expected another v6-style fight and got a pnpm up and a coffee. Vite 8, a Rust compiler, queued rendering: what changed from Astro 6 and where it bites.

Your AI agent nails the demo and collapses in production. Not the model: it's the scaffolding that watches it, corrects it, and stops it before it lies.

Fable 5 beat Opus 4.8 on my refactor, at $10/$50 per million tokens, twice Opus 4.8 per token. Plus the shutdown saga and how Sonnet 5 keeps the bill down.

Grilling, PRD, issues, conditional TDD, slim AGENTS.md: five skills in an order that keeps the agent from coding before it earns it. Built on Matt Pocock's.

Boris Cherny's job now is writing loops, not prompts: agents that prompt agents. What that means, how to build one in Claude Code today, and where it breaks.

A CLI + MCP server that configures GA4 and Search Console from YAML, and flags what to check in your SEO by impact. Deterministic: you make the calls.

Three weeks pairing Gemini Flash and Claude Code on side projects: AI writes many of my tests and I review all. What worked, what broke, what it costs.

Three checks before bumping to Astro 6: grep .slug, one content.config.ts, no .default() after .transform(). Node 22.12+ and the fix for each error.

A week with Gemini 3 Pro: Deep Think planning a sample migration, a bug diagnosed from a short video, and the agentic stuff that still needs a babysitter.

Five months on: parallel agents that pay off on boilerplate, RAM that still creeps on long sessions, and why I keep Cursor for production code. My verdict.

One-shot prompting and context placement: examples for classification, code refactoring and JSON extraction, with checks for output errors and missing data.

What Astro is and why it ships so little JS: Islands, the Content Layer API, what changed in Astro 6, and the real Next.js to Astro migration on my portfolio.

Tailwind CSS 4 rebuilt its engine in Rust and publishes its own measurements. What breaks migrating from v3, the @theme block and @tailwindcss/vite.

A strict tsconfig.json with noUncheckedIndexedAccess, plus advanced types, catches errors before production. The setup, the key types and where it annoys.

Tests pass locally but fail on Vercel? The real fix is one line: NODE_ENV in vitest.config.ts, plus CI-aware timeouts. My 4 wasted hours, condensed.
› No article matches that search.
tail -f ~/blog
Subscribe to the RSS feed for new posts. Browse my project code on GitHub, or follow what I share on LinkedIn.