Intro · 0 stages
Your score 0 / 0
RECAP

Everything you built, in one pass. Interview pressure on.

You have shipped sixteen weekends of work. Today you prove you can explain it. For every idea on this deck: draw it, defend it out loud, then open the GitHub link and point at the file you wrote. If you cannot point at the artifact, that chapter needs another pass.

THE WHOLE COURSE, IN FIVE MOVES S00 to S03 Foundations search, vectors, attention, GPT S04 to S07 Control tokens, local models, prompts, chains S09 to S10 Grounding agentic coding, RAG with citations S11 to S13 Systems graphs, deep agents, one real product S14 to S15 Production ship it on AWS, then tune the voice Every move exists because the one before it left a hole. S08 was your mid-course recap. This is the full pass. 68 stages · 23 diagrams · 87 interview questions · 14 traps

Left rail jumps chapters. Right dots are slides. Arrow keys move. Answer out loud before you reveal.

MISSING CHAIN

Each weekend existed because the last one left a hole.

Nothing here was added because it was fashionable. Each weekend fixed something that broke the weekend before. Click a gap and say the failure out loud before you read the panel.

S00 to S01

"Car crash" never matches "automobile accident." Counting is not meaning. Embeddings put similar meanings near each other.

HOW WE PRACTICE

How to use this deck on your own.

1You answer first

Say it out loud. Fifteen seconds of silence is normal in a real interview.

2Then reveal

Compare the model answer with what you just said. Note what you left out.

3Trap MCQ

Every wrong option is a mistake someone in this cohort actually made.

4Open the file

Point at the artifact you built. A story without a link is not evidence.

Your score counter is in the top left. It only counts first attempts on the trap questions, so guessing does not help you.
PRE-WORK

Three ideas you reuse all semester.

01

Python as glue

Loops, dicts, functions. Every notebook is this plus a library.

02

Vectors and cosine

Same direction means similar meaning. Length is how much you said.

03

Learning = nudge weights

Training changes numbers. LoRA later only nudges a thin slice.

Open these (GitHub / Pages)
S00 SEARCH

How does search find documents without reading every file?

Google answers in under a second across billions of pages. It is not reading them at query time. It read them once, ahead of time, and wrote down which words live where. That is an inverted index: a word, pointing at the documents that contain it.

The index is built once at ingestion time. That one design decision is the whole reason search feels instant. You wrote this by hand in notebook 01.
S00 INDEX

Play the query: python training.

Both postings lists light up. Then the intersection.

ready
TERM to DOCS python - D1, D3, D7 training - D1, D4 cooking - D2, D9 AND - D1
S00 TF-IDF

Rare words beat common words.

TF is how often the word appears in this document. IDF is log(N divided by the number of documents containing the word). Multiply them. Common words collapse to nothing, rare words survive.

theTF-IDF ~ 0
refundhigh
policymedium
gymmedium
ready
Notice what you got for free: a stopword list you never had to write. The maths deletes "the" on its own. Now the bad news. Search "automobile accident" and a document that says "car crash" scores exactly zero. Same meaning, no shared characters. That gap is why S01 exists.
S00 INTERVIEW

Session 00. The questions you will actually be asked.

Interview
What is an inverted index and why does it make search fast?
Interview
What does TF-IDF measure and how does it rank better than simple word count?
Interview
What is IDF when a word appears in every document? Why does this matter?
S00 INTERVIEW

Limitation and BM25.

Interview
What is the core limitation of TF-IDF and how was it solved?
Interview
What is BM25 and why do most search engines use it over raw TF-IDF?
Interview
What are the main limitations of bag-of-words models?
Interview
Design a production search architecture. Where does the inverted index fit?
Pick one (then defend it)
IDF when a word appears in every document?

Must say: IDF formula and the zero case.

S00 YOU BUILT

Search engine and TF-IDF by hand.

S01 EMBEDDINGS

Same meaning. Different words. Keyword search fails.

Keyword search
automobile accident
Zero hits. The document says "car crash" and shares no characters with your query.
Embedding search
automobile accident
Top hit: "car crash on the motorway". Different words, neighbouring vectors.
S01 COSINE

Drag the points. Meaning is the angle.

Euclidean distance punishes long reviews that say the same thing. Cosine keeps the direction.

cosine ~
S01 METHODS

BoW to FastText. Each fixed the last failure.

BoWCounts. Order destroyed.
TF-IDFRare words matter. Still no synonyms.
Word2VecDense vectors from context windows.
GloVeGlobal co-occurrence.
FastTextCharacter pieces. Typos still work.
ready
S01 INTERVIEW

Session 01. Embeddings questions that separate candidates.

Interview
What is a word embedding and how is it different from one-hot encoding?
Interview
Why cosine similarity and not Euclidean distance for word vectors?
Interview
What is the critical limitation of Word2Vec and GloVe that Transformers solve?
Interview
What is FastText and when would you use it over Word2Vec?
Interview
How does Word2Vec learn embeddings without human labels?
Interview
What is the difference between Skip-gram and CBOW, and which handles rare words better?
Interview
What is negative sampling and why was it needed?
Pick one (then defend it)
Why cosine instead of Euclidean for word vectors?

Must say: Direction versus magnitude.

S01 YOU BUILT

CineMatch: five embedders, one catalog.

Open these (GitHub / Pages)
S02 TRANSFORMERS

One vector per word cannot read the sentence.

Word2Vec gave "bank" one fixed vector for life. The river and the money share it. Self-attention fixes this by letting every word look at every other word in the sentence first, then deciding what it means here.

S02 ATTENTION

Q, K, V. One head, start to finish.

Think of a room of people. Query is the question you walk in with. Key is the badge everyone wears saying what they know. Value is what they actually tell you. You compare your question against every badge, decide who to listen to, and take a weighted blend of what they say.

Press Play. The grid is the attention weight each token gives each other token for the sentence "The bank loan". Watch the row for "bank" shift its weight onto "loan".

ready
low weighthigh weight
Thebankloan

rows = the token asking, columns = the token being read

S02 INTERVIEW

Session 02. Attention questions, asked at every level.

Interview
Explain self-attention. Walk through Q, K, V.
Interview
Why does multi-head attention work better than single-head?
Interview
Why divide by the square root of d_k in the attention formula?
Interview
Why does a Transformer need positional encoding?
Interview
What is the difference between BERT and GPT architecturally?
Interview
What does the Feed-Forward sublayer do in each Transformer block?
Pick one (then defend it)
Why divide attention scores by sqrt(d_k)?

Must say: Dot magnitude grows with dimension.

S02 YOU BUILT

Encoder-decoder from scratch.

Open these (GitHub / Pages)
S03 GPT + ALIGNMENT

You had the architecture. That is not ChatGPT yet.

Two separate things happened between the 2017 paper and the chatbot you use. First, scale. Then alignment. Candidates who blur these two together lose the question.

That last box is the point of the whole session. Human labellers preferred the 1.3B aligned InstructGPT over the 175B raw GPT-3 about 85% of the time. Scale bought capability. Alignment bought usefulness. Those are two different levers, and interviewers ask you to tell them apart.
S03 SCALE

Play the jump from GPT-1 to GPT-3.

Same decoder idea. Different scale. Interviewers ask what changed between the three, not the Wikipedia year.

GPT-1117M

Need fine-tune per task

GPT-21.5B

Zero-shot starts working

GPT-3175B

Few-shot in the prompt

ready
S03 ALIGNMENT

Three stages, then someone deleted two of them.

This is the single most asked alignment question. Draw RLHF as three boxes, then show why DPO collapses it into one. Press Play to walk both.

ready
Interview
Why did DPO catch on so fast if RLHF already worked?
Interview
What is the KL penalty in RLHF protecting you from?
S03 INTERVIEW

Session 03. Alignment questions people get wrong.

Interview
What is in-context learning and which model demonstrated it at scale?
Interview
Walk through RLHF step by step. What is the KL penalty for?
Interview
What is DPO and how does it differ from RLHF?
Interview
What is hallucination and what are the main mitigations?
Interview
What is Constitutional AI?
Interview
What are emergent abilities in LLMs?
Interview
What were the key differences between GPT-1, GPT-2, and GPT-3?
Pick one (then defend it)
After pretraining, why align at all?

Must say: Helpful and safe on top of next-token prediction.

S03 YOU BUILT

Holmes GPT and eleven paper summaries.

S04 TOKENS

Models do not eat whole words. They eat tokens, and tokens are money.

BPE starts from single characters and repeatedly merges the most frequent pair. That is why one English word can cost two tokens, why rare names cost more, and why your invoice is a token count rather than a word count.

Press Play to watch the merges build "lower" from characters.

l o w e r

ready
Why not whole words? Any word missing from training becomes unknown. Why not single characters? Sequences get far longer, and attention cost grows with the square of the length.
S04 SAMPLING

Getting the order wrong is a real production bug.

Temperature reshapes the distribution. Top-k and top-p cut it. Then you sample once. Swap any two of those and your output quality changes for reasons nobody on your team will be able to explain.

logits
-
temperature
-
softmax
-
top-k
-
top-p
-
sample once
cat.46
dog.24
bird.14
fish.09
rock.05
xylo.02
ready

Watch the bars: low temperature sharpens them, then the filters grey out the tail.

S04 INTERVIEW

Session 04. Tokens, sampling, and the cost question.

Interview
Walk through the BPE algorithm step by step.
Interview
What is the correct order: temperature, softmax, Top-K, Top-P, sample?
Interview
What is the difference between Top-K and Top-P sampling?
Interview
GPT-4o charges $5 per 1M input tokens. A RAG system sends 3,000 tokens per query at 10,000 queries per day. What is the monthly input cost?
Interview
What is the "lost in the middle" problem in RAG?
Interview
A model generates "Eiffel Tower is in Berlin" confidently. Is this hallucination or retrieval failure?
Pick one (then defend it)
Correct sampling order?

Must say: Temp stretches. Filters cut. Then sample.

S04 YOU BUILT

Excel workbooks and two notebooks.

S05 RUN MODELS

Knowing how GPT works is not the same as calling it.

Local

Ollama and LM Studio. Your data never leaves the laptop, it works on a plane, and it costs nothing per token. You pay in RAM, and you accept a quality gap against the frontier.

Cloud and routers

OpenAI, Anthropic, Gemini, OpenRouter. Best available quality, no hardware, pay per token. Your data leaves your machine and your bill scales with traffic.

The payoff of the session: the message format is the same everywhere. Swap the provider, keep the code. Press Play.

openai.chat([{"role":"user","content":"Explain TF-IDF in one line."}])
ready
S05 INTERVIEW

Session 05. Running models, the practical questions.

Interview
What is GGUF format and what does Q4_K_M mean?
Interview
How does INT4 quantization reduce memory while preserving quality?
Interview
Compare Ollama, LM Studio, and OpenRouter: when would you choose each?
Interview
What are the three message roles in the universal chat format?
Interview
What are the limitations of OpenRouter for production use?
Interview
How much RAM do you need to run a 7B model locally?
Interview
How does map-reduce work for documents that exceed the context window?
Pick one (then defend it)
When is local the better default?

Must say: Privacy, offline, cost, then quality.

S05 YOU BUILT

Distill and provider race apps.

Open these (GitHub / Pages)
S06 PROMPT ANATOMY

Five parts. Light them in order.

Before you press Play, name all five parts from memory. Most weak prompts in the wild contain only one of them, the task, and then people blame the model.

RoleWho the model is
TaskExact ask, not "summarize"
ContextAudience, domain, constraints
ExamplesFew-shot locks the shape
FormatWhat code can parse
ready
S06 PROMPTS AS CODE

Handwritten prompts do not scale. So stop handwriting them.

This is the mental flip of the session. You stop tweaking strings and start declaring what you want, with a metric that scores it. The optimizer writes the prompt. Each rung below optimizes something the rung above could not touch.

LabeledFewShotDrops in k random training examples. No search, no scoring.
BootstrapFewShotRuns the model, keeps only the demos that passed your metric.
MIPROv2Searches the instruction wording as well as the examples.
GEPAReads its own failures and rewrites the prompt from them.
ready
Interview
What is DSPy and how does it differ from writing prompts manually?
Interview
What is the difference between LabeledFewShot and BootstrapFewShot?
Interview
What can MIPROv2 optimize that BootstrapFewShot cannot?
Interview
What is Chain-of-Thought prompting and why does forcing reasoning help?
Interview
What are the five parts of a well-written prompt and why does each matter?
Interview
Give a concrete example where few-shot is strictly necessary over zero-shot.
S06 YOU BUILT

Saved prompt artifacts.

Open these (GitHub / Pages)
S07 LCEL

Play the pipe. Prompt to model to parser.

LCEL is | composition. Interview trap: "the API remembers my chat." It does not. You send history.

prompt
|
model
|
parser
|
history wrap
ready
S07 LANGCHAIN

One Runnable shape for every provider.

messages - ChatPrompt - LLM - stream / parse

APIs are stateless. If the bot remembers, you resent history (or you added a checkpointer later).

Interview
What is LCEL and what does the pipe operator do technically?
Interview
How does streaming work in LangChain and why is it critical for production?
Interview
How would you switch a production chain from GPT-4 to Claude with minimal changes?
Interview
What is ChatPromptTemplate and what is MessagesPlaceholder used for?
Interview
What is the Runnable interface and what are its 5 core methods?
Interview
What is RunnableWithMessageHistory and how does it simplify multi-user chat?
Pick one (then defend it)
Why send prior turns every request?

Must say: Stateless API. You persist and resend.

S07 YOU BUILT

One notebook, four providers.

Open these (GitHub / Pages)
S08 BRIDGE

You already did a mid-course recap of S00 to S07.

Those decks stay. This file continues into agents, RAG, graphs, product, AWS, and fine-tuning.

S09 AGENTIC CODING

Stop typing prompts. Design the system that prompts, checks and retries.

That one sentence is the whole session. The thing that makes it work is not clever wording, it is the stop condition, and a stop condition has to be a shell command with an exact expected output.

/goal <what to build or fix> stop only when <exact shell command> <exact expected output> max <N> turns
goal + stop condition
-
agent works a turn
-
your shell check runs
-
judge reads transcript
-
met? stop. else fix and retry
ready

Real stop condition

pytest test_api.py -v exits 0
and shows "3 passed"

Not a stop condition

"the code looks good"
"it should work now"

Interview
When do you use /goal versus /loop when working with a coding agent?
Interview
Why must the stop condition be a shell command rather than a description?
Interview
Your agent edited three files and declared itself done. Tests were never run. What went wrong?
Interview
What goes into a /goal that does not go into an ordinary chat message?
Pick one (then defend it)
Nightly bot opens issues for failing CI. /goal or /loop?

Must say: no finish line means /loop, and it still needs a check each pass.

S09 YOU BUILT

Guides and loop playbook.

Open these (GitHub / Pages)
S10 RAG

The model invents your refund window.

No RAG
What is our refund window?
"30 days." Invented. Not in your docs.
With RAG
What is our refund window?
"14 days (Policy 3.2)." Retrieved and cited.
S10 PIPELINE

Load, chunk, embed, store, retrieve, generate.

Load PDFs and HTML into text. Keep page metadata when you can.
ready
S10 HYBRID + RRF

Exact codes and paraphrases, in one ranked list.

Dense retrieval understands meaning but smears rare strings like ERR-4042. BM25 nails exact strings but cannot see that "money back" means "refund". Reciprocal Rank Fusion merges the two ranked lists using rank position only, so you never have to make their scores comparable.

score(doc) = sum over lists of 1 / (k + rank) with k = 60 by convention

BM25

1. ERR-4042
2. refund policy
3. shipping SLA

Dense

1. return window
2. money back
3. ERR-4042

RRF

-
-
-
ready
S10 RERANK

Cheap search finds fifty. An expensive model picks the five.

A bi-encoder embeds the query and the document separately, so you can index millions of chunks in advance. Fast, but it never compares the two side by side. A cross-encoder reads the query and one chunk together and scores that pair. Far more accurate, far too slow to run on your whole corpus. So you use both, in stages.

Interview
Why not just use the cross-encoder for everything and skip retrieval?
Interview
Your recall at 50 is excellent but users still get bad answers. Where do you look?
S10 INTERVIEW

Hireable RAG questions.

Interview
When does hybrid search beat dense-only retrieval?
Interview
What does RAGAS faithfulness measure, and what failure does it catch?
Interview
How is conversation memory different from RAG?
Interview
Your bot invents a 30-day refund. Retrieval returned nothing useful. Is that hallucination, retrieval failure, or both?
Interview
You retrieved 10 chunks. The right fact sits in chunk 6. What risk is that?
Interview
Faithfulness is low but answer relevance looks fine. What failed?
Pick one (then defend it)
When does hybrid beat dense-only?

Must say: Exact-match failure of dense plus fusion.

S10 YOU BUILT

Studio, chatbots, decks, nine industry briefs.

S11 LANGGRAPH

chat() is a straight line. Products need control flow.

retrieve grade rewrite? answer retry
ready
Interview
When do you use LangGraph instead of a simple scripted chain?
Interview
How does interrupt() support human-in-the-loop, and why does thread_id matter?
Interview
What is a supervisor pattern in multi-agent systems?
Interview
When is a supervisor worth the complexity over one ReAct agent?
Interview
What breaks if you resume HITL on a brand new thread_id?
S11 HUMAN IN THE LOOP

The graph stops, waits for a human, and carries on where it left off.

This is the feature that makes agents allowed near production. Before a risky side effect, the graph pauses. Its state is checkpointed under a thread_id. A human approves or rejects. The same thread resumes from exactly that point. Press Play to walk it.

ready
Interview
A reviewer asks why you did not just use an if statement and a confirm dialog. Answer them.
S11 YOU BUILT

Helpdesk orchestrator.

Orchestrator
Open these (GitHub / Pages)
S12 DEEP AGENTS

Chat versus graph versus harness.

Same request, three shapes. A customer says "also add eggs to that order". Watch where the work has to happen in each.

Interview
What is the difference between a tool and a skill in Deep Agents?
Interview
When would you choose Deep Agents over a hand-written LangGraph?
Interview
AGENT.md says never commit secrets. A tool can still write .env. Who wins?
S12 TOOL VS SKILL

Click each. Say which one runs code.

Both change what the agent does, but only one of them executes. Getting this distinction wrong in an interview signals you have only used an agent, not built one.

Pick one.

ready
S12 YOU BUILT

Compare notebook and deck.

Open these (GitHub / Pages)
S13 DINING BOT

One product. Two rules you are not allowed to break.

Dining Bot is where everything from S10 to S12 becomes one chat box a restaurant manager can actually use. The two rules below are not style preferences. They are what stops the bot inventing revenue figures or quietly editing your database.

Deep Agents handles the open-ended work, like "plan next week", and it is allowed to write markdown plans into the plans folder. It is still not allowed to touch the database.
S13 ROUTER PLAY

Three user lines. One wrong path breaks dinner.

Tap a line. Say the path before you look.

S13 ROUTER

Click an intent. Watch the path.

Router RAG SQL HITL write
Pick an intent.
Interview
Why must Dining Bot keep RAG and SQL on separate router paths?
Interview
What is allowed to write to the database, and under what condition?
Interview
Why is "update the wine list" not a RAG question?
S13 YOU BUILT

Teach dining_bot.py. Run app.py.

Dining Bot

streamlit run app.py

Open these (GitHub / Pages)
S14 AGENTCORE

Laptop demos are not products.

Your agent worked on your machine. Making it a product means someone else's browser can reach it, safely, when you are asleep. AgentCore supplies four pieces so you are not building that from scratch.

S14 DEPLOY

JWT in. IAM out. No keys in the browser, ever.

One sentence to remember for the interview: Cognito proves who the user is, and IAM proves what your server is allowed to do. Those are two different problems and the browser is trusted with neither.

1. Browser logs in to Cognito and receives an ID token
2. CloudFront serves the UI from private S3 on one HTTPS URL
3. FastAPI on App Runner verifies that token on every call
4. FastAPI assumes an IAM role and invokes AgentCore
ready
Interview
Why must the browser never hold AWS keys when calling AgentCore?
Interview
In this course, which regions hold Memory/Runtime/Identity versus Gateway and Cognito?
Interview
What problem do labs 05 and 06 solve that labs 01 to 03 do not?
Interview
A teammate pastes the Bedrock API key into frontend JS. What do you say?
S14 YOU BUILT

Six labs.

S15 FINE-TUNING

Shipped agent. Still sounds generic.

This is the decision interviewers probe hardest, because getting it wrong is expensive in both directions. Ask one question: does the thing you want to change move, or does it stay still?

S15 MEMORY MATH

Do the memory arithmetic. It decides the whole design.

Updating every weight in a 7B model needs roughly 112 GB of GPU memory: two bytes for the weight, two for the gradient and about twelve for optimizer state, times seven billion. A free Colab GPU has about 15 GB. Full fine-tuning is the right idea on the wrong budget, and everything else in this session follows from that one gap.

112 GBfull fine-tune of 7B, about 16 bytes per parameter
14 GBbase in FP16, the LoRA case
3.5 GBbase in NF4, the QLoRA case
3.55 GBQLoRA total: NF4 base plus FP16 adapters
Read the last two boxes together. Quantizing the base from FP16 to NF4 is what drags 14 GB down to 3.5 GB, and the adapters on top cost about 0.05 GB. That is how a 7B fine-tune fits on a free GPU.
S15 LORA

Freeze the big matrix. Train two thin ones.

The adapters are the cheap part. For a 512 by 512 layer at rank 8 you store 8,192 numbers instead of 262,144, roughly three percent. The formula worth memorising: trainable is about 2 times d times r, not d squared. Bigger layers make the saving better, not worse.

ready
Quantization is compression, not teaching. Squeezing the base to four bits is what makes training fit on one GPU. It does not put a single new fact into the model.
S15 INTERVIEW

Session 15. RAG or fine-tune, and what quantization is not.

Interview
When do you choose RAG versus fine-tuning?
Interview
What does quantization change, and what does it not change?
Interview
In one sentence, what does LoRA change during training?
Interview
Customer asks for yesterday's FX rate. You only have LoRA adapters. Enough?
Interview
Q4 quantization made the model fit on your laptop. Did it learn your PDF?
Pick one (then defend it)
What does quantization change?

Must say: Bits and memory versus knowledge.

S15 YOU BUILT

Classroom deck and Unsloth lab.

TRAP ROUND

Four traps from real interviews.

Pick one (then defend it)
Query is ERR-4042. Dense-only retrieval keeps missing it. Why?
Pick one (then defend it)
Correct sampling order?
Pick one (then defend it)
14-day refund policy just changed. RAG or fine-tune first?
Pick one (then defend it)
LangChain chat API forgot the user's name from two turns ago. Root cause?
FINALE DRILL

Cover the screen. Say all sixteen out loud.

If you can say these in your own words, you can hold a conversation about this stack with anyone who interviews you.

S00 search An inverted index maps a word to its documents, so cost tracks the answer and not the corpus. A word in every document scores zero.
S01 embed Meaning is direction, so compare with cosine. Magnitude only tells you how much was written.
S02 attention Query against every key, scale by the square root of d_k, softmax, then take a weighted blend of values. Heads learn different relationships in parallel.
S03 align Scale bought capability, alignment bought usefulness. RLHF is three stages, DPO is one, Constitutional AI replaces the human safety labeller.
S04 tokens Temperature reshapes, top-k and top-p cut, then you sample once. Tokens are the unit on your invoice.
S05 run Local buys privacy, offline use and zero marginal cost. Cloud buys frontier quality. The model has to fit in memory.
S06 prompts Declare a signature and a metric, let the optimizer write the prompt. Bootstrap keeps demos that passed, MIPROv2 searches the wording too.
S07 chains Every component is a Runnable, so the pipe composes them. The API is stateless, which means you own the history.
S09 agentic A goal needs a stop condition that is a shell command with exact output. No finish line means a loop instead.
S10 RAG Chunk with overlap, retrieve hybrid, fuse with RRF, rerank with a cross-encoder, then cite or refuse. Faithfulness catches the fluent lie.
S10 memory Memory is the conversation, RAG is the documents. A production bot needs both and they are not interchangeable.
S11 graphs Reach for a graph when control flow is the product: branching, retries, pausing. interrupt plus a thread_id makes approval durable.
S12 deep agents Tools execute code, skills are standing guidance the agent loads. A file system gives the agent somewhere to think.
S13 product Facts from tables, policy from documents, and no write without a human. One router, strictly separated paths.
S14 ship Cognito says who the user is, IAM says what the server may do. The browser holds a token and nothing else.
S15 tune RAG for facts that change, LoRA for how it speaks. Quantization makes it fit and teaches it nothing.
WHITEBOARD

Your turn. Design a bank support bot on the whiteboard.

Find a partner, take five minutes, and draw this from memory before you look at the skeleton below. The brief: customers ask about their own accounts and about bank policy, agents can raise a dispute, and the bank wants the bot to sound like the bank.

Grade yourself honestly. If hybrid retrieval, reranking or the approval gate were missing from your drawing, go back to that chapter now. Having opened every folder once is not the same as being able to draw it cold.
CLOSE

Point at the repo. Ship a demo.

You went from counting words with TF-IDF to training adapters on a quantized model, and you built something runnable at every step in between. That chain is finished. The repository is your evidence.

Before your next interview, do these four

  1. Pick one project from this repo and get it running again from a clean clone. If the README does not get you there, fix the README and send the pull request.
  2. Record yourself answering the whiteboard question in three minutes. Watch it back once. You will hear the gaps immediately.
  3. Write one paragraph for each session saying what was missing before it and what it fixed. That paragraph is your answer to "walk me through your experience".
  4. Ship one demo somewhere public with a link, even a small one. A link beats a bullet point on a CV every single time.