The old version of Virtual Me used retrieval-augmented generation: a vector database, LlamaIndex to manage it, and a retrieval step that searched for the most relevant chunks of my background before answering a question. That's the standard pattern, and it's the right one when your corpus is too big to fit in a model's context window and you need to find a needle in a haystack.
My corpus isn't a haystack. It's my resume, a handful of project write-ups, and some notes on past roles — a few dozen kilobytes of text, total. Retrieval was solving a problem I didn't actually have.
So when I rebuilt this site, I dropped it entirely. The new version just puts my entire background directly into the model's system prompt on every request, no database, no retrieval step, no relevance-scoring to get wrong. With prompt caching, that costs barely more than the retrieval version did, and it removes an entire category of failure — RAG's classic problem is pulling the wrong chunk and confidently answering from it. If everything's already in context, there's nothing to miss.
None of this is a knock on RAG, or on building it in the first place. Context windows were smaller in 2023, so retrieval wasn't purely fashion — it was closer to necessary. And building it hands-on turned out to matter more than the project itself: that RAG work became foundational experience I carried straight into prompt-engineering and RAG architecture on the job that followed. The lesson isn't "don't build the more complex thing" — it's to keep checking, later, whether the reasons that justified it still hold.