Home / Blog

Blog

Your blog category

Remote-first teams: the async discipline that actually works

As a freelancer I've worked with a lot of remote teams. Some had async figured out, others wanted everything synchronous. Here's what…

Blog 4 min

JavaScript bundle splitting: when dynamic import actually pays off

Splitting the bundle is the universal advice, but it doesn't help in every situation. With real measurements, when it's actually worth it.

Blog 4 min

Multi-currency WooCommerce: skip the plugin, write the code

Instead of paying $70 for a plugin and inheriting messy behaviour, I wrote a tight implementation for the requirement. What I built…

Blog 4 min

Server-Sent Events vs WebSocket: when SSE is the smarter pick

WebSocket gets the hype but it's overkill for a lot of real-time scenarios. When SSE is the better fit, with examples from…

Blog 3 min

iOS Camera and Photos: the permission flow that ships

Asking for camera and photo permissions the wrong way gets your app rejected or chases users away. The flow that works, and…

Blog 4 min

Retry and idempotency for long-running jobs: the strategy that holds up

One email went out twice. One payment was charged twice. What happens when retry design skips idempotency, and how I fixed it.

Blog 4 min

CI/CD pipeline from 20 minutes to 4: the exact moves

I brought a team's build time down from 20 minutes to 4. Which optimisation bought which minutes, in detail.

Blog 4 min

Third-party script performance: what Tag Manager actually costs you

Google Tag Manager, ads pixels, chat widgets. All of them arrive with a "we're fast" pitch. The performance metrics tell a different…

Blog 3 min

ACF Pro done right: flexible content and clone fields without wrecking the editor

Flexible content and clone fields are two of ACF Pro's strongest features, and two of the easiest to misuse. Here is how…

Blog 4 min

Batch vs streaming API endpoints: picking the right one for the client

Send one giant batch or stream the chunks? I've shipped both in production. Here are the factors that decide it.

Blog 3 min

MapKit, Google Maps, Mapbox on iOS: which one and when

I've shipped all three map SDKs on separate projects. Here is where each one earns its keep and where each one falls…

Blog 3 min

Stateless backends don’t remove state, they move it somewhere more expensive

Stateless design doesn't solve every problem, and it invents a few new ones. Here is what I've actually hit in production, and…

Blog 3 min