Home/Blog

Notes from the
workshop.

Occasional essays on building serious web software — most of them about decisions we wish someone had warned us about. Engineering, search, design, and the unglamorous middle layer that keeps things alive in production.

May 2026 Design
May 2026Design

The 2026 redesign imperative

Your interface is the only part of the company most people ever touch. When it looks three years old, they assume the company is too — and why standing still now reads as going backwards.

8 min →
May 2026 Engineering
May 2026Engineering

LLM optimisation: making your product legible to machines

Search is no longer the only thing reading your site. How to be the answer an assistant gives, not the page it skips — and why it's an engineering problem, not copywriting.

10 min →
Apr 2026 Search
Apr 2026Search

Programmatic SEO in 2026: scale without the slop

Generating ten thousand pages has never been easier, which is exactly the problem. The technique still works — for teams willing to make every page actually answer something.

11 min →
Apr 2026 Engineering
Apr 2026Engineering

Your 2026 moat is the software nobody else can buy

Your competitors have the same SaaS stack and the same AI tools you do. The only thing they don't have is the system you built for the way you actually work.

9 min →
Mar 2026 Search
Mar 2026Search

Search that understands a hotel room

Elasticsearch is a generalist. Hospitality data isn't. How we model rate plans, occupancy and amenities so the right room shows up first — and why most search problems are really data-model problems in disguise.

12 min →
Jan 2026 Design
Jan 2026Design

Stop designing for the marketing director

Most operational software is designed for the people who buy it, not the people who use it at 3am. We argue for the night auditor, the maître d', the cleaner with three children waiting at home.

6 min →
Nov 2025 Engineering
Nov 2025Engineering

The day we stopped using ORMs

A small confession from a project that had outgrown its abstractions. What we replaced it with, what we kept, and why we now reach for hand-written SQL more often than we used to.

11 min →
Sep 2025 Operations
Sep 2025Operations

Observability for small teams

You don't need a SRE org to know what's happening in production. Five tools, two dashboards, one alerting principle. A pragmatic stack for the next eighteen months.

8 min →
Jul 2025 Hospitality
Jul 2025Hospitality

The PMS is the bottleneck

Most of the integration pain in hotel software comes from one place. Why that is, what to do about it, and a short taxonomy of which APIs are worth your time.

10 min →
May 2025 Engineering
May 2025Engineering

The case for boring infrastructure

We deploy roughly the same way we did in 2008. Postgres on a managed service, a couple of containers, a CDN in front. Here's why, and what we'd reach for first if we changed our minds.

7 min →
Mar 2025 Design
Mar 2025Design

Density is a virtue

Modern web design has slowly turned everything into a coffee-table book. A small defence of the spreadsheet, the dashboard, and the screen that respects your time.

5 min →
Jan 2025 Search
Jan 2025Search

Synonyms, locales, and other ways search lies

Three of the smallest, most painful mistakes you can make when tuning relevance — and the test harness we use to catch them before they reach production.

9 min →
— Older posts in the archive —
Stay in the loop

A few essays a year.
Nothing else.

We send out a short note when we publish something new — usually three or four times a year. No tracking, no upselling, no "thoughts on AI" unless we actually have one.