The Story
The month-by-month narrative arc of ROOT. Not a curriculum — a story. Why each year exists, what changes about you across it, what the journey feels like from the inside. Plus: the rhythm the journey runs at — the day/week/month/year cadences that make 60 months survivable.
Status: STUB at start (Month 0). Per-year sections deepen as you live them — each phase adds 1-2 paragraphs about what surprised you, what was harder than expected, what felt easier. By Year 5 this is a 30+ page document that’s the most honest record of the journey.
If the Master Plan is the map, this page is the diary. The Master Plan tells you what the 60 months contain; this page tells you what they feel like from the inside. The two are meant to be read together — structure on one tab, narrative on the other.
This doc starts as a stub and grows by accretion. There’s no clever way to skip ahead to a finished version. Year 1 fills itself in across Months 1-12; Year 5 is blank until Month 60. The whole point is that future-you writes the body of this document, not present-you. What you can write today is the rhythm, the pre-flight, and the themes — the scaffolding the entries hang on.
The Rhythm
ROOT lives inside three nested cadences. The curriculum tells you WHAT to build; the rhythm tells you WHEN + HOW the life around the work is shaped. The rhythm is what makes 60 months survivable.
The discipline is run-pray-build — a triad that anchors every day. Run for the body. Pray for the spirit. Build for the craft. None of the three carries the program alone. Drop any one and the other two compensate for a few weeks, then collapse. All three is the only stable configuration over 60 months.
The day
Morning: prayer + run (or gym) + breakfast + a short reading (Bible / DDIA / Chip Huyen — rotating)Midday: day jobEvening: 1-2 hrs ROOT work — phase reading, code, ops-handbook entriesClose: short reflection; commit + pushThe morning beat is non-negotiable. Body first, spirit second, mind third — by the time the laptop opens, the rest of you is already centered. The 1-2 evening hours are protected; family + day-job pressure is real, but the cadence holds.
The “commit + push” close matters more than it looks. Even a 1-line ADR, a runbook stub, or a typo fix counts. The graph contribution isn’t the point — the point is that the day didn’t end inside your head. Something left it. The discipline of externalizing every day is what makes the rhythm cumulative instead of just busy.
The week
Mon-Fri: ~5-7 weeknight hrs ROOT (1-2 hrs × 3-5 nights)Saturday: 3-4 hr deep-work session (the longest sustained block of the week)Sunday: weekly log + church + reflection. The non-negotiable beat of the program.Saturday is for the work that doesn’t fit in 1-hour weeknight chunks (long Spark jobs, kubectl debugging, deep reading). Sunday is the Sabbath beat — log the week, gather, reflect, pre-shape next week. The Sunday weekly log is the single most-load-bearing habit of ROOT (template: meta/weekly-log-template).
The month
~48-50 hrs ROOT work (12 hrs/week × 4 weeks)1 blog post (Y2+) or screencast piece1 phase milestone shipped (validation criterion or two)Monthly retrospective in this story.md (the per-month paragraph)The monthly retrospective is the cumulative narrative — by Y5 graduation it’s ~60 entries of honest “what changed this month.” That’s the dataset this whole document becomes.
The year
~580-620 hrs ROOT work6 phases shipped + 1 final exam~5-10 cinematic content pieces (day-rhythm / week-rhythm / launch videos)1-2 loud launches (Y2: terralabs; Y3: basecamp; Y5: Studio + mlship)End-of-year retrospective written hereThe year-end retrospective is the longest entry of the year. It’s where the per-month paragraphs get a frame put around them — the theme that quietly emerged, the unexpected pivot, the project that grew bigger than its phase, the pattern that didn’t transfer the way you expected.
| Cadence | Beat | Output | What breaks if you skip |
|---|---|---|---|
| Day | run-pray-build + commit | externalized work | the day stays in your head |
| Week | Sunday weekly log | written reflection | the week doesn’t compound |
| Month | retrospective entry here | narrative paragraph | the year has no through-line |
| Year | end-of-year retrospective | thematic frame | the program is just 30 phases |
Pre-flight (Month 0: before Phase 1 starts)
You set up the homelab. Proxmox runs. The bastion is hardened.The TP-Link AX3000 owns the LAN. You can SSH into the homelab from the ThinkPadwithout thinking. You commit to 12 hours a week for 60 months.
You have not yet started Phase 1. You're at the trailhead.
The vertigo is real: 5 years feels like forever; you've never sustained anythingthis long; you're worried that you're "behind"; you're worried your day-job willpivot in a way that makes ROOT impossible. None of that matters today.
Today you start Phase 1.
The rhythm starts before the curriculum does — the run, the prayer, the morning reading,the Sunday log. Build the cadence first; the curriculum drops into the cadence on Month 1Week 1.Concretely, pre-flight finishes when four things are true: the homelab is wired and reachable per homelab/hardware; the AI Learning Protocol has been read end-to-end; the Master Plan has been skimmed at least once so you know what exists; and the rhythm has held for two consecutive weeks of run-pray-build before Phase 1 opens. The two-week dry run is the proof that the cadence is real, not aspirational.
The Year 1 entry point is year-1 overview → Phase 1: OS Foundations. Don’t open Phase 1 until pre-flight is done.
Year 1: Foundations of Computing (Months 1-12)
Theme: “the year you learn that everything is layers, and every layer leaks.”
Month 1: [Phase 1 OS — to be filled in]Month 2-3: [Phase 2-3 Networking + Databases]Month 4-5: [Phase 4 Python — ship rxp + konfig]Month 6-7: [Phase 5 Go — ship pulse]Month 8-9: [Phase 6 Containers]Month 10-12:[Phase 7 K8s + GitOps — ship triage; basecamp begins]
Year 1 feeling: ___ (filled in at end of Y1)Year 1 is the year nothing is abstract. You read kernel source, you watch packets on the wire, you write Python and Go because you have to ship rxp, konfig, and pulse, and you build containers from unshare and cgcreate before you’re allowed to type docker run. By the end of Phase 7, Kubernetes stops looking like magic and starts looking like the obvious thing you’d build if you’d already learned namespaces, cgroups, etcd, and reconciliation loops in order. The leak in every layer becomes the unifying lesson — sockets leak into TCP, TCP leaks into the kernel scheduler, the scheduler leaks into the container runtime, the runtime leaks into Kubernetes. By Month 12, you stop being surprised by leaks and start expecting them.
→ Per-phase paragraphs added as Year 1 unfolds. The end-of-year reflection is written at the Year 1 Final Exam.
Year 2: Distributed Systems & Cloud (Months 13-24)
Theme: “the year you learn that single-node intuition is wrong at scale.”
Month 13: [Phase 8 — DDIA + Raft]Month 14: [Phase 9 — terralabs first public launch]Month 15-21: [Phases 10-12 — AWS + GCP + Platform Engineering]Month 22-24: [Phase 13 — multi-cloud basecamp capstone]Year 2 is the year your reflexes get retrained. Things that were obvious on a single machine — “just write to the database, then read it back” — stop working when there are three nodes, two regions, and a partition. Phase 8 is the inflection: DDIA, Raft, CAP/PACELC. Then Phase 9 ships terralabs public — your first loud launch — and the rest of the year is AWS deep, GCP compare, and the platform-engineering primitives (Backstage, mesh, secrets, RBAC, SLOs) that turn a stack into a platform. The Y2 capstone is multi-cloud basecamp, and platform-ctl starts. The thing that changes about you is hard to name precisely, but the overview names it: single-machine intuition → distributed-systems thinking. The Year 1 → Year 2 transition is one of the three identity-changing transitions in the program.
Year 2 feeling: ___→ Filled in as the year unfolds.
Year 3: Platform Engineering & Data (Months 25-36)
Theme: “the year the platform stops being a project and starts being infrastructure.”
Month 25: [Phase 14 — eBPF + Observability]Month 26-32: [Phases 15-18 — Lakehouse + Stream + Batch + Serving]Month 33-36: [Phase 19 — Governance capstone; basecamp goes PUBLIC]Year 3 is the year basecamp goes from “the thing I build phases on” to “the thing I run.” Phase 14 lands eBPF and observability at depth — the year starts with you actually being able to see what the platform is doing. Then the data tier stacks: Lakehouse, Stream, Batch, Serving. By Phase 19 the governance capstone closes the year and basecamp goes public — the GitHub repo flips from private to public, the README is real, the runbooks are real, and somewhere a stranger opens an issue. That’s the moment the platform stops being a portfolio piece. The overview frames this transition as platform-as-tool → platform-as-product. The thing you were running for yourself becomes the thing you offer to others, and the personal-api Y3 milestone is the first dogfood that proves you’d use it too.
Year 3 feeling: ___→ Filled in.
Year 4: ML & AI Infrastructure (Months 37-48)
Theme: “the year the platform meets the moment.”
Month 37-44: [Phases 20-23 — MLOps + Serving + Feature Store + Kubeflow]Month 45-46: [Phase 24 — llm-gateway v1 + notes-rag]Month 47-48: [Phase 25 — GPU + drift + auto-rollback]Year 4 is when the platform finally meets the thing the brand is named after. Phases 20-23 put the MLOps lifecycle on basecamp — MLflow, KServe, Ray, Feast, Kubeflow Pipelines, Katib. Phase 24 ships llm-gateway v1: an OpenAI-compat API with multi-model routing, RAG, streaming, cost tracking, all serving real (homelab-scale) traffic. The same phase produces the notes-rag dogfood — the RAG over your own ROOT writing and weekly logs that the overview has been quietly waiting for. By Phase 25, GPU scheduling on cloud spot, drift detection, and auto-rollback are wired in. The platform you’ve been building for three years now actually does the thing the tagline promised — Building an AI Platform in Public. Kernel to LLM. This is the year Abukix Studio becomes a brand with substance behind it instead of an aspiration.
Year 4 feeling: ___→ Filled in.
Year 5: AI Platform + Capstone (Months 49-60)
Theme: “the year you ship the artifacts that prove the journey.”
Month 49-50: [Phase 26 — Agent Development]Month 51-52: [Phase 27 — MCP]Month 53-54: [Phase 28 — AIOps]Month 55-56: [Phase 29 — Abukix Studio launches]Month 57-60: [Phase 30 — Capstone: mlship v2 + pattern paper]Year 5 is the operator → architect transition the overview flags as the third identity-changing inflection. You stop building services and start building the agents that operate services. Phase 26 is LangGraph; Phase 27 is MCP and tool use; Phase 28 is services/aiops/ — agents that triage alerts, propose runbooks, and execute through platform-ctl against the platform you’ve spent four years building. Phase 29 launches Abukix Studio publicly: the portal, the command palette, the composition recipes. Phase 30 is the capstone — mlship v2 (mlship deploy ./model.pkl → URL) plus the pattern paper, which is Staff/Principal-grade writing reviewed by 2+ external readers. By Month 60 the artifact set is no longer aspirational. It’s a thing on disk. It runs.
Year 5 feeling: ___→ Filled in.
Graduation (Month 60)
[Written at end of Month 60.]
What's true now that wasn't true 60 months ago:- ___- ___- ___
The rhythm held: 60 months of the day → week → month → year cadence.The curriculum stacked on top of it.
What I will do next, I will decide with the data of these 5 years —not with the speculation of pre-flight day. Future-me knows thingscurrent-me can't. I trust future-me to pick.
ROOT is over. The platform continues. The career begins.The rhythm stays.The graduation paragraph is the only one in this document that’s allowed to be aspirational at the moment of writing — every other entry is retrospective. It’s the closing bracket on the 60-entry monthly retrospective and the 5-entry year-end retrospective, and it’s the natural place to link to the Year 5 Final Exam result and the launched Abukix Studio.
How to write entries
Each month’s addition: 1-2 paragraphs. Honest, specific, future-self-readable.
Four prompts that produce useful entries:
- What surprised me — the “wait, that’s not how I thought it worked” moments
- What was harder than expected — where the friction lived
- What felt easier — where prior phases compounded
- What’s true now that wasn’t last month — the smallest provable change
Plus one rhythm prompt: 5. How did the rhythm hold? — did the day/week/month cadence stay intact, or did something pull it off?
Keep entries short. The cumulative narrative emerges from the discipline, not from any single month’s polish.
Cross-references
- Master Plan — the structural map this story sits next to
- AI Learning Protocol — the rules for working with Claude/ChatGPT alongside this rhythm
- meta/weekly-log-template — weekly logs are the raw material that feeds this monthly arc
- brand/identity — the brand frames the rhythm publicly
- brand/content-playbook — content production maps to rhythm beats
- homelab/hardware — the pre-flight setup that has to land before Phase 1
- Year 1 · Year 2 · Year 3 · Year 4 · Year 5 — the per-year overviews
- Year-end retrospective posts on abukix.dev/blog — the public version of the same story