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 perf output 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

  1. 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.

  2. 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.

  3. 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.

  4. 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/ and 99_pre_mortem/ exist because those months are non-negotiable and they will feel invisible. You will show up anyway.

  5. 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.md before 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

cpp-refresh-2026

“I came back and shipped in 30 days.”

2

M3

LRU Cache

lru-cache-cpp

RAII + move semantics + benchmark honesty

3

M4

Mini JSON parser

mini-json-cpp

Templates, ranges, error handling

4

M5

NeetCode 150 (CI-green)

neetcode-150-cpp

DSA fluency in raw C++, GHA compiles all 150

5

M7

Concurrency kit

cpp-concurrency-kit

SPSC + thread pool, TSan-clean, within 2× Boost

6

M9

Eigen MLP + pybind11

mynn-cpp

Applied ML C++, matches PyTorch ≤1%

🟧 #1

7

M11

gRPC inference service

mini-inference-cpp

Production stack: ONNX + gRPC + Prom + OTel + Docker + live URL

🟧 #2

8

M13

Capstone Alpha + Beta

miniserve + pyfast_ann

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

00_command/

This file + the 7 master documents you’re about to read

Week 1, and every Sunday for the KPI dashboard

01_phase_0_refresh_and_toolchain/

Toolchain setup, syntax refresh drills, first projects, pitfalls for a returning dev

M1 (Jul 2026)

02_phase_1_modern_cpp_core/

RAII, move semantics, templates + concepts, STL deep dive, std::expected

M2–M3 (Aug–Sep 2026)

03_phase_2_dsa_in_cpp/

STL for competitive, NeetCode 150 roadmap, custom DS, patterns, study sim

M3–M5 (Sep–Nov 2026)

04_phase_3_systems_and_concurrency/

Memory model, threads/sync, coroutines, lock-free, syscalls, UB

M5–M7 (Nov 2026–Jan 2027)

05_phase_4_build_test_tooling/

Modern CMake, Conan/vcpkg, gtest+Google Benchmark, sanitizers, CI+Docker

M6–M7 (Dec 2026–Jan 2027)

06_phase_5_cpp_for_ml_data/

Eigen, LibTorch, ONNX Runtime, pybind11/nanobind, Arrow, GPU, model serving

M7–M9 (Jan–Apr 2027) — your target domain

07_phase_6_production_systems/

gRPC, HTTP, logs/metrics/traces, profiling, allocators, compiler opts, distributed basics

M9–M11 (Apr–Jun 2027)

08_phase_7_capstone_and_signal/

Alpha (MiniServe) + Beta (PyFast) capstone definitions, blog/LinkedIn/study signal

M11–M13 (Jun–Aug 2027)

09_resources/

Books, courses, papers, reference sites, 2026 flag/kill list

Reference — dip in when a phase starts

10_communities/

Reddit/forums, Discord/Slack, YouTube, Twitter/Bluesky/LinkedIn, India meetups

M2 onward — you need eyes on the field

11_tools_setup/

Day 1 macOS setup, VSCode config, CLion alternative, Docker, cloud GPU

Day 1 (2026-07-06)

12_portfolio/

8 rung specs with acceptance criteria and publish targets

Every rung month

13_discipline/

Sprint cadence, lab notebook, benchmarks, daily practice, teach-to-learn, failure modes, motivation, health, study conversion

Weekly (Sunday)

99_pre_mortem/

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.

  1. This README (right now, once) — the map.

  2. 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.

  3. 00_command/04_weekly_rhythm.md — how your Mon–Sun looks with Zoho on top.

  4. 00_command/01_month_by_month.md — read only M1 in full; skim M2–M13. You’ll re-read this each month.

  5. 01_phase_0_refresh_and_toolchain/README.md — the Phase 0 exit criteria.

  6. 13_discipline/02_lab_notebook.md — start a /lab-notebook.md in your first repo Sunday night. First entry Monday.

  7. 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.md retro, plan the coming week.

  • Every sprint end (every other Sunday): 13_discipline/01_sprint_cadence.md retro + close a sprint in 02_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.