Home / Blog

Blog

Your blog category

Documentation discipline: from README to runbook

Who writes docs, when, and how do they stay current? The approaches that stuck across 10 projects.

Blog 6 min

Web font loading: FOUT, FOIT, and getting font-display right

Custom fonts are the default on modern sites. Picking between FOUT and FOIT, the font-display trade-off, and preload strategy.

Blog 6 min

API response caching: ETag, Last-Modified, and when to build your own

Caching API responses saves latency and bandwidth, but botch invalidation and you ship stale data. Notes from three projects.

Blog 6 min

BGTaskScheduler in the wild: what actually works in production

Background work on iOS is rationed but possible. What I've actually shipped with BGTaskScheduler, BGAppRefreshTask, and BGProcessingTask in production apps.

Blog 6 min

Tenant onboarding automation: going from manual to API-driven

In the early months of a multi-tenant SaaS, every new customer gets onboarded by hand. At 50 customers it's a bottleneck. How…

Blog 6 min

Getting a new engineer productive in two weeks, not two months

On a team without documented onboarding, a new developer is still barely productive after two months. The six-step process that gets it…

Blog 6 min

Critical CSS extraction: how it actually works in production

Inlining above-the-fold CSS shaves hundreds of milliseconds off FCP. Critical CSS extraction tools, build pipeline integration, and how to handle dynamic pages.

Blog 6 min

Face ID and Touch ID: using LocalAuthentication the right way

Biometric auth is a premium feature on iOS. LocalAuthentication has a clean API, but using it wrong puts user security at risk.…

Blog 6 min

Real-time vs eventual consistency: how it actually shows up in UX

Eventual consistency is unavoidable in a distributed system, but how it surfaces to users is a choice. Read-your-writes, session consistency, and optimistic…

Blog 5 min

How to write an incident postmortem that actually changes your system

A postmortem isn't paperwork, it's a learning tool. How to structure a good one, what questions to ask, how to keep the…

Blog 6 min

Lazy loading: when native beats IntersectionObserver, and when it doesn’t

Is native loading=lazy enough in modern browsers, or do you still need a custom IntersectionObserver implementation? A practical comparison from three projects.

Blog 5 min

Webhook vs polling: the real trade-offs and the hybrid that actually works

Arguing webhook versus polling is asking the wrong question. When is each the right fit, and when do you need to run…

Blog 5 min