Ejaz AhmedCTO

Engineering notes

Notes from the layers in between.

Writing about problems that cross boundaries — the ones where the answer isn't in any single system's documentation. Nothing is published yet; this is the plan, in order of how often the problem comes up.

Draft · first note

Why a WordPress problem is sometimes not a WordPress problem

The ticket says the page is wrong. Someone has already opened the theme. Someone else is disabling plugins. Both are reasonable moves, and both assume the application produced what the browser received.

Often it didn't. Between WordPress and the visitor there is a cache, a reverse proxy, an edge network with its own rules, and a browser holding a copy of yesterday's HTML. Any of them can serve a response WordPress would never generate right now — which is why the same URL can be broken for one person, fine for another, and fine again for the first person an hour later.

The cheapest thing you can do before touching code is establish which layer produced the bytes. Request the URL with the cache bypassed. Compare response headers. Check whether the edge is varying on a cookie, a country, or a device class nobody remembered configuring.

If the response changes when you change the path it took, the bug is not in the theme.

Also in the queue

Seven more, not yet written.

02Drafting

How CDN caching can make correct code look broken

Cache variants, cookies and geo rules producing responses your application never generated.

03Outline

When should you remove WordPress from the frontend?

A decision framework rather than an ideology — where the CMS earns its runtime cost and where it doesn’t.

04Outline

Static HTML vs React vs WordPress

Comparing them by the constraint that actually decides it: who edits this, how often, and at what scale.

05Planned

Why hreflang implementations fail

Nearly always because the URL model was never settled before the tags were generated.

06Planned

Debugging a request across Cloudflare, CDN, Apache and WordPress

One request, every hop, and the headers that tell you which layer made the decision.

07Planned

Consent management is an architecture problem

Why a banner can be configured correctly while the tag layer still behaves illegally.

08Planned

How to modernize legacy websites without rewriting everything

Incremental strategies that keep the business running while the architecture changes underneath it.

Want one of these written first?

Tell me which problem you're living with and I'll start there.

Get in touch