Every RAG project has the same arc: a spectacular week-one demo on twenty hand-picked documents, followed by a slow slide into "why did it answer that?" as the real corpus arrives. The gap between demo RAG and production RAG isn't model quality — it's a hundred product decisions about retrieval, evaluation, and failure handling that someone has to own. That ownership is the job I do.
Decisions I've made with production consequences
I built WisOwl AI's retrieval and matching stack myself — embeddings, FAISS indexes, Supabase pgvector — for a system where retrieval quality directly decides whether a recruiter trusts the product enough to keep using it. 5,000+ users and 15+ recruiter partnerships have stress-tested those decisions. The transferable lessons:
- Chunking is a product decision. How you split documents encodes what questions the system can answer. Chunk boundaries that ignore document structure produce answers that are correct sentences from the wrong context — the most trust-corrosive failure RAG has.
- Retrieval evaluation comes before generation evaluation. If the right passage isn't in the context window, the model never had a chance. I build the retrieval eval first — recall against a golden query set — because it localizes every future quality debate to the correct layer.
- Hybrid beats pure-vector more often than the hype admits. Exact identifiers, names, and codes need lexical search; concepts need embeddings. Most production systems I've touched ended up hybrid with a reranker.
- The "I don't know" path is a feature. A RAG product that answers confidently at low retrieval confidence is a liability machine. Thresholds, source citations, and graceful refusal get designed into the UX, not bolted on after the first embarrassing screenshot.
Engagement shapes
Three ways in: a RAG audit (one to two weeks — retrieval metrics, chunking review, eval coverage, failure UX, ranked fixes), implementation PM (I run the build with your engineers from corpus strategy through launch), or rescue (the build shipped, users are complaining, and nobody can say which layer is failing — I instrument, localize, and re-sequence). All three start with the same 30-minute conversation.