
The Talent Bar Paradox in Engineering Hiring
Many companies say they want exceptional engineers...
Articles from more than two decades of building, rebuilding, debugging, and leading web projects.
Some are practical development notes; others are longer pieces about the decisions and trade‑offs that determine whether modern web platforms hold together in production. You can also browse articles by category.

Machine‑readable websites need more than schema. They need stable pages, clean entities, useful metadata, feeds, APIs and content that survives extraction.

Converting objects to query strings is essential for handling URLs in JavaScript. Here, I explore encoding, parsing, and managing query parameters in Next.js.

Cheap engineering can shrink payroll, but it often increases rework, instability, contractor spend, supplier dependence, and total delivery cost later.

ETag and Last‑ModifiedETag and Last‑Modified drive conditional HTTP requests and 304 responses. See how precedence, weak validators, CDNs, and cache policy affect revalidation.

Best practices for managing environment variables in Next.js, so secrets stay server‑side and deployments do not freeze the wrong values at build time.

Approach production observability in Next.js with contextual logs, traces, release markers, client errors, cache signals, build visibility, and business data.

AI‑assisted delivery can increase throughput, but cutting QA, accessibility, SEO, security, and exploratory testing in response is a costly mistake.

Underpaying senior engineers can look efficient on payroll, but often costs more through weaker hiring, slower delivery, contractor spend, and retention risk.

AI agents are starting to research, compare and narrow buying choices. Websites need to serve autonomous evaluators before human visitors arrive.

AI slop is a symptom of weak incentives, not just weak tools. This article links generic output to shallow briefs, poor review, and volume‑led metrics.


Platforms can speed delivery, but cutting internal capability too far can turn efficiency into lock‑in, weak negotiating power, and expensive migrations later.

Right to Represent agreements for UK contractors, covering recruiter pressure, duplicate submissions, hybrid working changes, and safer wording before signing.

try, catch, and finallyGo beyond basic try/catch in JavaScript with finally, custom errors, async error handling, testing, user‑facing failures, and defensive‑code traps.

Slow Gatsby builds need a clear choice: optimise plugins, data, and images in place, or move to Next.js when publishing and cache limits justify it.

AI search creates visibility that is not just a ranking, click or citation. Sites need to be retrievable, quotable, attributable, and comparable by machines.

AI programmes are often adopted tactically, without enough governance for supplier risk, data exposure, quality, workforce impact, or board accountability.

Audit third‑party script cost across GTM, consent tools, analytics, experimentation, and personalisation, without breaking measurement or business workflows.

As AI reduces friction in implementation, the value of architecture, review, domain judgement, mentoring, and failure analysis rises rather than falls.

A practical Gatsby to Next.js migration checklist covering routes, data, rendering, plugins, images, redirects, preview, sitemaps, and SEO validation.

Automation can save labour, but it also creates monitoring, exception handling, vendor, governance, and security costs that many business cases ignore.