Back to Blog
Available in:
Mar 25, 20264 min read

Compound Engineering: The Loop That Turns Experience Into Assets

Plan → Work → Review. Every engineer does this.

What almost nobody does is the fourth step. Without it, each working session is discarded the moment you close the terminal. The hard call you made — "we chose X because Y, and Z would have failed for reason W" — is unreachable six months later.

The problem

Engineers accumulate experience but rarely convert it into structured knowledge. A difficult decision made in March is inaccessible in September when the same trade-off resurfaces.

Conventional documentation records the what: changelogs, READMEs, comments. The why and the what I'd do differently — the parts with reusable value — stay lost in the context of a session that has already ended.

The four steps

Plan. Define scope and requirements before acting. Plans live as versioned Markdown files, not in your head. The rule: no line of code before the scope is clear.

Work. Implement according to the plan. Code, docs, configuration — all traceable, committed with conventional prefixes. Divergences from the plan get recorded, not ignored.

Review. An explicit quality gate. Do tests pass? Are architectural decisions captured as ADRs? Are blockers identified and tracked? Is documentation current? Review is not just code review — it's validating that the session's knowledge was captured.

Compound. The most underrated step. Extract the session's knowledge into permanent assets: Zettelkasten notes, docs/solutions/ files, agent skills, ADRs, articles. Without this step the loop earns no interest — it's just work.

Why make it explicit

The obvious alternative is "document when necessary." It is never necessary in the moment; the urgency of the next ticket wins every time. The result is knowledge lost systematically rather than occasionally.

A centralized wiki captures the what and tends to become a dead archive — no versioning next to the code, no emergent connections between concepts.

Making Compound a mandatory step of the loop creates accountability: the session is not "done" until the knowledge is captured.

What it costs

You gain a real compounding effect. After six months of loops, past decisions are accessible as a navigable graph. Onboarding happens through the knowledge base instead of "go ask so-and-so." Articles emerge from permanent notes without extra work.

You pay roughly 15–30 minutes of Compound per four hours of Work, plus genuine psychological resistance — the step feels optional exactly when you're moving fast. And it can calcify into bureaucracy if the template becomes more important than the content.

How it fails

The degenerate loop: Plan → Work → Plan, with no Review and no Compound. It feels productive while accumulating knowledge debt. The symptom is remaking the same decision across sessions without knowing why.

Compound becomes archiving. Writing "what was done" instead of "what was learned." The test: if the note contains no trade-offs and no "what I'd do differently," it isn't Compound — it's a changelog.

Notes without connections. Capture without a graph. The value of a Zettelkasten emerges from links, not from individual notes. A permanent note with fewer than two connections is isolated and contributes nothing to the compounding.

What I learned

Compound is far easier immediately after Review, while context is still warm. Scheduling it for "later" almost always means never.

Resistance to Compound usually signals that the plan was poorly defined — there was no clear criterion for "session complete." Defining that criterion during Plan reduces the friction at the end.

And tools matter less than the habit. This loop worked with Markdown, Logseq and Cursor. It would work with Obsidian, Notion and vim. What breaks the loop is the absence of the step, not the choice of tool.

The signal that it's working: you consult a note you wrote four months ago before making a decision, and it already anticipated the trade-off you were about to ignore.

References

ProcessEngineeringKnowledgeLearning