Selected projects with deep architecture write-ups. Each entry covers the problem, the design decisions I made, the tradeoffs I weighed, and the parts I would build differently next time. The intent is to be concrete enough that another engineer can read the page and rebuild the system from scratch.
Every case study starts from the users and their constraints rather than from the technology. For document intelligence in legal and healthcare settings the defining constraint is that regulated content may not leave the customer boundary, and that single fact drives the routing layer, the choice of local models and the deployment topology. The architecture section then traces a request end to end, followed by the specific decisions: chunking strategy, embedding model, hybrid retrieval with reranking, prompt structure and citation handling.
The evaluation section explains how quality is measured, because a retrieval system without an evaluation set cannot be improved deliberately. The retrospective closes each page with what I would build differently, which is often the most useful part for someone starting a similar system.
| Theme | Question it answers |
|---|---|
| Data boundary | Where can each piece of content be processed and stored? |
| Retrieval quality | Does the system find the right passage before the model answers? |
| Grounding | Can every claim in an answer be traced to a source citation? |
| Cost and latency | Which requests need a frontier model and which can run locally? |
| Operability | How are failures detected, logged and rolled back? |
These themes recur because they are where document systems usually fail in practice. A model that writes fluent answers is easy to demo; a system that cites the right clause, refuses when the evidence is missing, and stays inside its data boundary under load is the part that takes engineering effort, and it is what the case studies spend most of their words on.
The building blocks used in these projects are documented in more general form elsewhere: Retrieval-Augmented Generation for chunking, embeddings and retrieval, Agents & Tool Use for function calling and structured output, and LLM Engineering for prompting and production concerns.