I build software end to end.

I'm Scott Mallinson, a software engineer at Travelport in Barcelona, fifteen years in. I write about API design, type systems, guardrails for AI features, and the maintenance that keeps a codebase navigable.

Recent writing 2026

A passing test that never saw the page

The tests for a desktop app's auto-scrolling passed the whole time the scrolling was broken: jsdom has no layout engine, so every height it reports is zero.

Engineering · 4 min read

Four boundaries an AI assistant's guardrails have to cover

Validating user input is the most familiar guardrail and the smallest part of the problem. The model's own output, what it hands to tools, and what gets rendered afterwards all need the same fail-closed treatment.

Engineering · 4 min read

What a promotion actually asserts

For an AI feature with guardrails, releasing it carefully requires two disciplines: coordinating multi-service promotions with evidence at each step, and keeping the validation environment faithful enough that human feedback can be trusted.

Engineering · 4 min read

What AI features force you to specify

When you add an AI layer to a retrieval feature, data decisions that developers used to make by instinct become explicit contract requirements. Live demos are often the first place you find out which ones are missing.

Engineering · 4 min read

An agent that plans feature flag removals, and the rule that keeps it safe

An agent that plans feature flag removals is useful. The rule about which flags it may never touch is what makes it safe to leave running, and what let the job move to the person who actually wants it done.

Engineering · 4 min read

What reviewing acceptance criteria for a booking flow turned up

Reviewing acceptance criteria for a booking flow turned up a lineage question, an undefined 'stale' and a product overlap before any code was written, and one shared assumption that got through anyway.

Engineering · 6 min read
Older posts →