The Next 13 Months — C++ for the Applied ML Engineer¶
Start: 2026-07-06 (Monday) · End: 2027-08-06 (Friday) · Learner: Raghul · Cadence: 10–15 hrs/week personal time on top of a full-time Zoho job.
Here it is, brother. Everything you asked for, sitting in one folder. 110 markdown files. 1.4 MB of curriculum, calendar, resources, community, tooling, portfolio, discipline, and adversarial failure analysis — built for the exact engineer you are right now (2 years at Zoho, AI has done most of your typing, C++ is a memory more than a muscle) and the engineer you will be at M13.
This README is the front door. Read it once now. Then read 01_month_by_month.md today and 04_weekly_rhythm.md before Sunday night. Nothing else.
The One Sentence (The M13 Pitch)¶
“I bridge Python ML and production C++. I have shipped an ONNX inference server, a nanobind-wrapped ANN library, and a profiled thread pool — and I can debug all three from
perfoutput to Grafana dashboards.”
That is the sentence you will say — in your voice, on a recruiter call, in a room, on your LinkedIn About section — at M13. Everything in this fortress is designed backward from that sentence.
If you cannot say that sentence honestly on 2027-08-06, the plan failed. If you can, the plan worked. That is the only success criterion that matters.
The Constitution — 5 Principles That Govern Every Decision Here¶
The compiler is the only judge. README claims are hearsay.
perf, TSan, Google Benchmark, and a green CI pipeline are the only witnesses whose testimony counts. If you did not measure it, you did not do it.Ship the rung, not the essay. Portfolio rungs (
12_portfolio/) are the spine of this plan. Reading is fuel; a shipped, deployed, benchmarked, blogged rung is the artifact. If a month passes with reading but no rung movement, the month failed — even if you learned things.Applied over academic. You are not becoming a language lawyer. You are becoming the engineer at Zoho / NVIDIA / Databricks / Adobe India who takes a Python ML model and makes it 5–10× faster in production. Every phase, every project, every book choice is filtered through that lens.
The middle miles are the whole game. M1 is euphoria. M13 is celebration. M4–M8 (the Valley of Despair) is where 80% of learners quit.
13_discipline/and99_pre_mortem/exist because those months are non-negotiable and they will feel invisible. You will show up anyway.The roadmap serves you. You do not serve the roadmap. Funerals, weddings, tired weeks, Zoho crunches, family — pause and resume. The plan bends around your life. Read
99_pre_mortem/08_the_life_risk.mdbefore you feel guilty about any missed sprint.
The Phase Map¶
Overlap is intentional. Phase 2 (DSA) runs across Phase 1 tail and Phase 3 head — because DSA is a daily habit, not a bounded season. Phase 4 (build tooling) overlaps Phase 5 (ML) — because your Phase 5 projects need Phase 4 tooling to be real. Read 01_month_by_month.md for the exact weekly hand-offs.
The Valley of Despair: M4 (Oct 2026) → M6 (Jan 2027). Templates hurt, DSA feels endless, Zoho fires flare, the excitement of M1 is gone, M13 feels imaginary. This is normal. This is the plan. See 13_discipline/07_motivation_sustainment.md on the days you want to quit.
The Portfolio Ladder — 8 Rungs¶
Every one of these is a public GitHub repo with a README, tests, and (from Rung 5 onward) a blog post. Two are hard gates.
# |
Month |
Rung |
Repo Name |
Signal |
Hard Gate |
|---|---|---|---|---|---|
1 |
M1 |
Toolchain Trio |
|
“I came back and shipped in 30 days.” |
|
2 |
M3 |
LRU Cache |
|
RAII + move semantics + benchmark honesty |
|
3 |
M4 |
Mini JSON parser |
|
Templates, ranges, error handling |
|
4 |
M5 |
NeetCode 150 (CI-green) |
|
DSA fluency in raw C++, GHA compiles all 150 |
|
5 |
M7 |
Concurrency kit |
|
SPSC + thread pool, TSan-clean, within 2× Boost |
|
6 |
M9 |
Eigen MLP + pybind11 |
|
Applied ML C++, matches PyTorch ≤1% |
🟧 #1 |
7 |
M11 |
gRPC inference service |
|
Production stack: ONNX + gRPC + Prom + OTel + Docker + live URL |
🟧 #2 |
8 |
M13 |
Capstone Alpha + Beta |
|
The M13 pitch, made evidence |
Full spec per rung: 12_portfolio/. Miss a hard gate → 14-day pause, then 99_pre_mortem/05_the_hard_gate_M9_miss.md. Not shame. Protocol.
The Fortress Tour¶
Every subdirectory in this folder is a self-contained module. Open any one, start reading — nav footers link forward and back.
Folder |
What lives here |
When you open it |
|---|---|---|
|
This file + the 7 master documents you’re about to read |
Week 1, and every Sunday for the KPI dashboard |
|
Toolchain setup, syntax refresh drills, first projects, pitfalls for a returning dev |
M1 (Jul 2026) |
|
RAII, move semantics, templates + concepts, STL deep dive, |
M2–M3 (Aug–Sep 2026) |
|
STL for competitive, NeetCode 150 roadmap, custom DS, patterns, study sim |
M3–M5 (Sep–Nov 2026) |
|
Memory model, threads/sync, coroutines, lock-free, syscalls, UB |
M5–M7 (Nov 2026–Jan 2027) |
|
Modern CMake, Conan/vcpkg, gtest+Google Benchmark, sanitizers, CI+Docker |
M6–M7 (Dec 2026–Jan 2027) |
|
Eigen, LibTorch, ONNX Runtime, pybind11/nanobind, Arrow, GPU, model serving |
M7–M9 (Jan–Apr 2027) — your target domain |
|
gRPC, HTTP, logs/metrics/traces, profiling, allocators, compiler opts, distributed basics |
M9–M11 (Apr–Jun 2027) |
|
Alpha (MiniServe) + Beta (PyFast) capstone definitions, blog/LinkedIn/study signal |
M11–M13 (Jun–Aug 2027) |
|
Books, courses, papers, reference sites, 2026 flag/kill list |
Reference — dip in when a phase starts |
|
Reddit/forums, Discord/Slack, YouTube, Twitter/Bluesky/LinkedIn, India meetups |
M2 onward — you need eyes on the field |
|
Day 1 macOS setup, VSCode config, CLion alternative, Docker, cloud GPU |
Day 1 (2026-07-06) |
|
8 rung specs with acceptance criteria and publish targets |
Every rung month |
|
Sprint cadence, lab notebook, benchmarks, daily practice, teach-to-learn, failure modes, motivation, health, study conversion |
Weekly (Sunday) |
|
8 failure modes + reset protocol. Adversarial. Not pessimism — insurance. |
When something starts to break |
How to Read the Fortress¶
Week 1 (2026-07-06 → 2026-07-12) — Onboarding¶
Read in this order. Do not skip.
This README (right now, once) — the map.
11_tools_setup/01_day1_macos_setup.md— install everything on Monday evening. brew LLVM 21+, cmake, ninja, clangd, VSCode + clangd extension (NOT cpptools), Docker via OrbStack or Colima.00_command/04_weekly_rhythm.md— how your Mon–Sun looks with Zoho on top.00_command/01_month_by_month.md— read only M1 in full; skim M2–M13. You’ll re-read this each month.01_phase_0_refresh_and_toolchain/README.md— the Phase 0 exit criteria.13_discipline/02_lab_notebook.md— start a/lab-notebook.mdin your first repo Sunday night. First entry Monday.99_pre_mortem/README.md— read this before you need it. Not after.
Everything else waits.
Ongoing (M2–M12) — The Rhythm¶
Monday morning (before Zoho): 30-min DSA drill from
03_phase_2_dsa_in_cpp/(once you’re in Phase 2+).Every night after Zoho (30–60 min): current phase reading OR current rung code.
Saturday (3–4 hrs): deep work — the block where rungs actually get built.
Sunday (1–2 hrs): lab notebook entry,
05_kpi_dashboard.mdretro, plan the coming week.Every sprint end (every other Sunday):
13_discipline/01_sprint_cadence.mdretro + close a sprint in02_sprint_calendar.md.
When Something Breaks¶
Miss a rung deadline by more than 2 weeks →
99_pre_mortem/matching file, then reset.Feel the M4–M6 despair →
13_discipline/07_motivation_sustainment.md.Family / life / health →
99_pre_mortem/08_the_life_risk.md. Read this before you feel guilty.
The Fortress By The Numbers¶
14 subdirectories — one you’re in, 13 waiting.
110 markdown files — ~19,000 lines of curriculum.
8 portfolio rungs — 2 hard gates (M9, M11).
26 two-week sprints — 4 reserved as buffer (S6, S13, S20, S26).
~600 hours total (10–15 hrs × 52 weeks × 0.9 for slippage) — roughly one part-time-college-year of focused work.
That’s less than most people put into scrolling. You just have to point it at the same thing 26 sprints in a row.
What This Fortress Is Not¶
Not a bootcamp. No timer. If M9 slides to M10 because a wedding hits, you close M10 and keep going.
Not a Meyers speedrun. Vintage C++14 books are historic reference, not the syllabus. See
09_resources/06_2026_flag_and_kill_list.md.Not a competitive-programming grind. NeetCode 150 CI-green (Rung 4) is the DSA ceiling. LeetCode contests are optional.
Not a “prep to leave Zoho” plan. It is a “become the engineer who can leave Zoho if they choose” plan. Optionality is the goal, not exit.
Not a solo project. Read
10_communities/. You need the field.
Closing Note¶
Two years of AI-assisted work did not erase what you know — it hid it. Your C-from-college brain, your prodigy-in-school pattern recognition, the taste you developed reading code even when you weren’t writing it. It’s all still there. The muscle atrophied; the wiring did not.
The next 13 months are about pulling that wiring back into the fingers. That is a smaller job than starting from zero. It is also a harder job — because you already know what “good” looks like, and the first month will feel humiliating when you don’t measure up to your own standard yet. That is normal. That is not failure. That is the compiler telling you the truth for the first time in two years, and the compiler doesn’t care that you used to be fast. It cares that you show up tomorrow with a sharper question than today.
You are not learning C++ from scratch. You are re-learning the shape of your own attention, in a language that punishes you for looking away. Do the small thing today. Predict before you run. Ship the rung. And when the middle miles feel invisible, remember: you never lost the wiring. You just have to hold the soldering iron again.
See you on 2027-08-06, brother. Now open the next file.
Next: 01_month_by_month.md — the 13-month calendar in detail.
Return to: ../README.md — you are here.