80% test coverage: signal, target, or theater?
The 80% coverage target is treated as industry gospel. I've shipped projects at 95% and at 30% and can tell you the…
preload, prefetch, preconnect: three hints that solve three different problems
Used right, resource hints make a page faster. Used wrong, they do the opposite. Here is how I tell the three hints…
Headless WordPress with Next.js: picking between WPGraphQL and the REST API
Choosing your data layer for a headless WordPress + Next.js site is a high-leverage decision. Here is how WPGraphQL and the WP…
API deprecation without burning your consumers: a 6-month playbook
Moving an API from v1 to v2 is more than a URL change. Here is how to shape a six-month deprecation cycle:…
iOS onboarding that actually moves retention: what 12 apps taught me
The first five seconds decide an app's fate. Here are the onboarding patterns I've A/B tested across 12 apps, and which decisions…
Multi-tenant data export and erasure: shipping GDPR without leaking tenants
Users have the right to export and delete their data. Here is how to design that in a multi-tenant system without leaking…
Test pyramid: the real split between unit, integration, and E2E
The classic 70/20/10 test pyramid advice doesn't always hold on real projects. Practical splits from three projects.
Service Worker caching: shipping an offline-first web app
Building a web app that keeps working when the network dies is a modern web superpower. Cache strategies, precaching, runtime cache, update…
Headless WordPress migration: the path to a 35% speed lift
A six-month migration from traditional WP to headless (WP backend plus Next.js frontend). How much speed, how much complexity?
API error responses: Problem Details (RFC 7807) in practice
Every API invents its own error format and client devs keep rewriting parsers. RFC 7807 Problem Details is the standard fix. What…
SwiftUI Preview: productivity multiplier or comfortable illusion?
SwiftUI Preview speeds up design iteration but can hand you false confidence. Notes on how I use it across 12 apps.
Audit log architecture: building an immutable trail that holds up
Audit logs are mandatory for regulation, security, and forensics. Production notes on append-only storage, tamper detection, retention policy, and search performance.