Basics
Reference pages, maintained rather than dated. Each one carries the date it was last reviewed. Where they form a series, they're numbered — start at 01.
Retrieval & RAG6 parts, front to back
Vector databases: the basics
5 minVector databases turn meaning into numbers via embeddings, then answer nearest-neighbour queries over them using approximate indexes like HNSW. A five-minute walkthrough of embeddings, similarity search, metadata filtering, and when a vector database is actually the right tool.
Embedding models: the basics
5 minEmbedding models turn text into vectors so that meaning becomes something you can measure with distance. A five-minute walkthrough of why we use them, how they're trained, what the major options are (OpenAI, Cohere, Voyage, open-source alternatives), and how to actually pick one.
Chunking: the basics
6 minBoth earlier posts in this series mentioned chunking in passing and moved on. This one stays: why a whole document embeds into one blurry vector, how fixed-size chunking with overlap works, the size/overlap tradeoff, and when to reach for something smarter than splitting on word count.
RAG: the basics
5 minThe previous three posts built the retrieval half of the pipeline: chunk, embed, index, search. This one covers the other half — what retrieval-augmented generation actually does with the chunks it gets back, why grounding an LLM in retrieved text beats relying on its parametric memory, and the failure modes that are unique to this step.
Hybrid search: the basics
7 minSemantic search fails predictably on the exact tokens people actually search for — product codes, names, error strings — because an embedding model has no special respect for a rare word. Running a keyword index alongside the vector one and merging the two rankings fixes that, and reciprocal rank fusion merges them without needing the two score scales to mean anything to each other.
Evaluating retrieval: the basics
4 minEvery earlier post in this series ended with a parameter you were told to tune and no way to tell whether tuning it helped. This one closes that: a small labeled set of real queries, recall@k as the number you actually watch, and MRR when rank position matters. Shorter than usual, and honest about why.
Standaloneon their own
Connascence
9 minCoupling tells you two components are connected; connascence tells you what kind of connection it is, and Page-Jones's degree, locality and strength axes tell you how expensive that connection will be to change. A working note on the static and dynamic forms and the vocabulary for talking about which couplings in a codebase are actually dangerous.