The INFUSE Roadmap: 8 weeks, 8 proof projects
One real job post, read as a test list. One project per requirement line. Ninety minutes a day, five days a week, sixty hours total. Every project ships in public, so every line of the final application has a link behind it.
How to run this plan
- Open the target post. Save it as a PDF. Posts close; your copy does not.
- Run the exact prompt below on the post. Check every project against the real post lines. Cut anything the post does not ask for.
- Build in order. Each week ends with a public repo, a short README, and one demo clip or screenshot set.
- Apply wide from week 6. Save the dream post for last, when the proof is done.
Before Week 1: check your starting skill
The 8 builds assume six base skills. Test yourself in ten minutes. For each no, take the short path first. Pre-week work sits outside the 60 hours. Budget 1 to 13 hours, by how many gaps you have.
- Can you write a Python function, read a JSON file, and use a list and a dict? If not: the official Python tutorial, parts 3, 4, 5, and 9, about 4 hours.
- Can you run commands in a terminal, make a virtual environment, and install a package with pip? If not: The Missing Semester, lessons 1 and 2, about 2 hours.
- Can you init a git repo, commit, and push it to GitHub? If not: GitHub get started docs, about 2 hours.
- Can you open a CSV file and filter rows with pandas? If not: pandas intro tutorials 1 to 3, about 2 hours.
- Can you say what an API call is: a request, a key, a JSON response? If not: the MDN HTTP overview, about 1 hour.
- Can you say what a prompt, a token, and an embedding are? If not: Hugging Face LLM course, chapter 1, about 2 hours.
Rule: do not start Week 1 with more than one open gap. The builds stack. A gap in Week 1 becomes a wall in Week 3.
Setup: one time, about 2 hours, all free
Do these steps in order. The plan needs no paid tier. Free tiers have rate limits; the builds are sized to fit inside them.
- Install Python 3.11 or newer (python.org). Check it: run python3 --version.
- Install VS Code (free) and its Python extension.
- Install git. Make a free GitHub account. You will make one repo per week.
- Install Docker Desktop (free). You need it in Week 7 only, but install it now so a slow download never eats a build day.
- Get one free model API key: Google AI Studio free tier, Groq free tier, or OpenRouter free models. One key covers Weeks 1 to 5. Week 6 needs two providers, so take keys from two of the three.
- Make a free Langfuse cloud account for Week 5, or plan to use plain log files. Both paths are in the Week 5 brief.
- Make a free Hugging Face account for the Week 8 hosted demo.
- For Week 2 embeddings, use sentence-transformers on your own machine. It is free, local, and needs no key.
Store every key in an environment variable or a secrets file that git ignores. Never commit a key.
If your time or privacy is limited
The 60 hours are 60 hours. The daily dose is your choice.
30 minutes a day
Each project takes three weeks: learn, build, finish and test. The full plan takes 24 weeks. Same projects, same done tests. For a 16-week path, the dose is about 45 minutes a day, five days a week.
Build in private
Work with fake data or public data only. Never use employer data, employer code, or screens from work. Check your contract first; some contracts claim side work. Keep each repo private while you build and publish the write-up instead: the method, the failure log, and the results table. A done test log shows the skill without the data.
The exact prompt
Paste a job post after this prompt:
Read this job post as a test list. For each requirement line that names a skill, a duty, or a tool, write one small project that proves it. Rules: one project per line, eight projects at most, each project must fit in one week at ninety minutes a day, each project must end in a public artifact (a repo, a live demo, or a written report), and each project brief must name the post line it answers. End with a calendar: week, project, post line, artifact. No project may repeat a skill another project already proves.
Week by week
W1An MCP server with governed access
- The client connects but sees no tools, or the server dies at start: a print call corrupts the stdio stream. Fix: never print in server code. Log to a file or to stderr.
- Import or class errors after install: the SDK v2 line moved FastMCP. Fix: pin the v1 line (mcp 1.2 or newer, below 2), or follow the v2 migration guide. Do not mix the two.
- A denied call returns empty output: the check failed in silence. Fix: write the audit line first, then raise an error with the reason, so the client sees DENIED and the log keeps why.
W2Retrieval over messy data
- Answers cite the wrong chunk or no chunk: chunks are too big or too small, and metadata is lost. Fix: cut 300 to 600 token chunks with a small overlap, keep the page number on each chunk, and print the top chunks for five test questions before you trust any score.
- Scans give empty text: the PDF holds an image, not text, and no OCR step ran. Fix: run OCR (Tesseract is free) on image-only pages and store the text next to the file.
- The test score looks high but the answers are weak: the test set is too soft. Fix: add questions that need two files to answer, and questions with no answer in the data. The right output for the last kind is: not in the data.
W3An agent with a human review step
- The approval gate never fires, or the run cannot resume: state is not saved between steps. Fix: use a checkpointer (MemorySaver for the first pass) and one thread id per run.
- Structured output fails to parse: the model wraps JSON in prose. Fix: use the framework structured output mode, or a parser with one retry, and log the raw output on each fail.
- The agent loops and never ends: no stop rule. Fix: set a max step count and a clear end test for each step before you run it.
W4A golden set that grades every change
- The pass rate moves but the prompt did not change: the judge or the set is noisy. Fix: grade with plain rules where you can. Use model judging only for open traits. Hand-check 10 cases to audit the judge.
- Scores jump after you tune prompts: the golden set leaked into the prompt as few-shot examples. Fix: split dev cases (used in prompts) from test cases (used for scores). Never mix the two sets.
- The same command gives new results on a new machine: the model version floats. Fix: pin the exact model name and version, and print both in the report header.
W5Telemetry for cost and accuracy
- The dashboard shows sample data, not your runs: traces are not wired to the real agent. Fix: run the golden set through the traced agent, then follow one trace id from the first call to the last.
- Cost per run reads zero: token counts are not captured. Fix: read usage from each API response and store it with the run record.
- Latency looks flat and hides the slow step: you log the full run only. Fix: log per step, not per run.
W6A gateway that routes and fails over
- The failover test passes but the cost doubles: both providers get called on each request. Fix: call provider two only on an error or a timeout, and log which provider served each call.
- The cost cap never fires: the code checks the day total after the call. Fix: check the total before the call, and block at the cap.
- A rate limit error kills the run: no retry logic. Fix: retry 429 and 5xx replies with a short backoff, then fail over.
W7Deploys with evals in the pipeline
- The pipeline is green but the live image is old: a cache or a reused tag served the past build. Fix: tag each image with the commit SHA and deploy by tag, never by latest.
- Rollback restores the code but not the prompt: prompts live outside the image. Fix: keep prompt versions in the repo, tag them with the release, and roll back both.
- Evals in the pipeline get skipped: the full set is slow on each push. Fix: run a 10-case smoke set on each push and the full 50 cases on merge.
W8A public demo anyone can run
- It runs on your machine and fails for the tester: the code assumes your paths or your keys. Fix: read keys from environment variables, use relative paths, and test a clean clone in a fresh folder before you share the link.
- The demo sleeps when your laptop sleeps: it runs on a local tunnel. Fix: host it on a free space (Hugging Face Spaces) and store the provider key in the space secrets.
- The tester cannot tell good output from bad: the page has no samples. Fix: put three sample questions with expected outputs on the demo page.
After week 8
- Rewrite the application profile: one line per project, each line with its repo link.
- Send the scope note style write-up with applications. It reads as product thinking, which the post asks for by name.
- Keep the golden set running. It is now your regression suite for every new model release.