Writing, page 3

Notes on building systems

Mostly the things I wish someone had told me before the incident, not after. Distributed systems, event pipelines and AI that has to survive real users.

4 min read

Orchestrating multiple agents without losing the thread

A second agent multiplies the coordination problem, not the capability. What decides whether it holds together is who owns the shared plan.

AIAgentsLangGraphArchitecture
Read post
3 min read

When Postgres is already the vector database you need

Storing embeddings beside the rows they describe removes a sync problem and makes filtering a join. That is worth more than raw index throughput.

AIVector DatabasesDatabasesRAG
Read post
3 min read

Prompt caching is the cheapest win available, if you order for it

Caching the stable prefix of a prompt cuts cost and time to first token substantially. It only works if the stable part is genuinely first.

AILLMsPerformanceContext Engineering
Read post
3 min read

Prompt injection is an architecture problem

Instructions and data arrive in the same channel, so the model cannot tell them apart. No wording fixes that, because it is a property of the design.

AISecurityAgentsArchitecture
Read post
3 min read

Prompts need regression tests more than code does

A prompt is a load-bearing configuration string with no type checker behind it. Changing one line can break behaviour nobody remembers depending on.

AIEvaluationPrompt EngineeringLLMs
Read post
3 min read

Reranking is usually the cheapest upgrade a RAG system can get

Retrieval optimises for recall and the model needs precision. A reranker sits between them and fixes the mismatch without touching the index.

AIRAGEmbeddingsPerformance
Read post
3 min read

What running vector search at scale actually costs

Approximate indexes want to be in memory, and memory is the bill. Sizing that before you commit is the difference between a plan and a surprise.

AIVector DatabasesPerformanceDatabases
Read post
3 min read

Speech to text is easy until the audio is real

Transcription accuracy on clean audio is a solved problem. Production audio is noisy, overlapping and full of the terms your domain depends on.

AIMultimodalArchitecturePerformance
Read post
4 min read

Streaming responses breaks your error handling

Once you have sent a 200 and started writing tokens, there is no status code left for the failure that happens halfway through the answer.

AILLMsArchitecturePerformance
Read post
3 min read

Getting structured output you can actually parse

Asking politely for JSON works most of the time, and most of the time is a poor guarantee for something a parser sits behind in production.

AILLMsPrompt EngineeringArchitecture
Read post
3 min read

Writing a system prompt that holds up under change

A system prompt is the one piece of a feature everybody edits and nobody owns. Structure decides whether it stays coherent or becomes sediment.

AIPrompt EngineeringLLMsArchitecture
Read post
3 min read

Temperature, top-p and top-k: which knob to actually turn

Three settings control the same thing from different angles. Turning all of them is how teams get output that is either rigid or quietly unhinged.

AILLMsPrompt EngineeringPerformance
Read post

Have a system to build?

Whether it needs designing from scratch or rescuing from its own success, tell me what you’re building and I’ll tell you how I’d architect it.

Open to remote and hybrid work worldwide