Module 8 · Capstone · Drills

Drills: Interview & Apply

This is the last page of the course — and it's all action. Recall the answers out loud, run the mock interview, then actually send the applications. Knowing isn't the goal anymore; getting hired is.

How to use this page The flashcards and mock are spoken drills — answer out loud before you reveal, because the interview is a conversation, not a written exam. The checklist is your real application kit: tick each item only when it's genuinely done. Your progress is saved in this browser.

A · Rapid recall Flashcards

Real interview questions across the whole stack. Say your answer out loud first, then flip to compare. Aim to answer each in two crisp sentences.

List vs tuple in Python?
List is mutable and ordered; tuple is immutable, used for fixed groups and as dict keys (it's hashable).
click to flip
Why FastAPI over Flask/Django?
Async-first, Pydantic-typed validation, and automatic OpenAPI docs — great for an API-centric app like DocChat.
click to flip
What is Depends() in FastAPI?
Dependency injection — declares things like a DB session or current user as a function FastAPI runs and injects. Keeps routes clean and testable.
click to flip
What's the N+1 query problem?
One query per record for a relationship instead of one batched query. Fix with eager loading — selectinload/joinedload.
click to flip
When do you add a database index?
On columns you filter or join on often (foreign keys, email). Speeds reads, costs write time — so index the real query patterns, not everything.
click to flip
How does JWT auth work?
Verify login, sign a token with user id + expiry using a secret. Client sends it as a Bearer header; server verifies signature/expiry. Stateless.
click to flip
How do you store passwords?
Never plain text — a salted hash (bcrypt/argon2), compared on login. Safe even if the database leaks.
click to flip
Server vs Client Components (Next.js)?
Server Components are the default — render on the server, fetch data directly, ship no JS. Add 'use client' only for interactivity.
click to flip
What is RAG, and why use it?
Retrieval-Augmented Generation — retrieve relevant chunks from your docs into the prompt. Grounds answers, cuts hallucination, works on private data.
click to flip
Why chunk documents, and how big?
Embeddings work best on focused passages and context is finite — ~500-token chunks with overlap so sentences aren't cut. Size is a precision/context trade-off.
click to flip
Why containerise with Docker?
Packages the app with exact dependencies so it runs the same everywhere. Kills "works on my machine" and makes Postgres+pgvector a one-line compose.
click to flip
What does your CI pipeline do?
On every push: install deps, run tests + linter, build the Docker image. Fails block the merge, so broken code never reaches main.
click to flip

B · The mock interview Out loud

Run this as a real sequence — speak each answer, on a timer where noted, then open the details to see what a strong answer hits. Don't read ahead.

Mock · Q1 the opener · 3 min

"Tell me about a project you're proud of." Give your full DocChat story.

What a strong answer hits

Four clean beats: Problem (PDFs you can't search) → Stack & why (FastAPI async + typed, Postgres + pgvector, Next.js, Docker/CI) → the one hard thing (retrieval quality: chunking, overlap, embed query, cosine top-k in pgvector, strict context prompt) → what's next (re-ranking, source citations). The RAG retrieval is clearly the hero, and it names a real failure and the fix. Under three minutes, no rambling, ends on an invitation to ask more.

Mock · Q2 depth probe

"You said you chunk at ~500 tokens — why that, and why overlap?"

What a strong answer hits

Treats it as a trade-off, not a magic number: smaller chunks are more precise for retrieval, larger keep more context for the LLM. Overlap prevents a relevant sentence being split across a boundary and lost. Mentions you'd tune it based on the quality of answers you're actually getting — shows empirical judgement, not cargo-culting a value.

Mock · Q3 design-lite

"Walk me through how you'd build a document Q&A app from scratch."

What a strong answer hits

Clarifies briefly (scale, accuracy needs) → names components (frontend, API, DB, vector store, LLM) → traces both data flows: ingestion (upload → extract → chunk → embed → store) and query (embed question → similarity search → top-k → LLM with context → answer) → calls a trade-off out loud ("start with pgvector to avoid a second datastore; move to a dedicated vector DB only if we outgrow it"). Draws boxes and narrates the choice not taken.

Mock · Q4 the curveball · honesty

"How would you handle 10,000 concurrent uploads?" (Assume it's beyond what you've done.)

What a strong answer hits

Honesty first: "I haven't built at that scale, but here's my model and how I'd verify it." Then reasons from fundamentals — queue the ingestion work (background workers), process embeddings async, rate-limit, scale the API horizontally behind a load balancer, watch the database as the bottleneck. The win isn't a perfect answer; it's turning a gap into evidence you reason well and stay honest.

Mock · Q5 behavioural

"Tell me about a time something you built didn't work, and what you did."

What a strong answer hits

A concrete story with a real diagnosis — e.g. DocChat's first answers were vague, you traced it to embedding whole pages, and you fixed it with smaller overlapping chunks and a similarity threshold. Structure: situation → what went wrong → what you tried → result and what you learned. Owns the mistake, focuses on the debugging process, ends on the lesson.

C · The application kit Ship it

An interview-ready candidate has all of this done before applying, so a referral can act instantly. Tick each only when it's truly finished:

D · Apply For real

The win that ends the course Send your first 5 applications via referrals this week. Not portals — people. Message five engineers, recruiters, or alumni with a short, specific ask: "I built and deployed DocChat, a RAG document Q&A app (live demo + repo linked). I'm targeting full-stack roles in the UAE — would you be open to referring me or pointing me to your hiring team?" Five is a number you can hit today. Done is better than perfect.

Most candidates stall here forever, polishing in private. The ones who get hired send the message. You have a deployed, AI-powered, full-stack project and a story you've rehearsed — you are more ready than you feel.

Wisdom · join a community this week Skills turn into a job through people. Join one UAE dev community this week and introduce yourself: r/dubai for the local job-market reality and salary norms, a Dubai developer meetup for in-person intros that become referrals, or a LinkedIn "Tech in UAE" group to find the people who hire. Lurking doesn't count — post, comment, or show up. That's where the next referral comes from.