Who this is for
A backend engineer who wants to demonstrate AI/LLM competence on their resume without having done it professionally yet. You’re applying for roles that mention “experience with LLMs” or “familiarity with AI systems,” and you need a portfolio project that survives technical scrutiny — not a tutorial demo, not a thin wrapper around an API, but something that demonstrates the engineering judgment a team would actually need.
The core insight
Most LLM side projects fail the resume test because they’re wrappers, not systems. “I built a chatbot using the OpenAI API” demonstrates that you can read documentation. It doesn’t demonstrate engineering judgment. The projects that survive interview scrutiny have three properties the wrappers don’t: a non-trivial retrieval or reasoning component, a measurable eval methodology, and at least one production- grade concern (cost, latency, error handling, or scale).
The bar isn’t “this works.” The bar is “I can talk about the trade-offs I made for 15 minutes and the interviewer learns something.”
The tactics
1. Pick from the signal tier, not the demo tier
Projects sort into three tiers of interview signal:
| Tier | Description | Example | Signal |
|---|---|---|---|
| Demo | Tutorial wrapper, one API call | ”ChatGPT clone with Next.js” | Zero — anyone can follow a tutorial |
| Application | Useful tool with some engineering | ”Slack bot that summarizes threads” | Low — shows API fluency, not depth |
| System | Multiple components, eval, trade-offs | ”RAG over internal docs with hybrid retrieval and eval pipeline” | High — demonstrates engineering judgment |
Pick from the System tier. The extra 20 hours of work (compared to a demo) produces 10x the interview signal because you can talk about decisions, not just descriptions.
System-tier project ideas:
- Semantic search with hybrid retrieval. Embed a real corpus, build BM25 + vector hybrid retrieval, add a reranker, measure recall@10. Demonstrate the retrieval quality ladder (each component improves recall measurably).
- Multi-document QA with citations. RAG system that answers questions over a document set and cites specific passages. Includes chunking strategy, retrieval, generation with source attribution, and a faithfulness eval.
- Structured extraction pipeline. Take unstructured data (resumes, invoices, research papers) and extract structured fields using an LLM. Includes schema definition, extraction, validation, and accuracy measurement against a labeled set.
- Code analysis tool. Analyze a codebase for patterns, security issues, or documentation gaps using an LLM with retrieval over the repo. Demonstrates context-window management and tool-use patterns.
- LLM-powered classification system. Classify inputs (support tickets, product feedback, content moderation) with an LLM, compare against a fine-tuned small model and a rule-based baseline. Show the cost/accuracy/latency trade-off.
2. Include a measurable eval from day one
The single highest-signal component of a resume project is eval. Most candidates can’t answer “how do you know this works?” beyond “I tried a few queries and the answers looked good.” That’s disqualifying at senior level.
Minimum viable eval:
- 50–100 labeled examples. Queries with expected answers (or expected retrieved documents). Hand-labeled is fine. The effort is low (a few hours) and the signal is high.
- A metric. Retrieval recall@k, answer accuracy (judged by a rubric or an LLM-as-judge), extraction F1, classification accuracy. Pick one metric that matters and report it.
- A comparison. Your system vs a naive baseline (no retrieval, no reranking, direct prompting without RAG). The delta demonstrates that your engineering choices matter — they measurably improved quality.
The interview sentence this enables: “Recall@10 with BM25 alone was 0.72. Adding dense retrieval brought it to 0.81. Adding the reranker brought it to 0.91. Each component is justified by a measured improvement.” That sentence is worth more than the entire rest of the project in interview value.
3. Have at least one production-grade concern
Demo projects have no constraints. Real systems have many. Including at least one production concern demonstrates that you’ve thought beyond “does it work?” to “could this actually ship?”
Pick one (or more):
- Cost. Track token usage per query. Compute cost per query. Show how caching (response caching, embedding caching, prefix caching) reduces cost. Report the ratio.
- Latency. Measure end-to-end latency. Identify the bottleneck (usually the LLM call). Show how you’d reduce it (smaller model for easy queries, parallel retrieval, streaming).
- Error handling. What happens when the LLM returns malformed output? When the API rate-limits you? When retrieval returns irrelevant results? Show the fallback path.
- Scale. What happens at 10x the corpus size? Does your chunking strategy still work? Does retrieval latency stay within budget? Even a back-of-envelope analysis demonstrates the thinking.
The point isn’t to build a production system — it’s to demonstrate that you think like someone who builds production systems.
4. Write the architecture doc, not just the code
The write-up is as important as the code. Interviewers don’t read your GitHub repo line by line. They read your README or blog post and decide whether to ask about it.
The write-up should cover:
- What it does — two sentences.
- Architecture diagram — one Mermaid or image showing the components and data flow.
- Key decisions — 3–5 trade-offs you made and why. For each: what alternatives you considered, what you chose, and what the measured consequence was.
- Eval results — the metric, the baseline, your system’s performance.
- What you’d improve — 2–3 things you’d do with more time. This shows self-awareness and signals that you understand the limits of what you built.
The format can be a GitHub README, a blog post, or a standalone page. Keep it under 1500 words — interviewers skim. The decisions section is the core; everything else is framing.
5. Use real data, not toy data
The most common way projects fail the credibility test is using a toy dataset. Iris, MNIST, the first 100 Wikipedia articles — these signal “coursework” not “engineering.”
Real data options that are free and substantive:
- Your own documents. Notes, saved articles, a book you’ve read. The corpus is yours, the questions are natural, and you can label the eval set yourself.
- Public corpora with real complexity. ArXiv papers, Stack Overflow posts, legal documents (free datasets exist), company SEC filings. These have real chunking challenges (tables, code blocks, citations).
- A real product’s documentation. Pick an open-source project’s docs and build a QA system over them. The questions are natural, the answers are verifiable, and the corpus is real.
The test: does the data have the messiness of real data? Varying document lengths, mixed formats, ambiguous queries, some questions without good answers? If yes, it’s real enough.
6. Deploy it somewhere accessible
A running demo converts “I built a thing” into “look at this thing.” The deployment doesn’t need to be production-grade — it needs to be accessible for 15 seconds while an interviewer clicks the link.
Minimal deployment options:
- Streamlit or Gradio for the UI (free tier on Hugging Face Spaces). Quick, functional, no frontend work.
- A simple API deployed on Railway, Render, or a free-tier cloud function. With a curl example in the README.
- A recorded demo (Loom, screen recording) if deployment cost is a concern. Less impactful than a live demo but still better than nothing.
The deploy is worth doing because it forces you to handle the constraints that localhost hides: API keys, secrets management, cold starts, error states when the LLM is slow.
7. Prepare the 15-minute walkthrough
The project’s ultimate test is whether you can talk about it for 15 minutes in a behavioral or technical deep-dive round without running out of material or being unable to answer probes.
Prepare answers for:
- “Why did you choose this architecture?” — name 2 alternatives you rejected and why.
- “How do you know it works?” — cite your eval metric and the baseline comparison.
- “What would break at 100x scale?” — name the bottleneck and the mitigation.
- “Why this model instead of X?” — cite cost, quality, or latency as the reason. Not “it’s the best” — specific.
- “What would you do differently?” — name 1–2 things you learned that would change the design.
If you can’t answer all five confidently, the project isn’t done yet — regardless of whether the code works.
Common failure modes
Building a wrapper and calling it a project. “I used LangChain to build a chatbot” is a tutorial, not a project. The test: does your project have a component you built beyond what the framework gave you? If the entire value comes from the framework, the project demonstrates framework-usage, not engineering.
No eval. The single most common gap. Without eval, you can’t justify any decision. “It works” is not an answer to “how do you know it works?” — and interviewers will ask.
Over-engineering the wrong layer. Spending two weeks on a fancy React frontend when the retrieval pipeline has one component and no eval. The interview signal is in the ML-system layer (retrieval, generation, eval), not the UI layer. A Streamlit UI with strong engineering underneath is 10x more impressive than a polished UI with a single API call underneath.
Giving up because it’s not perfect. The project doesn’t need to be production-ready. It needs to be defensible — you can explain what it does, why the decisions are correct, what the eval shows, and what you’d improve. Ship it imperfect with a strong write-up rather than polishing forever without shipping.
Using only the latest framework. If your project is “I implemented the LangChain tutorial with CrewAI and AutoGen,” the shelf life is 6 months before those frameworks are deprecated or refactored. Build on durable primitives (embeddings, retrieval, structured output) and use frameworks as an implementation detail, not the point.
What to do next
This week: pick a project from the System tier (§1) and a real dataset (§5). Spend one evening setting up the skeleton: embed the corpus, run a basic retrieval query, verify it returns something. You’re not building — you’re verifying the shape is viable.
Next two weeks: build the core pipeline. Retrieval + generation + basic eval (even 20 hand-labeled queries is enough to start).
Week 3–4: add one production concern (§3), write the architecture doc (§4), deploy somewhere (§6). Prepare the 15-minute walkthrough (§7).
Total: ~40 hours over 4 weeks. One shipped project with a strong write-up and a measured eval. That’s enough for “demonstrated LLM experience” on a resume.
Related
- Walkthrough: Designing a RAG System — the full system design of the most common project type here.
- Plan: Transitioning to Machine Learning Engineer — if you’re building this project as part of a larger role transition.
- Plan: 90-Day AI Ramp for Backend Engineers — if you’re still ramping on the fundamentals before building.
- Framework: What’s Durable vs What’s Hype — build on durable primitives (retrieval, embeddings, eval), not this month’s framework.