You already ship software. Now a feature in your product calls a language model, and the ordinary tools of your craft stop helping. The thing answers well on Monday and badly on Thursday, the bill moves without explanation, and when a user complains you have nothing to point at except a screenshot. This course closes that gap. By the end of it you can build an LLM feature that retrieves from your own documents, calls your own tools in a bounded loop, and returns an answer you are willing to put a name on. More importantly, you can prove it works: a labelled query set that scores retrieval before the generator ever runs,
an eval set built from real traces, a judge you calibrated against human labels, a do nothing baseline that tells you whether your clever version earned its keep, and a pass rate reported with its spread rather than as a single flattering number. You finish with a capstone you built on your own material, not on a toy dataset: hybrid retrieval with a labelled query set, a tool loop with step and spend budgets, an eval suite with a calibrated judge and a baseline, tracing across the whole run, and a written failure catalog holding the verbatim error texts your system actually produced. That artifact is the thing you show in a review, in an incident postmortem, or in an interview.
This course is for a working engineer who already writes Python comfortably, reads API documentation without flinching, and has just been handed responsibility for an LLM feature that has to survive contact with real users. You do not need machine learning background, linear algebra, or a GPU. You need a terminal, an API key, and a real corpus of your own, even a small one. It is a good fit if you have a prototype that works in a notebook and no idea whether it works anywhere else, if your retrieval returns plausible but wrong pages and you cannot say why,






