05 — Teach to Learn

Output is not a bonus. Output is a load-bearing wall of this arc. A rung you cannot explain to a stranger is a rung you have not learned.

This file is the publication contract. It is also the recruiter-magnet system: by M11 you want a Google search of your name to surface at least 6 pieces of substantive C++ writing. That does not happen unless you start posting at M3.


The Feynman test

Before publishing anything, apply this test:

“Can I write this in 500 clean words that a smart CS undergrad understands without prerequisite knowledge?”

If no — you don’t understand it yet. Do not publish. Go back to the code. Re-derive. Then try again.

This test is why publishing is a learning tool, not a chore. The act of compressing a concept to 500 legible words is the learning. If the writing feels like translation, you’ve mastered it. If the writing feels like discovery, you haven’t — and the writing is helping you get there.


Where to publish

Primary: a personal blog on your own domain. Everything else is a mirror.

Blog stack (pick one, then never touch it again)

Option

Stack

Setup time

Notes

Hugo + PaperMod

static, markdown

2 hrs

Recommended. Fast, boring, zero fights.

Astro

static, MDX

3 hrs

If you want interactive components (charts, code demos).

11ty

static, markdown

2 hrs

If you already know Nunjucks/Liquid.

Bear Blog / Mataroa

hosted, markdown

20 min

Zero setup. Give up on customization. Fine for M3, may migrate later.

Domain: raghul<something>.com or <something>.dev. Cheap. Do it in W1. Doesn’t need content yet — just the URL alive.

Mirrors (post the same content, always link back to blog)

  • Twitter/X or BlueSky — thread version, 5–10 tweets. Post link at the end.

  • LinkedIn — article version, formatted for the LinkedIn audience (less code, more “why this matters”). Once/month, not more. Volume kills LinkedIn engagement.

  • r/cpp weekly show-off thread — for project posts, not concept posts.

  • Hacker News — sparingly (1–2x during the arc, only for genuinely strong pieces). Do not spam.

  • dev.to / Medium — optional. Their algorithms are noisy. Skip unless you enjoy the community.

Rule: your blog is canonical. Mirrors point to blog. Never post the full text on LinkedIn or Medium as canonical — you lose SEO value on your own domain.


Post cadence

Phase

Posts / period

Volume target by end of phase

M1–M2

none required

Set up blog, first “hello” post allowed

M3–M8

1 substantive / month

6 posts total

M9–M13

1 / fortnight

+10 posts = 16 total by M13

Substantive = at least 500 words + at least one code block or diagram + at least one non-obvious insight. A tweet is not a post. A LinkedIn one-liner is not a post.

By M13: ~16 posts. That is your writing portfolio. Every serious recruiter who Googles you finds this.


Post templates

Template A — “The Footgun Post” (best format for M3–M5)

Strong opener. Real bug. Real fix. Real lesson.

# The [Feature] Footgun I Hit This Week

## The bug
One paragraph. What broke. Include the actual compiler error
or runtime symptom.

## The minimal repro
```cpp
// 15 lines max, must compile as-is

What you expected. What actually happened.

Why it happens

One to two paragraphs on the language rule you tripped over. Link to the exact cppreference section.

The fix

// the corrected version

The lesson

One sentence. The rule you’ll carry forward.

Notes

Compiler/version/flags. Because you have 03_benchmark_hygiene.md habits now.


**Concrete example title for W1 sprint work:** *"The `std::move` Footgun That Cost Me an Hour: Move From a `const` Object."* Real story, real embarrassment, real lesson. Readers love it. AI-generated content does not smell like this.

### Template B — "The Benchmark Post" (M6+)

```markdown
# I benchmarked X against Y. Here's what I found.

## The question
One paragraph. Why does this matter?

## The setup
(Full block from `03_benchmark_hygiene.md`)

## The numbers
(Table)

## Why the difference
One or two paragraphs of mechanism, not just observation.

## Caveats
Honest. Every benchmark has caveats.

## Code
GitHub link.

Template C — “The Rung Post” (end of each rung)

# Rung <N>: I built <X>. Here is what I learned.

## What it is
One paragraph + screenshot/gif.

## What was hard
Three bullets. Real difficulty, not humblebrag.

## What I'd do differently
Three bullets.

## What's next
One paragraph pointing at the next rung.

## Code
GitHub link. README must satisfy `03_benchmark_hygiene.md` if numbers claimed.

Twitter/X thread structure (mirror)

5–10 tweets, 1 image (screenshot of code or benchmark), link at the end.

  1. Hook (the surprising claim or the bug’s punchline)

  2. Context (what you were doing)

  3. The trap (minimal repro)

  4. The realisation (why it happens)

  5. The fix

  6. The lesson

  7. Link to full post + “more like this:

Avoid: hustle-culture opener (“I studied C++ for 10 hours today🔥”). Nobody with a job takes those posts seriously.


LinkedIn structure (mirror)

Different audience. Fewer engineers, more managers/recruiters. Lead with the why, not the how.

I spent 3 hours this week debugging a use-after-move.
The fix was 1 line. Here's what took the other 2h 59m.

<3 short paragraphs — the WHY it matters at work,
 not the syntax detail>

Full technical write-up on my blog: <link>

Once a month. Do not post more — LinkedIn punishes volume in the technical niche.


What NOT to publish

  • Motivational content. “Day 47 of my C++ journey💪” — do not. Recruiters skim past it.

  • AI-generated summaries. Everyone can smell them. It hurts your credibility badly. If you use AI to draft, rewrite every sentence in your own voice before publishing.

  • Uncontextualised code dumps. “Here’s a memory pool I wrote” without a why-should-I-read-this hook = 0 engagement, 0 learning value.

  • Half-done drafts. Better to post nothing than to post “I don’t fully understand this but here’s my attempt.” Wait until you can pass the Feynman test.


Handling comments and pushback

  • A senior engineer corrects you publicly on X or r/cpp. Thank them, edit the post, add a “corrections” section at the bottom. This is free tutoring from the exact people you want to be evaluated by. Do not defend a mistake.

  • A troll dunks on you. Ignore. Do not engage. Move on.

  • You realise a post is wrong 2 weeks later. Edit the post, add a note at the top: “[2026-08-15 update] I originally claimed X. That was wrong. Here is why.” This is a good signal to a hiring manager — shows you correct yourself.


The M11 pay-off

When a recruiter Googles “Raghul C++” in M11, they should find: a blog with 12+ posts, a GitHub with 6+ shipped rungs, an X/LinkedIn presence with technical threads. That is the signal that separates you from 95% of applicants.

None of that exists at M2. All of it exists at M11 if you post 1x/month from M3 and 2x/month from M9.

The compounding is not in each individual post. It is in the search-engine footprint of 16 posts across 11 months, all pointing at the same domain.