The docs have the answer.
Your bot doesn’t.
Your support bot gives the wrong policy, even though the correct one is in your documents.
Where would you look first?
Your move. Pick an answer to see what to check first, and why.
A home for your AI & ML interview prep
You’ve collected the resources. Now turn them into something you can build, explain, and take into an interview.
A little direction. Then a lot of doing.
First, a small win
You probably know more than you think.
Put one decision to the test.
What’s getting in the way?
On the desk: GenAI / RAG. The docs have the answer. Your bot doesn’t.
Your support bot gives the wrong policy, even though the correct one is in your documents.
Where would you look first?
Your move. Pick an answer to see what to check first, and why.
What you can work on
28 topics, connected to questions, coding labs, and design problems. Follow a path or start with a gap.
Linear algebra, probability, optimization, information theory, and numerical computing.
ML fundamentals, classical models, evaluation, and the reasoning behind your choices.
Deep learning, transformers, generative models, and multimodal architectures.
RAG, embeddings, fine-tuning, agents, alignment, and evaluation.
Model serving, distributed training, quantization, and the trade-offs of production.
Now, give it a direction
Your next interview.
One step at a time.
01 Make a plan
Your experience, the role, and the time you have. Turn them into a prep plan with a finish line.
Start where you are
Bring your resume and the job description.
We’ll help you find what to work on next.
02 Think in systems
Start with a few building blocks. Use a hint, complete the request path, and see how your design holds up.
From a missing connection to the trade-offs behind a complete architecture.
Open the LLM gateway design lab03 Build the understanding
Write multi-head attention with a little help along the way. Follow the dimensions, run the checks, and see the shapes line up.
# X: (2, 4, 64), requires_grad=True · W*: (64, 64)
Q, K, V = [X @ W for W in (Wq, Wk, Wv)]
Q, K, V = [t.reshape(2, 4, 8, 8).transpose(1, 2)
for t in (Q, K, V)]
scores = Q @ K.transpose(-2, -1) / (8 ** 0.5)
allowed = torch.ones(4, 4, dtype=torch.bool).tril()
weights = scores.masked_fill(~allowed, -torch.inf)
heads = torch.softmax(weights, dim=-1) @ V
out = heads.transpose(1, 2).reshape(2, 4, 64) @ Wo
out.square().mean().backward()
AI assistance when you need a nudge. Real coding labs when you’re ready to try.
Explore the attention coding lab04 Say it out loud
Meet Alex, your AI interviewer. Explain what you built, answer the follow-up, and leave with something specific to improve.
Clear on shapes and scaling. Next, explain where you would apply a causal mask.
A conversation that gets beyond the first answer.
Explore mock interviewsYou don’t have to do it all today
One question. One working idea.
A little more ready than yesterday.