Engineering insights
Positions, trade-offs and design guidance
Technical writing from the engineers who build the systems. No vendor pitches: what we think, why, and when the opposite choice is right.
AI Engineering
29 Sept 2026 · 4 min read
Why most AI prototypes fail in production
A prototype proves that a model can produce a good answer once. Production requires a system that produces acceptable answers every time, at a known cost, on data nobody curated. The gap between the two is engineering, not model quality.
AI Engineering
22 Sept 2026 · 4 min read
RAG vs fine-tuning: choosing how a model learns your domain
Retrieval gives a model facts at request time; fine-tuning changes how it behaves. Treating them as competitors leads to the wrong architecture, because they solve different problems.
AI Engineering
15 Sept 2026 · 5 min read
Designing reliable AI agents
An agent is a model in a loop with tools, and every property that makes it useful also makes it hard to trust. Reliability comes from the harness around the model: bounded loops, idempotent tools, managed context and evaluation of whole trajectories.
Architecture
8 Sept 2026 · 5 min read
Building scalable event-driven architectures
Event-driven systems scale well and fail in specific, predictable ways: lost events from dual writes, duplicates, reordering and schema drift. This guide covers the mechanisms that address each one and the cases where a synchronous call is the better design.
Architecture
1 Sept 2026 · 4 min read
Microservices vs modular monoliths
Microservices solve organisational and scaling problems at the price of a distributed system. A modular monolith keeps most of the design benefit without that price, and is our default starting point until a specific pressure justifies extraction.
Cloud & Infrastructure
25 Aug 2026 · 4 min read
When Kubernetes is actually necessary
Kubernetes is a platform for building platforms, and its operational cost is real even when the control plane is managed. For many workloads a container service such as ECS on Fargate, Cloud Run or Azure Container Apps is the better engineering decision.
Security
18 Aug 2026 · 5 min read
Designing secure APIs
Most serious API breaches come from authorisation logic, not broken cryptography. This guide covers object-level authorisation, token design, input validation, rate limiting and service-to-service trust, and where each control belongs.
Cloud & Infrastructure
11 Aug 2026 · 5 min read
Cloud cost optimisation as an engineering discipline
Cloud spend is an output of architecture and operating decisions, not a finance problem to be solved once a quarter. We treat it like latency: measured per unit of work, owned by the team that causes it, and budgeted in design.
FinTech
4 Aug 2026 · 5 min read
Building high-performance fintech systems
In financial systems, speed is only useful when every result is correct, ordered and explainable afterwards. We design for predictable tail latency and a complete audit trail first, and treat raw throughput as a consequence.
Backend
28 Jul 2026 · 5 min read
Redis as a distributed caching layer
A cache trades consistency for latency, and most caching incidents come from forgetting that trade. This guide covers the patterns, expiry strategy, failure modes and topology choices we consider before putting Redis in front of a database.
Backend
21 Jul 2026 · 5 min read
Kafka and event-driven architecture
Kafka is a partitioned, replicated log, and most of its guarantees and most of its surprises follow from that one fact. This guide covers ordering, consumer groups, delivery semantics, the outbox pattern, schemas and retention, and when a simpler queue is the better choice.
FinTech
14 Jul 2026 · 5 min read
Designing resilient payment systems
A payment system is defined by how it behaves when a request times out and nobody knows whether the money moved. This guide covers idempotency, ledgers, state machines, unknown outcomes, webhooks, reconciliation and reducing card-data scope.
Web3
7 Jul 2026 · 5 min read
Web3 infrastructure beyond smart contracts
The contract is the smallest part of a production blockchain system. Most of the engineering, and most of the operational risk, sits off-chain: node access, indexing, key custody, transaction management and monitoring.
Web3
30 Jun 2026 · 5 min read
RWA architecture: the systems behind tokenised assets
A tokenised asset is a record-keeping system with a blockchain inside it. Most of the engineering sits in the registry, the transfer rules, custody and reconciliation, not in the token contract.
Security
23 Jun 2026 · 5 min read
Zero-trust application architecture
Zero trust means no request is authorised because of where it came from. In practice that is workload identity, short-lived credentials and policy evaluated on every call.
Security
16 Jun 2026 · 5 min read
AI security and prompt injection
Prompt injection cannot be filtered away, because a language model has no reliable boundary between instructions and data. The defence is architectural: limit what the model can do when it is deceived.
Operations
9 Jun 2026 · 5 min read
Observability for distributed systems
A practical guide to metrics, logs and traces: what each one answers, how cardinality drives cost, and how SLOs turn telemetry into alerts worth waking up for.
Architecture
2 Jun 2026 · 5 min read
Designing systems for millions of requests
High request volume is rarely the hard part. The hard parts are state, the write path and what the system does when demand exceeds capacity.
SaaS
26 May 2026 · 5 min read
Building production-grade SaaS infrastructure
What separates a multi-tenant product from an application with a tenant_id column: isolation, per-tenant limits, a control plane, safe migrations and the ability to restore one customer.
