The 26-Sprint Calendar

Two-week sprints, Monday start / Sunday close. Twenty-six total sprints across 13 months. Four buffer sprints reserved (S6, S13, S20, S26). Buffer sprints are not “lighter work weeks” — they are slippage-absorption weeks with a hard rule: if you’re on track, rest; if you’re behind, catch up; never plan new work into them.

Each sprint has: number, week span, calendar dates, primary phase, primary deliverable, learning load target (hours), and a lab-notebook expectation. The slippage log at the bottom is where reality gets recorded.


The Full Calendar

Sprint

Weeks

Dates

Phase

Primary deliverable

Load (hrs)

Lab-notebook expectation

S1

W1–W2

2026-07-06 → 2026-07-19

0

Toolchain installed; 8 syntax drills complete

20–25

Predict/measure entry per drill

S2

W3–W4

2026-07-20 → 2026-08-02

0

Rung 1 cpp-refresh-2026 published

20–25

“What surprised me returning to C++” post-mortem

S3

W5–W6

2026-08-03 → 2026-08-16

1

RAII + move semantics read; LRU cache started

20–25

Sanitizer output diary

S4

W7–W8

2026-08-17 → 2026-08-30

1

LRU cache complete; benchmark table honest

BUFFER W7 + 15

LRU predict-vs-measured entry

S5

W9–W10

2026-08-31 → 2026-09-13

1 + 2 (DSA on)

Templates + concepts; JSON parser started; DSA daily habit

25

First 15 NeetCode solutions in C++

S6

W11–W12

2026-09-14 → 2026-09-27

1 + 2

Rung 2 lru-cache-cpp published; Rung 3 in flight

25

Sprint retro: Phase 1 exit

S7

W13–W14

2026-09-28 → 2026-10-11

2

Rung 3 mini-json-cpp published; 30/150 NeetCode

20–25

Pattern-recognition entries

S8

W15–W16

2026-10-12 → 2026-10-25

2

60/150 NeetCode; graphs+DP begun

20

Diwali-adjusted, plan a light sprint

S9

W17–W18

2026-10-26 → 2026-11-08

2

90/150 NeetCode; study simulation practice

20–25

First timed mock study log

S10

W19–W20

2026-11-09 → 2026-11-22

2 + 3 (memory)

Rung 4 neetcode-150-cpp published (100+)

BUFFER W20 + 15

“Valley of Despair mid” journal entry

S11

W21–W22

2026-11-23 → 2026-12-06

3 + 4 (CMake)

Memory model + threads read; P3.1 SPSC ring buffer

20–25

TSan output diary

S12

W23–W24

2026-12-07 → 2026-12-20

3 + 4

P4.1 reference C++20 project template; CMake fluent

20–25

“CMake mistake I made” ledger

S13

W25–W26

2026-12-21 → 2027-01-03

3 + 4

BUFFER SPRINT; if on track: rest; if behind: catch up

BUFFER 10–15

Year-end review; write M1–M6 retrospective

S14

W27–W28

2027-01-04 → 2027-01-17

3 finish → 5

Rung 5 cpp-concurrency-kit published; Eigen begun

25

First Eigen program vs NumPy diff

S15

W29–W30

2027-01-18 → 2027-01-31

5

P5.1 Eigen MLP MNIST ≥95%

25–30

Predict-measured accuracy log

S16

W31–W32

2027-02-01 → 2027-02-14

5

P5.2 pybind11 wrap of P5.1 on Test PyPI

25

Wheel-build log; pybind11 gotcha ledger

S17

W33–W34

2027-02-15 → 2027-02-28

5

P5.3 ONNX Runtime inference server (local)

BUFFER W33 + 15

ORT vs LibTorch decision entry

S18

W35–W36

2027-03-01 → 2027-03-14

5 finish → 6

🟧 Rung 6 mynn-cpp HARD GATE #1 published

30

Hard-gate ship entry; blog draft

S19

W37–W38

2027-03-15 → 2027-03-28

6

gRPC + Drogon read; P6.1 gRPC service started

25

gRPC async-vs-callback decision

S20

W39–W40

2027-03-29 → 2027-04-11

6

Prometheus + OTel wired; first Grafana dashboard

BUFFER W40 + 15

India fiscal-Q4 Zoho creep check-in

S21

W41–W42

2027-04-12 → 2027-04-25

6

P6.2 observability harness end-to-end

25

Trace vs log vs metric decision matrix

S22

W43–W44

2027-04-26 → 2027-05-09

6 finish → 7

🟧 Rung 7 mini-inference-cpp HARD GATE #2 published + deployed

30

Load-test raw data; k6 outputs archived

S23

W45–W46

2027-05-10 → 2027-05-23

7

Capstone Alpha miniserve skeleton + multi-model demo

25

Alpha architecture doc

S24

W47–W48

2027-05-24 → 2027-06-06

7

Capstone Beta pyfast_ann skeleton + faiss benchmark

25

Beta accuracy/latency tradeoff notes

S25

W49–W50

2027-06-07 → 2027-06-20

7

Capstone Alpha published + deployed

25

Alpha demo screencast recorded

S26

W51–W52

2027-06-21 → 2027-07-04

7 finish

Capstone Beta published; W52 buffer / celebration

BUFFER W52 + 20

Final year retrospective; pitch rehearsed

S25–S26 stretch through late June into early July. If you want the roadmap to end on the anniversary date (2027-08-06), consider S26 as a soft close with M13 extended by 4 weeks for study-conversion work.


Buffer Sprint Doctrine

The four buffer sprints are non-negotiable rest / catch-up periods. Their rule:

  1. If you are on track at the start of a buffer week, rest (10–15 hrs load, mostly reading, no new project work).

  2. If you are 1–5 days behind, catch up — use the buffer to close the gap.

  3. If you are >5 days behind at the start of a buffer, do not use the buffer for catch-up alone. Do the reset protocol in 99_pre_mortem/09_summary_and_reset_protocol.md — rescope, drop something, and continue.

  4. Never plan new deliverables into a buffer sprint. This is the mistake that turns a 13-month plan into an 18-month plan.


Slippage Log Template

Copy this table into 13_discipline/slippage_log.md (create it Sunday of Sprint 1). Update at the end of every sprint retro. This is the honesty ledger; it is the only place your calendar reflects reality.

Sprint

Planned deliverable

Actual outcome

Days slipped

Reason (1 line)

Recovery plan

S1

Toolchain + 8 drills

Toolchain done W1; only 6 drills W2

+3

Underestimated LLVM install issue

Push 2 drills into S2 W3, don’t skip

S2

Rung 1 published

(record honestly)

(fill in)

(fill in)

(fill in)

Slippage rules

  • ≤3 days slip in a sprint: normal. Log it. Continue.

  • 4–10 days slip in a sprint: yellow flag. Read 13_discipline/06_failure_modes.md and adjust load estimate for next sprint.

  • >10 days slip OR 3 consecutive sprints in yellow: red flag. Enter reset protocol.

  • Missed hard gate by >14 days (Rung 6 M9 or Rung 7 M11): hard-gate miss protocol, 99_pre_mortem/05_the_hard_gate_M9_miss.md. 14-day pause, honest rescope.


Sprint Retro Template (Sunday of Sprint End)

Copy this into your lab notebook every other Sunday. Ten minutes maximum. If it takes longer than 15 minutes you are overthinking it.

### Sprint SN retro — YYYY-MM-DD

**Shipped:** (bullet list of what actually got to a green state)
**Skipped:** (what was planned but didn't happen — be honest)
**Slipped:** (what got partially done — be specific about %)
**Blocked by:** (list external / real blockers; do NOT list "motivation" or "time" — those are inputs, not blockers)
**Predict-vs-measured surprises:** (what did I think was true that the compiler told me otherwise?)
**Load estimate accuracy:** (planned N hours, actual M hours, ratio M/N)
**Next sprint intent:** (one sentence — not a plan, an intent)

What Most People Get Wrong About Sprint Calendars

They treat the calendar as a commitment device rather than a measurement device. The calendar’s job is not to make you feel guilty when you slip. Its job is to tell you the truth about how fast you actually work, so you can plan future sprints accurately. If you slip 3 days in every early sprint, you don’t have a discipline problem — you have a load-estimate problem, and your S10+ estimates need to shrink by 20%. The calendar is a measuring instrument. Slippage is data, not shame.

The second failure: they hide slippage. They rewrite Sunday retros to look better than reality. Six months later they wonder why they missed the hard gate. Track it honestly on the day it happens.


Return to: README.md · Next: 03_north_star_artifacts.md — the 8 portfolio rungs mapped to the calendar.