Month-by-Month — The 13-Month Campaign, One Month at a Time

This file is the operational spine of the fortress. It takes the M13 pitch and breaks it into thirteen calendar months, each with a theme, a primary phase, sprints, deliverables, learning targets, a portfolio-rung status, a Zoho alignment opportunity, and an India-specific warning about what real life will throw at you that month.

Read it once end-to-end so you know the shape of the year. Then treat it as a monthly ritual: on the first weekend of each month, open this file, read your month, and write your sprint intents in ../13_discipline/02_lab_notebook.md.

Two structural notes before you start:

  • 4 buffer weeks are baked in — one per quarter (weeks 13, 26, 39, 52). They are not vacation. They are the weeks you catch up when a sprint slips, and if nothing slipped, they are the weeks you write, teach, or ship an extra piece of the portfolio. You are going to need them. Do not spend them in month 1.

  • The Valley of Despair is M4–M7 (Oct 2026 → Jan 2027). This is the stretch where the beginner high has worn off, the SOTA is still far away, and you are 40% done with 60% to go. Every serious learner hits it. It is named here so that when it arrives, you recognize it as a phase, not as evidence you are failing. See ../13_discipline/07_motivation_sustainment.md.


M1 — July 2026 · Refresh the Muscle

  • Theme: Rebuild the reflex. Recover the fingers.

  • Primary phase: 01_java_fundamentals_refresh

  • Sprints: S1 (Jul 6–19), S2 (Jul 20–Aug 2)

  • Deliverables:

  • Learning targets: Java 17→21 syntax refresh (records, sealed, var, switch expressions, text blocks), type system, collections, streams intro, exception handling.

  • Portfolio rung status: Rung 1 (50 Programs Repo) is in progress. Not due yet.

  • Zoho alignment opportunity: Quiet quarter. Do not announce anything. Read your team’s Java repos in your spare 30 minutes. Take one Java-repo PR reviewer role if offered casually.

  • India-specific warning: Chennai monsoon setup is fine; no wedding-season pressure yet. If your Zoho quarterly review lands in July, do not let it eat this month — most of the plan’s work here is evenings, not weekends.

  • Monthly exit check (write in lab notebook by Jul 31):

    • 25 programs committed with tests

    • Can explain records vs classes without notes

    • IntelliJ shortcuts feel automatic (rename, extract method, inline)

    • Two lab-notebook sprint retros written


M2 — August 2026 · Ship Rung 1

  • Theme: Close Phase 01. Ship the first public artifact.

  • Primary phase: 01_java_fundamentals_refresh02_core_java_dsa

  • Sprints: S3 (Aug 3–16), S4 (Aug 17–30)

  • Deliverables:

    • Rung 1 — 50-Programs Repo shipped by Aug 31. README, tests, and a LEARNINGS.md documenting the three programs that hurt most. See ../12_portfolio/01_rung1_fifty_programs_repo.md.

    • First blog post on Hashnode: “What 50 tiny programs taught me about Java after 2 years off” (target 800–1,200 words).

    • Phase 02 kickoff — first 20 arrays/strings problems on your DSA repo.

  • Learning targets: IO, exception hierarchies, Collections deep (ArrayDeque > LinkedList, TreeMap/HashMap tradeoffs), start of DSA reflex.

  • Portfolio rung status:Rung 1 due Aug 31, 2026.

  • Zoho alignment opportunity: Still quiet. If you review a Java PR, leave one comment that references a specific pattern from Phase 01 (e.g. “this could be a record”). Nothing more.

  • India-specific warning: Independence Day long weekend (Aug 15) — plan it as a Rung 1 finishing weekend, not a vacation. This is the single most important weekend in Q1.

  • Monthly exit check:

    • Rung 1 repo public, README polished, pinned on GitHub

    • Hashnode post live with canonical URL claimed

    • DSA repo has 20+ solutions with pattern tags


M3 — September 2026 · DSA Reflex

  • Theme: Grind the DSA muscle. No frameworks, no shortcuts.

  • Primary phase: 02_core_java_dsa

  • Sprints: S5 (Aug 31–Sep 13), S6 (Sep 14–27)

  • Deliverables:

    • 60+ new DSA solutions across arrays, strings, linked lists, stacks, queues (running total ≈ 80).

    • MiniCollections library scaffolded — MiniArrayList implementation with tests. See ../12_portfolio/03_rung3_minicollections_library.md.

    • One JMH micro-benchmark: ArrayList add vs LinkedList add at n=10k. Result checked into results/.

  • Learning targets: Complexity analysis without hand-waving, Arrays.sort primitives vs objects (dual-pivot Quicksort vs TimSort), the LinkedList trap, iterator invalidation.

  • Portfolio rung status: Rung 2 (DSA 150) is in progress. Rung 3 is starting.

  • Zoho alignment opportunity: Q2 begins — measure. Start a private note on which internal services are Java, which are Python, and where the seams are. Do not share yet.

  • India-specific warning: Ganesh Chaturthi and pitru paksha fall in this month depending on the year — if family expects visits, front-load DSA work to the first two weekends.

  • Monthly exit check:

    • 80+ DSA solutions, each with time/space complexity in a code comment

    • MiniArrayList passes 20+ unit tests, resize logic works

    • Lab notebook has one entry that says “this benchmark surprised me because ___”


M4 — October 2026 · Trees, Graphs, and the Ship of Rung 2

  • Theme: The hardest DSA month. Trees and graphs teach recursion or they break you.

  • Primary phase: 02_core_java_dsa03_oop_design_patterns_modern_java

  • Sprints: S7 (Sep 28–Oct 11), S8 (Oct 12–25), Q1 Buffer Week (Oct 26–Nov 1)

  • Deliverables:

    • Rung 2 — DSA GitHub with 150 pattern-tagged solutions by Oct 31. See ../12_portfolio/02_rung2_dsa_github.md.

    • MiniHashMap implementation with resize logic and unit tests.

    • Phase 03 opener: first pass through 01_oop_first_principles.md and 02_solid_in_practice.md.

  • Learning targets: Trees (BST, traversals, balanced trees intro), graphs (BFS/DFS, topological sort), the 20 DP problems (from Phase 02, file 05), Comparator/Comparable properly.

  • Portfolio rung status:Rung 2 due Oct 31, 2026. Rung 3 halfway.

  • Zoho alignment opportunity: Still measuring. If your Q3 planning at Zoho starts in October, ask (once, casually) whether the team has any Java-integration items on the backlog. Do not push.

  • India-specific warning: Diwali falls in this month. Wedding season also opens in late October. Q1 buffer week is here for a reason — use it if Diwali/family eats a sprint. If you are hosting or traveling for Diwali, cut the target to 120 DSA solutions and use the buffer week to finish.

  • Monthly exit check:

    • Rung 2 repo has 150 solutions, pattern tags, per-solution complexity comments

    • MiniHashMap handles collisions and resize

    • Phase 03 first two files read and one paragraph summary written per file

    • Q1 review written: what worked, what slipped, what changes for Q2


M5 — November 2026 · OOP That Isn’t Ceremony · Valley of Despair Begins

  • Theme: OOP the way modern Java actually uses it — records, sealed types, pattern matching. Not textbook GoF ceremony.

  • Primary phase: 03_oop_design_patterns_modern_java

  • Sprints: S9 (Nov 2–15), S10 (Nov 16–29)

  • Deliverables:

    • Read Phase 03 files 01–04 with running notes.

    • Refactor the smelly ORDER PROCESSOR (from Phase 03 projects.md) into a records + sealed-interface + pattern-matching design. Push to refactor-catalog repo.

    • Draft outline for Rung 4 blog: “Modern Java refactoring case study — before, after, and what I got wrong.”

  • Learning targets: SOLID in practice (not doctrine), records/sealed/pattern-matching, GoF patterns that are dead in Java 21 (Visitor, template method for simple dispatch, most Factories).

  • Portfolio rung status: Rung 3 finishing, Rung 4 outlining.

  • Zoho alignment opportunity: Q3 approaches — propose. Draft (do not send) a one-paragraph “here’s a small Java integration I could own” note to your manager. You send it in December, not now.

  • India-specific warning: ⚠️ Wedding season is fully open (Nov 2026 – Feb 2027 = M5–M7). Every one of these three months will have at least one weekend eaten by a wedding. Plan for 8–10 hours/week average during these months instead of 12–13. The 4-hour weekend block will be the one that survives. Also: Valley of Despair begins here. You will feel like you are learning nothing. This is normal — see ../13_discipline/07_motivation_sustainment.md.

  • Monthly exit check:

    • Refactor-catalog repo has ≥1 substantial before/after

    • Notes on Phase 03 files 01–04 written

    • You noticed the Valley of Despair and did not pivot to a new topic


M6 — December 2026 · Ship Rung 4, Enter Functional Java

  • Theme: Finish the refactor case study. Cross into generics and streams.

  • Primary phase: 03_oop_design_patterns_modern_java04_generics_streams_functional

  • Sprints: S11 (Nov 30–Dec 13), S12 (Dec 14–27)

  • Deliverables:

    • Rung 4 — Modern Java Refactoring Case Study shipped (repo + Hashnode blog) by Dec 27. See ../12_portfolio/04_rung4_modern_java_refactor.md.

    • First pass of Phase 04 files 01 (generics) and 02 (functional interfaces).

    • MiniCollections gets MiniLinkedList — the file that teaches you why you never use LinkedList in real code.

  • Learning targets: Generics bounded wildcards, PECS, functional interfaces (Function, Predicate, Supplier, Consumer), method references, Comparator.comparing chains.

  • Portfolio rung status:Rung 4 due Dec 27, 2026. Rung 3 close to done.

  • Zoho alignment opportunity: Propose. Send that one-paragraph note to your manager in the second week of December, ideally right after the annual review conversation. Frame it as “small, contained, one quarter.”

  • India-specific warning: Christmas + New Year long weekend is your annual reset weekend. Wedding season is still active. Do not target Rung 4 for Dec 31 — target it for Dec 27 so you have a genuine break.

  • Monthly exit check:

    • Rung 4 repo public, blog post live

    • Phase 04 files 01, 02 complete

    • MiniLinkedList shipped, JMH shows it losing to ArrayDeque — screenshot in blog

    • End-of-year review written in lab notebook


M7 — January 2027 · Streams, Optional, and the Half-Way Line

  • Theme: Halfway through the campaign. Streams and Optional the honest way.

  • Primary phase: 04_generics_streams_functional

  • Sprints: S13 (Dec 28–Jan 10), S14 (Jan 11–24), Q2 Buffer Week (Jan 25–31)

  • Deliverables:

    • Phase 04 files 03 (streams), 04 (Optional), 05 (concurrency primer) complete.

    • log-analyzer project shipped — reads a 1M-line log file, produces top-N stats, compares stream vs for-loop with JMH numbers. Includes a parallel streams considered harmful section.

    • Halfway retro written in lab notebook and published as a Hashnode post: “6 months into 13 — what I got wrong.”

  • Learning targets: Stream honest guide (parallel streams often harmful, terminal ops, Collectors), Optional done right (never as a field, never with .get()).

  • Portfolio rung status: Rung 5 (Concurrency Playground) is about to begin. All prior rungs shipped or nearly so.

  • Zoho alignment opportunity: Q3 execution — own. If your manager approved a Java integration item in December, this is the month you start the design doc.

  • India-specific warning: Pongal (mid-January) is a hard family week for Tamil families — plan the buffer week around it. Wedding season winds down toward end of month.

  • Monthly exit check:

    • Phase 04 complete

    • log-analyzer repo with JMH results in results/

    • Halfway blog post live

    • Q2 review written: what you’re bringing into Q3


M8 — February 2027 · Concurrency · 🚨 HARD GATE 🚨

  • Theme: The single most differentiating month of the entire plan. Threads, virtual threads, executors, locks.

  • Primary phase: 05_concurrency_multithreading

  • Sprints: S15 (Feb 1–14), S16 (Feb 15–28)

  • Deliverables:

  • Learning targets: JMM happens-before, synchronized vs ReentrantLock (virtual-thread pinning on 21), executors and thread pools (never newFixedThreadPool with default queue), virtual threads (Project Loom), ScopedValue > ThreadLocal.

  • Portfolio rung status:HARD GATE — Rung 5 due Feb 28, 2027. If you miss this, everything after it is downstream damage. Use Q2 buffer week (Jan 25–31) preemptively if you sense slippage.

  • Zoho alignment opportunity: Own the Java integration item quietly. Do not slip its deadline for Rung 5 — but also do not slip Rung 5 for it. They must both ship. If you have to choose, ship Rung 5 first.

  • India-specific warning: Wedding season closes in mid-Feb. Chennai starts warming up. If your Zoho quarterly deadline collides with Feb 28, you have a real problem — see the 3-response manager scenario in 06_background_alignment.md.

  • Monthly exit check:

    • 🚨 Rung 5 shipped by Feb 28 with README, benchmarks, virtual-thread analysis

    • All of Phase 05 read with notes

    • Blog post on virtual threads live

    • You feel the difference: this is where you started looking like a senior


M9 — March 2027 · JVM Internals, Profilers, Reverts

  • Theme: The month you become the person on the team who reads flame graphs.

  • Primary phase: 06_jvm_internals_performance

  • Sprints: S17 (Mar 1–14), S18 (Mar 15–28)

  • Deliverables:

    • Read all of Phase 06, files 01–06.

    • Rung 6 — JVM Performance Case Study shipped by Mar 31. Includes at least one reverted optimization (senior signal). See ../12_portfolio/06_rung6_jvm_performance_case_study.md.

    • Profile Rung 5’s rate limiter with Async Profiler. Publish the flame graphs.

  • Learning targets: JVM architecture, G1/ZGC/Shenandoah trade-offs, JIT and escape analysis, Async Profiler (not VisualVM), JMH properly, common production pathologies (metaspace leaks, newFixedThreadPool OOMs).

  • Portfolio rung status:Rung 6 due Mar 31, 2027. Rung 7 preparation begins.

  • Zoho alignment opportunity: If you can profile a real internal Zoho service (with permission), the case study becomes 3x stronger. Ask. The worst answer is no.

  • India-specific warning: Holi mid-month (some years). Chennai heat begins — see M10.

  • Monthly exit check:

    • Rung 6 repo has ≥3 flame graphs, ≥1 reverted optimization, JMH results

    • Phase 06 fully read

    • You have run Async Profiler at least 5 times on real code

    • Q3 review written


M10 — April 2027 · Spring Boot, For Real

  • Theme: Enter the enterprise. Spring Boot 3.4, records-as-DTOs, RestClient, JPA.

  • Primary phase: 07_enterprise_spring_data

  • Sprints: S19 (Mar 29–Apr 11), S20 (Apr 12–25), Q3 Buffer Week (Apr 26–May 2)

  • Deliverables:

    • Read Phase 07 files 01 (Spring Boot fundamentals), 02 (REST APIs), 03 (JPA), 04 (testing).

    • Scaffold the URL Shortener service (Rung 7) — see ../12_portfolio/07_rung7_url_shortener_service.md. Postgres + Redis + JWT. Testcontainers on day one, not H2.

    • Blog post: “Testcontainers is the answer. H2 is a lie.”

  • Learning targets: Spring Boot fundamentals, REST layer (records as DTOs), JPA/Hibernate honest edition (N+1, @EntityGraph), full-stack testing (Testcontainers + @ServiceConnection).

  • Portfolio rung status: Rung 7 scaffolded.

  • Zoho alignment opportunity: Own — your Java integration item from Q3 should be shipping or shipped. Do a small internal talk or write-up.

  • India-specific warning: ⚠️ Chennai heat begins. April/May/June the city is 38–42°C. Your evening energy will drop. Move deep-work blocks to 6–8am if you can. Hydrate — your body will lie to you about how tired it is. See ../13_discipline/08_health_burnout.md.

  • Monthly exit check:

    • URL Shortener scaffolded, one REST endpoint working with Postgres + Testcontainers

    • Phase 07 files 01–04 read

    • You wrote Testcontainers into your test suite, not H2


M11 — May 2027 · Ship Rung 7, Enter Distributed

  • Theme: URL Shortener production-ready. Cross into distributed patterns and Kafka.

  • Primary phase: 07_enterprise_spring_data08_distributed_systems_applied_integration

  • Sprints: S21 (May 3–16), S22 (May 17–30)

  • Deliverables:

    • Rung 7 — URL Shortener Service shipped by May 31. Spring Boot 3.4 + Postgres + Redis + JWT + Prometheus + OpenTelemetry + Testcontainers + Docker Compose. See ../12_portfolio/07_rung7_url_shortener_service.md.

    • Import Rung 5’s rate limiter into Rung 7 (cross-rung citation reads as seniority).

    • Read Phase 07 files 05–07 and Phase 08 files 01–02.

    • Begin M13 pitch rehearsal — see 07_thirteen_month_pitch.md.

  • Learning targets: Security the practical way (Spring Security 6 filter chain, JWT), observability (Micrometer + OTel), config and deployment (Application CDS > native for long-running pods), microservices patterns (Resilience4j, not Hystrix), Kafka (KRaft, not ZooKeeper).

  • Portfolio rung status:Rung 7 due May 31, 2027. Rung 8 begins scaffolding.

  • Zoho alignment opportunity: Ask (once) if you can help review a Java service inside Zoho. Bring the URL Shortener as your evidence you can do it responsibly.

  • India-specific warning: Peak Chennai heat. Buddha Purnima and Ramzan festivals in some years. Keep evening blocks light, do the hard thinking in early morning.

  • Monthly exit check:

    • Rung 7 shipped with all 7 stack components working, screenshots in README

    • Rung 5 rate limiter is imported in Rung 7 (single source of truth)

    • Phase 08 files 01, 02 read

    • First M13 pitch draft written (30-sec version)


M12 — June 2027 · ML Capstone Foundation

  • Theme: Java + ONNX. The month that makes your M13 pitch rare.

  • Primary phase: 08_distributed_systems_applied_integration

  • Sprints: S23 (May 31–Jun 13), S24 (Jun 14–27)

  • Deliverables:

  • Learning targets: Caching and state (Redis/Valkey), Java for ML (DJL vs ONNX-RT-Java direct — per-model decision), serving models from Java, cloud-native Kubernetes (readinessProbe vs livenessProbe).

  • Portfolio rung status: Rung 8 halfway.

  • Zoho alignment opportunity: If your team runs any inference in production, ask (respectfully) if you can shadow a service call for a week. This is your bridge from Zoho ML work into a Java ML story.

  • India-specific warning: Chennai heat peaks. Do not schedule capstone crunch weekends where you sit in a room with no AC. Your laptop will thermal-throttle, and so will you. This is real, not metaphor.

  • Monthly exit check:

    • Rung 8 has a working ONNX endpoint returning predictions

    • Portfolio landing page drafted

    • Phase 08 read completely

    • Two M13 pitch versions rehearsed out loud


M13 — July 2027 · Ship Rung 8 · 🚨 HARD GATE 🚨

  • Theme: Finish. Publish. Pitch.

  • Primary phase: 08_distributed_systems_applied_integration

  • Sprints: S25 (Jun 28–Jul 11), S26 (Jul 12–25), Q4 Buffer Week (Jul 26–Aug 1)

  • Deliverables:

    • 🚨 Rung 8 — ML Capstone on Kubernetes (HARD GATE) shipped by Jul 31, 2027. ONNX-serving microservice, deployed to k3d/minikube, JMH latency benchmark, Prometheus dashboard, README with architecture diagram and lessons learned. See ../12_portfolio/09_hard_gates.md.

    • Portfolio landing page live.

    • LinkedIn headline + bio updated to reflect the M13 pitch — see 07_thirteen_month_pitch.md.

    • Final blog post: “13 months of Java, one shipped ML service — what I built and what it cost.”

  • Learning targets: Whatever plugs your specific capstone’s gaps. This is not a learning month; it is a finish and ship month.

  • Portfolio rung status:HARD GATE — Rung 8 due Jul 31, 2027. All 8 rungs shipped.

  • Zoho alignment opportunity: The internal case for you being the Java-ML person is now empirical, not aspirational. Have the promotion or scope conversation in early August, not July — do not let it eat capstone weeks.

  • India-specific warning: Peak monsoon in Chennai (well, more like Aug — July is transition). Your body has been running for 13 months. Q4 buffer week is real rest. Take it. Do not use it to add features to Rung 8.

  • Monthly exit check:

    • 🚨 Rung 8 shipped by Jul 31

    • Portfolio landing page live

    • All 6 versions of the M13 pitch rehearsed

    • The M13 pitch sentence can be said in one breath without notes

    • You wrote a closing lab notebook entry that includes the sentence “I did the thing.”


The Four Buffer Weeks (Non-Negotiable)

Buffer week

Dates

Purpose

Q1 buffer

Oct 26 – Nov 1, 2026

Catch up on Phase 02, absorb Diwali overrun.

Q2 buffer

Jan 25 – 31, 2027

Absorb wedding season, prepare for Rung 5 hard gate.

Q3 buffer

Apr 26 – May 2, 2027

Absorb Chennai heat energy loss, prepare for Rung 7.

Q4 buffer

Jul 26 – Aug 1, 2027

Rest after Rung 8. Do not use to add scope.

If a quarter goes clean and you don’t need the buffer to catch up, spend the buffer week writing — a long-form post, a talk proposal, a teaching gist. Do not spend it starting a new project.


The Valley of Despair

M4 → M7 (Oct 2026 → Jan 2027). Four consecutive months. The beginner high has worn off, you are 30–55% through the plan, and the finish line is still invisible. You will be tempted to pivot — to Rust, to Go, to a new framework, to “maybe I should do a course instead.” Do not. The Valley is not evidence the plan is wrong; it is evidence you are exactly where a serious learner is at month five. Read ../13_discipline/07_motivation_sustainment.md on the first day of M5 and again on the first day of M7. It is written for those two mornings specifically.


Return to 00_command README · Next: 02_sprint_calendar.md