Engineering Memory: Why Teams Forget Faster Than They Learn
Share this post

PROLOGUE β€” The Abandoned Repository

The alert fired at 03:14 on a Tuesday, which is when alerts fire.

Maya had been at the company for eleven days. She had a laptop, a badge that still said CONTRACTOR because IT had not processed the correction, and a Slack profile picture that was still the default gray silhouette. She was on the on-call rotation because the rotation had been generated automatically from the team roster, and she was on the team roster, and nobody had thought to ask whether eleven days was enough.

The alert said: payments-reconciler: queue depth > 50000, sustained 15m.

She found the runbook. The runbook was good. Someone had cared about it once β€” it had a table of contents, a diagram, a section titled If You Are Reading This At 3 AM, Start Here. She started there. It told her to check the reconciler's lag against the ledger service, then to check whether the ledger service had entered what the runbook called "catch-up mode," then, if both were true, to run a command.

The command was this:

./ops/reconcile-drain.sh --mode=soft --skip-window=4h --no-verify

Underneath it, in a callout box, the runbook said:

Do not remove --no-verify. It will look like it should be removed. It should not be removed.

Maya read that sentence four times. Then she scrolled, looking for the paragraph that would explain it. There was no paragraph. The runbook moved directly to the next section, which was about paging the payments lead if the queue did not drain within twenty minutes.

She ran the command. The queue drained. She wrote a short Slack update in #incidents, got two πŸ‘ reactions from people in other time zones, and went back to bed at 04:40 without sleeping.

At standup the next morning, she asked about --no-verify.

Rahul, who had been there three years and was the closest thing the team had to a historian, said: "Oh, yeah. You have to leave that. If you take it off, the whole thing wedges."

"Why?"

He thought about it. He genuinely thought about it β€” he was not being dismissive, he was searching. She watched him search.

"I think it's something about the verification step trying to acquire a lock that the drain already has? Or β€” no. I think it was something with the schema. There was a column that got added and the verifier doesn't know about it, so it fails everything." He paused. "Actually I don't know if that's right. I inherited that from Dmitri."

Dmitri had left in 2021.

Maya went looking. This is the part of the story where a certain kind of engineer feels something like joy, because a mystery has appeared and mysteries are why we do this. She had four hours and a strong opinion about unexplained flags.

She found the script. It was 340 lines of bash, and it was good bash β€” set -euo pipefail, meaningful variable names, comments at the top of each function. Whoever wrote it had been a professional. The --no-verify flag routed around a function called verify_ledger_consistency, which was 60 lines long and, as far as she could tell by reading it carefully, correct.

She found the commit that added the flag. October 2019. The commit message said:

add --no-verify escape hatch

see incident 2019-10-14

She searched the incident tracker for 2019-10-14. The incident tracker had been migrated in 2022 from a self-hosted tool to a SaaS product. The migration had preserved incident titles, severities, timestamps, and the names of participants. It had not preserved the bodies, because the bodies had been stored as attachments in a format the new system did not accept, and the person running the migration had made a reasonable decision under deadline pressure: get the metadata in, deal with the attachments later.

Later did not arrive.

So Maya had a title β€” Ledger reconciliation stall during regional failover β€” and a list of six names, four of whom no longer worked there. The two who remained were a VP who had been added to the incident as an observer and had no memory of it, and a staff engineer on a different continent who replied to her DM with the most honest sentence anyone said to her that month:

I remember being in that incident. I don't remember what we learned.

She tried the wiki. The wiki had 4,100 pages. Search returned nineteen results for "reconcile-drain," of which fourteen were meeting notes that mentioned the script in passing, three were duplicate copies of the runbook at various stages of decay, one was a 2020 architecture proposal to replace the reconciler entirely (status: Draft, last edited five years ago), and one was a page titled Payments Onboarding (OLD - see new) that linked to a page that had been deleted.

She tried Slack. Slack's retention policy was ninety days.

She tried the code. The code was the only witness that had not left, and the code told her what but refused, in the way code always refuses, to tell her why. She could see that verification was skipped. She could not see what verification had done, once, on a bad night in October 2019, that made a team of tired people decide it must never be allowed to do it again.

So she did what every engineer does at the end of this particular road. She wrote a comment.

Β 
bash
# --no-verify: DO NOT REMOVE.
# Original reason lost (see incident 2019-10-14, body not migrated).
# Rahul thinks it's a lock contention or schema drift issue with
# verify_ledger_consistency(). Unconfirmed. I could not reproduce
# the failure in staging.
# β€” Maya, 2026-02-03

It was the most honest documentation in the repository. It was also, in a sense, a tombstone. She had not recovered the knowledge. She had recorded, precisely and carefully, the exact shape of its absence.

Eighteen months later a well-intentioned engineer doing a cleanup sprint deleted the flag, because it had no test coverage and no ticket and the comment said the reason was lost, and if the reason is lost how important could it be.

You already know what happened next.

The software survived. Its memory didn't.


I. THE EXCAVATION

Field notes from a site survey.

Consider an engineering organization the way an archaeologist considers a tell β€” one of those artificial hills in the Near East that turns out, on excavation, to be a city built on a city built on a city, each one flattening and becoming the foundation of the next.

You do not find a tell by seeing a city. You find it because the ground is slightly higher than it should be.

A codebase is a tell. Nobody planned the stratigraphy. It accumulated.

Here is what a survey team finds when it cuts a trench through a fifteen-year-old system, working from the surface down.

Layer 1 β€” Surface deposits (0–8 months)

The topsoil is disturbed and easy to read. Recent PRs. Active feature flags. A Kubernetes namespace named after a project that is still in flight. Dashboards that people actually look at. Slack channels where the last message was today.

This layer is legible because the people who made it are still here. If you want to know why something exists, you turn around and ask. The organization is not consulting its memory; it is consulting its living participants. This is the crucial distinction that the rest of this article will keep returning to: an organization that can answer "why" by asking a person is not remembering. It is only not-yet-forgetting.

The surface layer always looks healthy. That is what makes the problem invisible from the top.

Layer 2 β€” The recent past (8 months–2.5 years)

Now the reading gets harder, and it gets harder in a specific way that is worth naming.

Here you find services whose original owners have moved to other teams inside the same company. This is not departure; it is drift. The knowledge still exists somewhere in the building, but it has become expensive to retrieve. You have to know whom to ask, which means you have to know that there is something to ask about, which means you have to already have most of the answer.

Artifacts of this layer:

  • Feature flags at 100% rollout for eighteen months. Nobody has removed them because removal requires knowing whether the old path is dead. Nobody knows whether the old path is dead.
  • A v2 API with 4% of traffic and no deprecation date.
  • Terraform modules with a # TODO: refactor when we move to the new VPC comment. There is no new VPC. There was going to be.
  • Dashboards with three panels that show No Data and have shown No Data long enough that nobody notices the color anymore.

The recent past is where decision provenance first detaches from decision artifact. The thing still exists. The reason has begun to travel separately from it, and the two will never be reunited.

Layer 3 β€” The deep past (2.5–7 years)

The trench walls change color here. Different tooling, different conventions, a different company.

You find:

Configuration files. A config/legacy_overrides.yaml with forty keys. Eleven are read at runtime. Twenty-nine are not read by anything, but nobody can prove that, because proving it requires a full-text search across three repos that were archived, plus a deployment system that was replaced, plus knowledge of a batch job that runs quarterly and is therefore absent from every trace you look at.

Database tables. users_temp_20210812. orders_backup_migration. feature_assignments_old. These are the potsherds of the archaeological record: high-volume, low-information, impossible to date precisely, and enormously revealing in aggregate. A schema with nine _old tables is telling you something true about how this organization does migrations. It does them by addition and never by subtraction, because subtraction requires certainty and certainty requires memory.

Runbooks. The most poignant artifact class, because runbooks are the one document type written by people who knew, for people who would not. Every runbook is a message to the future. Most of them contain, somewhere, a sentence like the one Maya found β€” an imperative stripped of its reasoning. Always restart the primary first. Never scale this below three. Don't run this during month-end. Each of these sentences is a fossilized decision with the soft tissue gone.

Architecture diagrams. Diagrams decay faster than any other artifact, and they decay dishonestly. A stale runbook fails loudly when you follow it. A stale diagram just quietly misinforms. Worse: diagrams describe topology, and topology is the least interesting thing about an architecture. Nobody was ever confused about what talks to what. They were confused about why it was allowed to.

Postmortems. Here the excavation gets genuinely strange, because postmortems are the artifact class the industry is proudest of and they are, in most organizations, the artifact class with the lowest read-rate per word written. They are produced with great ceremony and consumed almost never. We will come back to this, because it is the central paradox of incident learning: the postmortem is optimized for the moment of writing, not the moment of need.

Layer 4 β€” Bedrock (7+ years)

At the bottom, things stop being documents and start being shapes.

Nobody wrote down that all timestamps in this company are UTC-except-in-the-billing-service. It is simply true, in the way that the width of a Roman road is true β€” a constraint inherited from a decision so old that its cause (a hosting provider that has not existed since 2016) has been fully absorbed into the physical form of the thing.

At bedrock you find:

  • A service naming convention that references a product line that was sunsetted.
  • A repository directory structure that mirrors an org chart from two reorgs ago. This is Conway's Law as sediment: the architecture is a fossil of a communication structure that no longer exists.
  • Retry semantics tuned for a network that was replaced.
  • An entire subsystem whose sole purpose is to translate between two conventions, both of which the company invented, in two different years, for two different reasons, neither of which anyone can state.

What the artifacts reveal, and what they cannot

Here is the finding that matters, and it is the reason this article is not about documentation.

Every artifact in a software system is a record of a decision's output. Almost none of them record the decision's input.

The code records what we chose. It does not record what we rejected, or what we feared, or what we didn't know, or what the deadline was, or which customer was threatening to leave, or which of the three engineers in the room had already seen this fail somewhere else and said so.

The schema records the shape of our data. It does not record the two hours of argument about whether that column should be nullable, and the specific production incident from a previous company that made the senior engineer insist that it must be.

The dashboard records what we measured. It does not record what we were afraid of, which is the actual information content of a dashboard. Every panel is an answer to a question somebody was scared enough to ask. The panel survives. The fear β€” which was the useful part, because fear is compressed experience β€” does not.

This is the asymmetry at the heart of engineering knowledge loss:

We preserve conclusions with perfect fidelity and reasoning with none at all.

And conclusions without reasoning are not knowledge. They are superstition with good uptime. They work, right up until conditions change, at which point they fail in a way that nobody can diagnose because nobody knows what conditions they were valid under in the first place.

The archaeologist's consolation is that the past is genuinely gone and can only be inferred. The engineering organization's tragedy is that the past was, at every single moment, still present and merely un-recorded β€” that between the decision and its disappearance there was always a window, usually about six weeks wide, during which forty-five seconds of writing would have preserved it permanently.

That window is the entire subject of this article.


II. THE MUSEUM OF LOST DECISIONS

Visitor's catalog. West Wing, permanent collection. Audio guide available in the atrium.

Welcome. Please keep your voices low; several of the exhibits are still in production.

This museum contains no software. It contains only decisions β€” specifically, decisions whose reasoning has been lost while their consequences remain fully operational. Curators refer to this collection as load-bearing amnesia.

The rooms are arranged not by date but by the emotion each exhibit produces in the engineers who encounter it.


ROOM 1 β€” The Database Nobody Wanted to Touch

Exhibit 1.1 β€” prod-mysql-04. Cast iron, 2015. On permanent loan from Platform Engineering.

Visitors frequently ask why this database has been left in place when the migration plan to replace it is nine years old and has been approved four separate times.

The answer is on the placard beside it:

Two of its 61 tables are read by a nightly job. The nightly job is owned by a team that was dissolved in 2020. The job's output is consumed by a finance process. The finance process is real. Nobody can name the person who understands the join.

Note the fine layer of dust and the exceptionally good backup coverage. This is characteristic. Organizations do not neglect the systems they fear; they over-protect them. The backups are pristine precisely because nobody dares touch the thing they are backing up. Curators call this the reliquary effect: an artifact becomes sacred in inverse proportion to how well it is understood.

What was actually lost here was not documentation. It was a single sentence, spoken once in 2017 by a data engineer named Priya, which was: "Those two tables are the only place where we keep pre-adjustment revenue, because the adjustment pipeline overwrites in place."

That sentence would have made the migration a two-week project. Its absence has made it a nine-year standoff. Estimated cost of the missing sentence: eleven engineer-months of avoidance, one deferred cloud migration, and an unquantified but non-zero probability of a very bad quarter-end.


ROOM 2 β€” The API Everyone Was Afraid to Delete

Exhibit 2.1 β€” /v1/entitlements/check. Mixed media, 2018–present. 40 requests per minute.

Forty requests per minute is a fascinating number. It is too high to be noise and too low to be a product. It is, in fact, the traffic signature of an integration β€” and integrations are the single most common source of engineering fear, because an integration is a promise made to someone outside the building.

Three deletion attempts are recorded in the exhibit's provenance:

  • 2021 β€” blocked. An engineer noticed that one of the calling IPs belonged to a partner. Nobody could identify the partner.
  • 2023 β€” blocked. A "deprecation notice" was sent to a mailing list that had no subscribers.
  • 2025 β€” blocked. Someone proposed simply turning it off for an hour to see who complained. This was rejected as reckless. It was, in fact, the only proposal in nine years that would have generated new knowledge.

Observe the framing of that last point, because it recurs throughout the collection: when memory fails, organizations lose the ability to distinguish between "dangerous" and "unknown," and default to treating everything unknown as dangerous. This is individually rational and collectively catastrophic. It is the mechanism by which a codebase becomes unchangeable without a single line of it becoming worse.


ROOM 3 β€” The Configuration Nobody Understood

Exhibit 3.1 β€” MAX_INFLIGHT_BATCH=37. Bronze, undated.

Thirty-seven.

Not 32. Not 50. Not 100. Thirty-seven.

Every organization has one of these, and the number is always slightly wrong-looking, and that wrongness is the fingerprint of empiricism. Nobody picks 37 from theory. Somebody picked 37 because 40 broke something at 2 a.m. and 35 was where the graph got flat and they added two for margin and went home.

That night is the entire information content of this exhibit, and it is gone.

What remains is the number, and around the number, a small cult. New engineers are told not to change it. Some of them ask why. The answer they receive is a story about a story: "I think there was an incident." The number has become a taboo β€” a behavioral rule that outlives its justification, enforced by people who cannot explain it and obeyed by people who assume someone can.

Anthropologists studying human societies find this everywhere. Food prohibitions, construction rituals, seating rules. The behavior encodes real adaptive information; the explanation degrades within two or three generations into "that is how it is done."

Software organizations reach this state in about eighteen months.


ROOM 4 β€” The Incident That Changed Everything

Exhibit 4.1 β€” The Deploy Freeze. Institutional practice, est. 2019.

This exhibit is unusual: it has no physical form. It exists only as a rule in a wiki page and a calendar block that recurs forever.

No deploys after 2 p.m. Thursday.

Every engineer at this company knows this rule. Approximately nobody knows that it was created after a specific incident in which a Thursday-evening deploy interacted with a weekly batch job β€” a job that ran Thursday nights, that was replaced in 2021 by an event-driven pipeline, and that no longer exists.

The hazard is gone. The rule remains. The rule now costs the organization roughly 15% of its available deploy windows, which compounds into slower feedback loops, larger batch sizes, and β€” with beautiful irony β€” riskier releases.

Curators file this exhibit under Scar Tissue: an organizational adaptation that was correct at the moment of formation, that persists after the injury heals, and that gradually restricts range of motion.

The diagnostic question for any such rule is simple and almost never asked: What would have to be true for us to stop doing this? An organization with memory can answer. An organization without memory cannot even parse the question, because the rule has no stated precondition to falsify.


ROOM 5 β€” The Feature Flag That Never Disappeared

Exhibit 5.1 β€” enable_new_checkout_flow. Created March 2021. Rolled to 100% June 2021. Still evaluated 2.4 billion times per day.

The old code path is still there. It has to be, because the flag is still there. Because the flag is still there, every change to checkout must be reasoned about twice. Because every change must be reasoned about twice, checkout changes are slow. Because checkout changes are slow, the team avoids them. Because the team avoids checkout, nobody develops fresh knowledge of it.

Please note the loop on the wall display. This exhibit is not a curiosity; it is a knowledge decay engine. The flag does not merely preserve dead code. It actively suppresses the formation of new understanding, by making the surrounding area expensive to explore.

This is the museum's central thesis, stated as clearly as we can state it:

Forgetting is not just the loss of old knowledge. It is the ongoing prevention of new knowledge.


ROOM 6 β€” The Rejected Design

Exhibit 6.1 β€” Empty case. No artifact.

We display this case empty deliberately.

In 2020, this organization considered three architectures for its notification system. It chose one. The other two were discussed for a combined nine hours across four meetings involving eleven people, and then they ceased to exist β€” not archived, not summarized, not named. Simply gone, the moment the decision was made.

In 2024, a new team, unaware of any of this, proposed one of the rejected designs. It took them five months to rediscover the specific reason it had been rejected: a delivery-ordering guarantee that the design could not provide and that a single large customer contractually required.

Five months. To re-derive a conclusion the company had already reached and thrown away.

The most expensive knowledge an organization discards is the knowledge of what it decided not to do. Chosen designs defend themselves β€” they exist, they run, they are visible. Rejected designs have no advocate and leave no trace, which means every rejected design will eventually be proposed again by someone smart, sincere, and uninformed.

The empty case is the most visited exhibit in the museum. Visitors report finding it uncomfortable. That is the intent.


Exit through the gift shop. The gift shop sells nothing. Everything in it was made by someone who left.


III. VOICES FROM DIFFERENT YEARS

Recovered fragments. Sources: commit messages, Slack exports, design doc comments, exit interview notes, and one voice memo. Arranged chronologically. Names removed.


Year 1

"We'll document this later. Right now the only thing that matters is whether anyone actually wants it."

git commit -m "hack for launch, will clean up"

"Honestly it's four of us in a room, we all know how it works."

Curator's note: This is not negligence. It is correct prioritization under genuine uncertainty. The company might not exist in six months. Documenting a system that may be deleted is waste. Almost every knowledge-loss story begins with a decision that was right at the time β€” this is what makes the problem so hard to legislate against.


Year 2

"Wait, who owns the ingestion service now?"

"I'm going to write this down while it's fresh, because I've now explained it to three people this week."

"Ha, no, that name doesn't mean anything, it was a joke about Dave's dog."

Curator's note: The first symptom is repetition. An engineer explaining the same thing three times in a week is an organization spending its most expensive resource on retrieval. Some organizations notice this signal. Most experience it as normal friction and route around it individually.


Year 3

"I think there was a reason we don't batch these. Something about ordering? Let me ask Sam."

"Sam's on parental leave."

"Okay well, let's not batch them."

Curator's note: Observe the mechanism precisely. The knowledge is not lost β€” Sam has it. But the retrieval cost exceeded the decision's urgency, so the team inherited the conclusion without the reasoning. This is the exact moment a fact becomes a superstition. It happened in under ninety seconds and nobody in the room registered it as an event.


Year 4

"New person question: why does the deploy pipeline have two approval steps that both go to the same team?"

"Great question. I have no idea. It's been like that since I joined."

"Every time we onboard someone it takes about four months before they can debug production alone. That feels long? Is that long?"

Curator's note: Onboarding time is the most sensitive publicly available instrument for measuring organizational memory, and almost nobody reads it as one. Time-to-first-solo-incident is not a measure of how good your new hires are. It is a measure of how much of your system's reasoning lives in artifacts versus in people's heads. When it rises, memory is degrading β€” usually eighteen months before anything else shows a signal.


Year 5

"Nobody knows anymore. I asked in #eng-general and got three different answers, all confident."

"There's a doc but it's from 2021 and I don't trust it. I don't know which parts are wrong, which is worse than if it were all wrong."

"We should just rewrite it."

Curator's note: The appearance of "three confident and mutually exclusive answers" is diagnostic. It means the organization has passed from knowledge to folklore: multiple oral traditions coexisting, each locally coherent, none authoritative. Note also the emergence of the rewrite impulse. The rewrite impulse is nearly always a memory symptom rather than a technical one β€” the system is not too old to maintain, it is too unexplained to maintain, and rewriting is the only remaining path to understanding.


Year 6

"Postmortem action item: document the failover procedure."

(Status: Open. Assignee: unassigned. Created 14 months ago.)

"We've had this incident before. I remember it. I remember being tired. I don't remember what we changed."

Curator's note: The organization now experiences recurrence and can perceive recurrence but cannot access what it learned. This is the most painful stage, because the pain is fully conscious. Engineers here often describe a feeling of "running in place." Attrition rises. Attrition removes memory. The loop closes.


Year 8

"We're rebuilding everything. Clean slate. New stack, new team, no legacy."

"Migration is going well except we keep discovering things the old system did that nobody documented. Last week it was tax rounding. This week it's a retry behavior that apparently three enterprise customers depend on."

"It turns out the old system was not badly designed. It was designed for a set of constraints we can't reconstruct."

Curator's note: Here is the cruelest fact in this entire study. The rewrite does not escape the memory problem; it converts an accumulated memory debt into an immediate, compressed, and fully priced bill. Every undocumented behavior of the old system must now be rediscovered under deadline, in production, by people who did not build it, from customers who are surprised to be asked. Organizations routinely spend 3–5x their rewrite estimate, and the overrun is almost never technical. It is archaeological.


Year 10

"There's a script in ops/ that everyone says not to touch."

"Why?"

"Nobody remembers."

Curator's note: The cycle has closed. This is where the prologue began.


IV. ENGINEERING FOSSILS

Observational notes. Written in the manner of a naturalist who has spent too long in one ecosystem.

A fossil is not the organism. It is a mineral cast of the space the organism occupied. The creature is gone; what remains is the shape of its absence, preserved because the surrounding material was patient.

Software is unusually good at producing fossils, because software is unusually good at preserving structure while discarding intent.

Here is a field guide.

Naming conventions

The richest fossil bed in any codebase.

Names are chosen in a hurry, by people with a specific mental model, and then they outlive the mental model by a decade. A service called bridge was once a bridge between two things. Find out what those two things were and you will understand an entire era of the company.

Diagnostic pattern:

  • *_service and *_svc in the same repo β†’ two different architectural eras, or two different teams' conventions merged by an acquisition or reorg.
  • A name that is a metaphor (atlas, harbor, lighthouse) β†’ a period when the company was hiring fast and naming things aspirationally.
  • A name that is a description (user-preferences-api) β†’ a period after someone got badly burned by metaphors.
  • A name that is an abbreviation nobody can expand (ptx-core) β†’ the original expansion referred to a product that was renamed for marketing reasons. This happens constantly and is almost never recorded.

Folder structure

Conway's Law leaves body fossils. A repository laid out as payments/, identity/, growth/ was laid out when those were teams. When the teams change and the folders don't, you get the characteristic modern artifact: an architecture organized around an org chart that no longer exists, maintained by people who assume the structure was designed rather than inherited.

The tell: a top-level directory with one file in it. Something used to live there. The organization moved on and left the enclosure standing.

Database schemas

Schemas are the hard tissue of a system β€” they fossilize best because they are the most expensive to change.

A column named legacy_customer_id tells you there was a migration. legacy_customer_id_2 tells you there were two, and that the first one did not go well, and that by the second one the team had lost the will to name things carefully.

Nullable columns are especially informative. A NOT NULL constraint added years after a table's creation, with a backfill migration alongside it, is a fossilized incident. Something depended on that field being present, and something wasn't, and it was found out the hard way.

Nullable columns that should be NOT NULL and never became so are fossilized fear: someone knew, and didn't dare, because the backfill would have taken eleven hours and they could not prove what would break.

Infrastructure layouts

Three availability zones when the region has six. Instance types from a generation two removed from current. A subnet CIDR block sized for a scale target from a business plan that was revised downward.

Infrastructure fossilizes assumptions about the future β€” which makes it the only artifact class that records what the organization once believed was going to happen. An oversized cluster is a preserved forecast. Read it and you know what the company thought it was becoming.

Monitoring dashboards

Every panel on a dashboard is a fossilized fear, as noted in the excavation. But dashboards also fossilize attention.

The order of panels is a ranking of what mattered, on the day the dashboard was made. The panel at the top-left was the thing someone was most afraid of. If that panel now shows a metric nobody cares about, you are looking at a preserved emotional state from a previous era of the company β€” a snapshot of what it felt like to operate this system in 2020.

Dashboards with a panel titled something like WHY IS THIS SPIKING are the highest-value fossils in this class. Somebody was in pain. The panel remembers. The reason does not.

Retry and timeout values

The most under-read fossils in all of software.

timeout: 30s is a claim about a dependency's behavior under load, made by someone who once observed that behavior. When the dependency is rewritten, the timeout is not revisited, because the timeout is not about anything anymore. It has become a constant.

A system's timeout configuration, read as a whole, is a map of every performance surprise the organization has ever had. It is also, increasingly, a map of hazards that no longer exist and constraints that are now self-imposed.

Comments

The one artifact class that attempts to preserve intent, and therefore the one that fails most visibly.

Three species:

  1. The restatement. // increment counter above counter++. Information content: zero. Very common. Harmless but occupies the niche a real comment would fill.
  2. The warning. // don't move this above the null check. Information content: high. Reasoning content: zero. This is the fossil form of a bug that once happened. The bug is gone; its footprint remains.
  3. The confession. // I'm not proud of this. The upstream service returns 200 with an error body when the account is in a specific migration state. Ask Finance why. Information content: very high. Rarity: extreme.

Species 3 is what we are trying to cultivate. Everything in the second half of this article is, in one way or another, about how to make species-3 artifacts a normal byproduct of engineering work instead of a rare accident of temperament.


V. CONVERSATION WITH A FUTURE ENGINEER

Transcript. Recorded 2038. The subject is a principal engineer, 41, who has worked at four companies across sixteen years. Lightly edited for length.


Q: I want to start with the obvious question. It's 2038. Every company has AI systems that can read every line of code, every ticket, every message. Why do organizations still lose engineering knowledge?

Because we solved retrieval and we didn't solve recording.

That's the whole answer, honestly. Everyone in 2026 assumed the bottleneck was finding things. It wasn't. The bottleneck was that the thing you needed to find was never written down in the first place, and no amount of search improves your odds of finding something that doesn't exist.

Q: But surely AI captures more now. Meetings are transcribed. Every code change is summarized automatically.

Right, and that helped with a specific slice. If you want to know what happened, we're in an incredible position now. I can ask what changed in a service over three years and get a genuinely good narrative. That used to take a week of git archaeology.

What we still can't reconstruct is what people knew and believed and were worried about at the time. Transcripts capture what was said. Enormous amounts of engineering reasoning are never said. Someone looks at a design and feels a specific unease, based on a failure they lived through at a previous job, and they don't say "this reminds me of a cascading failure I saw in 2029," they just say "I'd feel better with a circuit breaker there." The transcript records the recommendation. The reasoning stays in their head and leaves with them.

Q: So the loss moved up a level.

Yes. That's exactly right. We used to lose facts. Now we lose judgment.

And judgment is the expensive part. Facts are cheap now β€” genuinely, almost free. If a fact was ever written anywhere, I can have it in two seconds. But a fact is a statement about the past. Judgment is a prediction about a situation you have not yet encountered, made by compressing a lot of experience into an instinct. Nothing in our tooling captures that, because the person holding it usually can't articulate it either.

Q: What problems went away? Give me the good news.

Several, and they were real problems.

Retrieval is solved. The "I know we discussed this somewhere" problem is gone. That was a huge tax and I don't miss it.

Code comprehension is solved. Understanding what a system does is no longer a bottleneck. A new engineer can be productive in a legacy codebase in days, where it used to be months. That's the biggest single change and it's genuinely wonderful.

Documentation drift is mostly solved. Descriptive documentation regenerates itself now. The wiki page that says what an endpoint does is always right, because nobody writes it β€” it's derived. That killed an entire category of misery.

Incident timeline reconstruction is solved. Postmortems used to spend 60% of their effort just establishing what happened when. That's automatic now, which means the human time goes to the interesting part.

Q: And what got worse?

Three things, and I want to be careful here because it would be easy to sound like a nostalgist. I'm not. I would not go back.

First: the illusion of coverage. This is the big one. When your tooling can answer almost every question instantly, you stop noticing the questions it can't answer. In 2026 if you couldn't find something, you felt the gap β€” you'd spend an afternoon searching and come away knowing you were missing something. Now you ask, you get a fluent, well-organized, confident answer that is assembled from artifacts, and if the reasoning was never recorded, the answer will be a plausible reconstruction rather than a recovered fact. And it will not feel different. There's no texture difference between "here is what they decided and why" and "here is what they decided, plus my best inference about why."

That's a new failure mode. We used to have known unknowns that announced themselves. Now we have unknowns wearing the clothes of knowns.

Second: experience formation slowed down. This one took a decade to become visible.

Engineers used to build judgment by struggling. You'd spend six hours on a bug and at the end you didn't just have a fix, you had a model β€” of that subsystem, of that class of failure, of how this kind of thing goes wrong. The six hours were not waste. The six hours were the mechanism.

Now that bug takes eleven minutes. The fix is correct. The model doesn't form.

So we have engineers who are dramatically more productive and, at the ten-year mark, meaningfully less deep than the ten-year engineers I worked with early in my career. Not less smart. Less marinated. And the organizations that noticed this early and did something deliberate about it β€” deliberately preserving certain kinds of struggle, treating debugging as a training activity and not just a repair activity β€” those organizations are pulling ahead now in a way that shows up in exactly one place: how they handle novel failures. Anything that's happened before, everyone handles well. Anything genuinely new separates the field completely.

Third: knowledge homogenization. Everyone's systems now reflect the same training distribution. The weird, locally-adapted, hard-won solution that a company developed because of its specific constraints β€” that's rarer. Tools nudge toward the median approach, the median approach is usually right, and the 5% of cases where your organization's specific history should have overruled the median are exactly the cases where it costs you.

Q: Did anything about organizational memory turn out to matter more than people expected?

Yes. One thing, very clearly.

The companies with good memory got compounding returns from AI, and the companies with bad memory got a productivity bump and nothing more.

That's the split. It's stark, and it surprised people.

Think about why. These systems work from the artifacts you have. If your organization spent twenty years writing down not just decisions but reasoning β€” rejected alternatives, failed assumptions, constraint discoveries, the actual why β€” then the tooling has extraordinary material. It can tell a new engineer why the architecture is like this, not just what it is. It can flag when a proposal repeats a mistake from 2029. It can surface the constraint that killed a design last time.

If your organization has twenty years of code and tickets and no reasoning, you get a very good code-explainer. Useful! Not transformative. And critically, it will confidently fill the reasoning gaps with generic plausibility, and your engineers will act on it.

So the gap between memory-rich and memory-poor organizations didn't close. It widened enormously. AI turned out to be a multiplier on institutional memory, and a multiplier doesn't help you much if the thing being multiplied is near zero.

Q: If you could send one instruction back to engineering leaders in 2026, what would it be?

Record reasoning, not conclusions. That's it.

Not more documentation. Less documentation, actually β€” most of what people wrote in 2026 was descriptive, and descriptive documentation is now generated for free, so all of that effort was, in retrospect, wasted.

What was scarce then and is scarce now is the record of why: what you rejected and why you rejected it, what you assumed and how you found out you were wrong, what constraint you discovered that isn't in any spec, what you were afraid of when you built it.

Forty-five seconds per decision. Written at the moment of the decision, when the reasoning is still in your head and feels too obvious to write down. The feeling that it's too obvious to write down is the single most reliable signal that it will be gone in eighteen months.

Q: Last question. Is this problem solvable, or is it just a tax?

It's solvable, but not by tools, which is why it's still here.

It's solvable by a small number of habits practiced continuously by people who will not personally benefit from them. That's a cultural achievement, not a technical one, and cultural achievements have to be re-won every few years as people turn over.

Which means β€” and I've made peace with this β€” it's not a problem you solve once. It's a problem you keep solving, forever, like keeping a building from falling down. Nobody thinks maintenance is a failure of architecture. It's just what buildings need.


VI. THE ORGANIZATIONAL BRAIN

An essay in comparative anatomy.

The metaphor of the organization-as-brain is old and usually deployed lazily, as a way of saying "companies think." That is not the claim here. The claim is narrower and much more useful:

Organizations do not merely resemble brains in how they remember. They resemble brains in how they forget, and the failure modes map with uncomfortable precision.

Working memory

Human working memory holds roughly four items. It is fast, volatile, and lost completely on interruption.

An engineering organization's working memory is the current incident channel, the sprint board, the thread that is happening right now. It has the same properties: extremely high fidelity, extremely low capacity, and total loss on context switch.

The critical property is volatility. During an active incident, an organization knows an enormous amount β€” hypotheses, ruled-out theories, the exact sequence of symptoms, the weird thing someone noticed at minute 14 and dismissed. Ninety minutes later, 80% of that is gone. Not archived somewhere inconvenient. Gone.

This is why the single highest-leverage knowledge practice in all of engineering is also the most boring: someone types the timeline into the channel while the incident is happening. Not afterward. Afterward the working memory has already flushed. The scribe role is not administrative overhead; it is the transfer mechanism from working memory to long-term storage, and organizations that skip it are trying to remember a dream at noon.

Consolidation

Human memory does not go directly from experience to permanence. It consolidates β€” during rest, during sleep, through replay. Consolidation is lossy and selective by design: it strips detail and preserves structure and salience.

The organizational analogue is the postmortem, and the postmortem is where most organizations fail, in a way that is worth diagnosing precisely.

A postmortem written 48 hours after an incident, by a tired person, for an audience of managers, optimizing for the appearance of rigor, will produce: a clean timeline, a plausible root cause, and five action items. What it will not produce is the thing that mattered β€” the record of the confusion. Which hypothesis did the team chase for forty minutes and why did it seem right? What signal was misleading? What did we believe about this system that turned out to be false?

The false belief is the actual finding. The fix addresses this incident. The false belief predicts the next three.

Most postmortem templates have no field for it. Adding one β€” literally a heading that says What did we believe that turned out not to be true? β€” is the single cheapest improvement available to most engineering organizations, and it works because it forces consolidation to preserve structure rather than detail.

Long-term memory: procedural versus declarative

Humans have two long-term systems that behave completely differently.

Declarative memory is facts. It is verbalizable, transferable, and decays fast without rehearsal.

Procedural memory is skill. It is not verbalizable, transfers only by practice, and is extraordinarily durable.

Engineering organizations have both, and they conflate them constantly.

Declarative organizational memory: the architecture, the decisions, the incident history, the customer constraints. This is what documentation and ADRs address. It decays fast. It transfers by reading.

Procedural organizational memory: how this team actually runs an incident, how code review really works here, how much evidence is enough before you ship. This is culture in the operational sense. It does not live in any document, it transfers only by apprenticeship, and it is tremendously durable β€” it survives leadership changes, reorgs, and rewrites.

The practical consequence: you cannot fix a procedural memory problem with a document, and you cannot fix a declarative memory problem with culture. Organizations do this backwards all the time. They respond to repeated incidents (declarative gap: nobody knows what we learned) by running more training (procedural intervention). They respond to inconsistent incident handling (procedural gap) by writing a longer runbook.

Forgetting curves

Ebbinghaus found that unrehearsed information decays exponentially β€” steepest immediately, then flattening.

Organizational knowledge decays on the same shape, but with a discontinuity that has no human equivalent: departure. A human forgets gradually. An organization forgets in a smooth curve punctuated by cliffs, and each cliff is a person walking out with an irreplaceable subset.

This produces a specific and underappreciated risk profile. You cannot manage it with averages. The relevant question is never "how much do we know?" but "what do we know that exactly one person knows?" β€” which is the subject of the Knowledge Gravity section below.

Habits and reflexes

A reflex is a response with the deliberation removed β€” fast, cheap, and blind to context change.

Organizational reflexes: the deploy freeze from the museum. The mandatory second approval. The rule about never scaling below three replicas.

Reflexes are good. An organization with no reflexes deliberates about everything and moves like tar. But a reflex is compressed judgment with the reasoning stripped out, which means it cannot notice when its preconditions stop holding. Every organizational reflex needs an expiry review not because the reflex is wrong but because the world it was calibrated to is no longer the world.

The practice: every rule gets a one-line "this exists because" and a review date. Rules that cannot state their because are, by definition, superstitions, and should be tested rather than obeyed.

Trauma

This is not a rhetorical flourish. Organizations exhibit behavior that maps precisely onto trauma responses, and understanding this changes how you intervene.

After a severe incident β€” especially one with public visibility, customer loss, or blame β€” organizations develop avoidance. Certain systems become untouchable. Certain proposals become unspeakable. The response is disproportionate to current risk and is triggered by surface features rather than actual hazard.

The tell is the same as in individuals: the response persists long after the danger, and it generalizes. A company that had a bad database migration in 2019 does not become careful about database migrations. It becomes afraid of migrations generally, then of large changes generally, then of change.

And here is the connection to memory, which is the point of the whole section: trauma responses are what remains when the emotional weight of an experience survives but the factual content does not. The organization retains the fear and loses the lesson. The lesson would be liberating β€” we failed because we had no rollback path and no traffic shadowing, and we now have both β€” and the lesson is precisely the part that isn't written down.

Well-preserved memory is not just efficient. It is therapeutic. It converts fear into calibration.

Collective intelligence

The final anatomical note, and the one that should worry leaders most.

A brain's intelligence is not a property of neurons. It is a property of connectivity. Neurons are roughly the same everywhere; what differs is the wiring.

Organizations hire for neurons and pay almost no attention to wiring.

Two companies with identical talent, identical headcount, and identical technology will diverge enormously based on a single factor: whether knowledge generated at one point in the organization reliably reaches the point where it is needed. Not whether it is stored. Whether it travels.

Most organizational knowledge failures are not storage failures. The information exists β€” in someone's head, in a doc, in a Slack thread from March. It simply has no path to the person who needs it, at the moment they need it. The bottleneck is conduction, not capacity.


VII. ENGINEERING TIME CAPSULES

A packing list, with justifications. Written for a team that will open it in ten years.

A time capsule is not an archive. An archive tries to keep everything and therefore keeps nothing usefully. A time capsule is a curated act of prediction: these specific things will matter to someone we will never meet.

Here is what belongs in an engineering time capsule. Note that almost none of it is documentation in the conventional sense, and none of it describes how the system works β€” that part regenerates itself. What does not regenerate is everything below.

1. Failed assumptions

The highest-value item, and the most consistently discarded.

Every system is built on beliefs about the world. Most are never stated. Some turn out to be false, and the moment of discovery is the single most information-dense moment in an engineering organization's life.

We assumed customers would upload files under 50 MB. In 2023 a customer uploaded 4 GB. We assumed retries were safe because the endpoint was idempotent; it was idempotent per-account, not per-request. We assumed the vendor's rate limit was per-key. It was per-IP, and we found out during Black Friday.

Write these down at the moment of discovery, in one sentence, with the date. A running document called assumptions-we-got-wrong.md in a repo root is worth more than any wiki space, because it is the only artifact that transmits calibration rather than facts.

2. Rejected designs

From the empty museum case. For every significant decision, the rejected alternatives and the specific reason for rejection.

The format that works is brutally short:

Considered: event-sourced ledger. Rejected because: replay time for a 3-year account exceeded our 200 ms p99 budget, and we could not find a snapshotting scheme that survived our correction workflow. Would reconsider if: correction volume drops below ~1%, or we accept a separate read model.

That last line is what makes it a time capsule instead of a tombstone. It gives a future engineer a condition, not a verdict. Decisions expire; conditions don't.

3. Incident reasoning

Not incident timelines. The reasoning.

What did we think was happening at minute 5? Why? What made us abandon that theory? What was the misleading signal?

A future engineer reading a clean timeline learns what happened once. A future engineer reading the reasoning learns how this system misleads people, which is a property of the system that will still be true in ten years, long after the specific bug is gone.

4. Architecture trade-offs

Every architecture is a set of things optimized and a set of things sacrificed. The optimizations are visible in the code. The sacrifices are invisible and are exactly what breaks when requirements shift.

We chose strong consistency in the inventory service and accepted ~40 ms of extra write latency and a hard dependency on the primary region. If we ever need multi-region active-active, this is the decision that has to be revisited first.

One paragraph. It will save a future team three months.

5. Business context

The most perishable category, because it decays fastest and lives furthest from the code.

Why does the refund flow have a 72-hour hold? Not the implementation β€” the reason. A chargeback pattern from 2022? A regulatory requirement in one market? A single enterprise contract?

Business context has a half-life of roughly eighteen months inside an engineering team, because the people who carried it (the PM, the account manager, the compliance lead) rotate faster than engineers do. When it's gone, engineers cannot distinguish between requirements that are load-bearing and requirements that are vestigial, and so they treat all of them as load-bearing, and the system calcifies.

6. Migration history

Every migration teaches something no other activity can, because migration is the only time you are forced to enumerate what a system actually does versus what you thought it did.

Preserve: what surprised you. What you found that wasn't in any spec. What took 4x the estimate and why. What you couldn't move and had to leave behind.

Migration retrospectives are almost never written, because by the end everyone is exhausted and the reward for finishing is being allowed to stop. This is a systematic organizational failure to harvest its most expensive lesson.

7. Operational lessons

The knowledge that only exists in the bodies of people who have operated the system at 3 a.m.

This alert is always noise on Mondays. When the queue depth graph looks like a staircase rather than a ramp, it's the consumer, not the producer. If you see these two alerts together, don't bother checking the database; it's always DNS.

This is procedural memory, and procedural memory does not transfer by writing. But it transfers partially, and partially is enormous compared to zero. A file called operational-folklore.md, explicitly labeled as unverified oral tradition, is worth more than a polished runbook β€” because it is honest about its epistemic status and therefore invites correction rather than obedience.

8. Customer behavior

Not analytics. Anomalies.

One customer sends all their traffic in a 90-second burst at midnight UTC. Approximately 3% of accounts have more than 10,000 sub-users, and every feature we build must be tested against them. Enterprise customers in one market require data residency, which is why the export pipeline has a region parameter that looks unnecessary.

These facts shape the architecture and appear nowhere in it.

9. Hidden constraints

The final category, and the one that most reliably produces the "why is it like this?" question in year six.

A hidden constraint is a real requirement with no visible representation. A contractual SLA. A regulatory audit trail. An informal agreement with a partner. A performance floor that exists because a specific customer's specific workflow becomes unusable above it.

Every hidden constraint that is not written down will eventually be violated by a well-meaning engineer doing a reasonable refactor, and the violation will be discovered by the customer.


Why future engineers care about decisions more than code

Because the code will be replaced and the decisions will not.

Ten years from now, close to none of today's implementation will survive. Languages change, frameworks change, the infrastructure is unrecognizable. If all you preserve is code, you have preserved the one thing guaranteed to become obsolete.

What survives is the decision space: the constraints, the trade-offs, the customer realities, the failure modes, the things you tried that didn't work. That space changes far more slowly than technology does. A constraint discovered in 2019 is very likely still a constraint. A failure mode found in 2021 is very likely still latent.

Code is the answer to a question. Preserve the question.


VIII. FICTIONAL POSTMORTEM

Internal document. Severity 1. Distribution: Engineering, Support, Executive. Reproduced here in full, including the sections most organizations do not write.


INCIDENT 2027-0419 β€” Partial payment duplication during regional failover

Duration: 3h 41m Customer impact: 11,847 duplicate charges across 4,102 accounts. All refunded within 72h. Direct cost: $84,000 in refund processing and interchange fees. Indirect cost: 3 enterprise escalations. One contract non-renewal (attributed in part). Root cause: See below. The conventional answer is misleading.


Summary

At 14:02 UTC, an automated failover moved the payments cluster from eu-west-1 to eu-central-1 following a degraded network path. The failover completed successfully in 94 seconds and was, by every operational measure, a textbook execution of a well-tested procedure.

Between 14:02 and 17:43, the reconciliation service processed a subset of in-flight payment intents twice, resulting in duplicate charges.

No individual made an error. Every action taken during this incident was correct given the information available to the person taking it. The failover was correct. The runbook was followed exactly. The engineers on call were experienced. Code review had been thorough. Test coverage on the affected path was 91%.

This incident occurred because the organization forgot something it learned in 2022.


Timeline

14:02 β€” Automated failover triggered. Completes at 14:03:34. 14:04 β€” Reconciler restarts in the new region and begins processing its backlog. 14:11 β€” Duplicate-charge alert threshold crossed. Alert routes to a Slack channel that was renamed in 2026 and no longer has an active paging integration. (Contributing factor, not causal.) 14:52 β€” First customer report via support. 15:20 β€” Support escalates. Incident declared. Sev 2. 15:31 β€” On-call engineer identifies duplicate payment_intent_id values in the ledger. Escalated to Sev 1. 15:34–16:40 β€” The team pursues, in order: a client-side retry theory (ruled out at 15:58), a database replication theory (ruled out at 16:19), and a gateway idempotency-key theory (ruled out at 16:40). All three were reasonable. All three were wrong. This hour is the most instructive part of the incident and is the reason this document exists. 16:47 β€” An engineer notices that the reconciler's dedupe window is configured to 4 hours and asks, in the channel, "why 4 hours?" 16:52 β€” Nobody knows. 17:15 β€” Investigation shows the dedupe window is anchored to the local processing clock, not to the payment intent's creation timestamp. On failover, the new region's reconciler started with an empty in-memory dedupe cache and a fresh clock anchor, making every intent older than the window invisible to deduplication. 17:43 β€” Mitigation: dedupe cache seeded from the ledger on startup. Duplicates stop.


The conventional root cause

The reconciler's deduplication state was held in memory and was not reconstructed on regional failover.

This is true. It is also nearly useless, and if this document ended here it would be a failure.


The actual root cause

We knew this. We wrote it down. The writing did not survive contact with the future.

In September 2022, this organization experienced a near-miss during a planned failover drill. An engineer named D. Okonkwo β€” who left in 2024 β€” identified that the reconciler's in-memory dedupe cache would not survive a regional move, and that the four-hour window was measured from process start rather than intent creation.

The near-miss did not cause customer impact, because the drill was run during a low-traffic window and only 3 intents fell inside the vulnerable range. All 3 were caught by a manual check.

What happened next is the subject of this postmortem.

  1. A postmortem was written. It exists. We found it. It is in the old incident tool, which was migrated in 2024, and the body did not migrate. We recovered it from a personal export a former manager had kept on a laptop.
  2. The postmortem contained a correctly-diagnosed action item: "Seed dedupe cache from ledger on startup."
  3. The action item was created as a ticket, prioritized as P2, and moved through four quarterly planning cycles before being closed as Won't Do β€” stale in Q1 2024 during a backlog cleanup. The closing comment reads, in its entirety: no activity 18mo.
  4. The --dedupe-window=4h flag was subsequently documented in the runbook as a value not to change. The reason was not documented.
  5. In 2025, the reconciler was partially rewritten. The rewrite preserved the flag's behavior faithfully β€” the engineers correctly treated it as load-bearing. They did not know why it was load-bearing, and so they preserved the behavior and not the constraint. A faithful rewrite of a misunderstood component perpetuates the flaw with new code and higher confidence.
  6. Three separate engineers between 2023 and 2027 asked, in Slack, why the window was four hours. Two received no answer. One received the answer "I think it's an incident thing."

The technical defect existed for five years. The knowledge of the defect existed for approximately eleven weeks.


What we believed that turned out to be false

(This section is new to our postmortem template as of this incident. It should be mandatory.)

  • We believed our failover was fully tested. It was β€” for the request path. It was never tested for stateful reconciliation components, and our drill checklist had no category for "components with in-memory state that assume regional continuity."
  • We believed the runbook's warning constituted a record. A warning without a reason is not a record. It is an instruction to a future person to remain ignorant.
  • We believed action-item tracking was our safety net. Our backlog hygiene process is explicitly designed to close stale items. It has no exception for items originating from incidents, which means our system for preserving lessons and our system for reducing clutter are in direct conflict, and clutter reduction wins on a fixed quarterly schedule.
  • We believed the 2024 tooling migration was complete. Metadata migrated. Bodies did not. Nobody audited this because nobody's job description contained the sentence "verify that we can still read our own history."

Why the first hour of diagnosis went to three wrong theories

Because each engineer in the room was reasoning from their own experience, and none of them had access to the organization's experience.

The retry theory came from an engineer who had seen client retries cause duplicates at a previous company. The replication theory came from someone who had lived through a replication-lag incident here in 2025. The idempotency-key theory came from the most recent similar incident anyone could remember.

In the absence of institutional memory, an incident response reverts to the personal memory of whoever is in the room. This is why incident diagnosis quality correlates so strongly with team tenure β€” and why it collapses so sharply after attrition, in a way that no runbook has ever prevented.


Action items

Each item below has a named owner, a date, and β€” new as of this incident β€” a decay guard: the mechanism by which we will notice if this item silently stops being true.

  1. Seed dedupe cache from ledger on startup. (Owner: R. Vance. Due: 2027-05-03.) Decay guard: failover drill assertion, runs monthly.
  2. Add stateful-component category to failover drill checklist. (Owner: SRE. Due: 2027-05-17.) Decay guard: drill fails if the category is empty.
  3. Every configuration flag flagged as "do not change" must carry a because: field and a linked incident. Enforced by lint in CI. Existing violations: 34. (Owner: Platform. Due: 2027-07-01.) Decay guard: CI.
  4. Incident-derived action items are exempt from stale-closure automation. They may be explicitly closed by a human with a stated reason. They may not expire. (Owner: Eng Ops. Due: 2027-05-10.)
  5. Audit the 2024 incident migration. Recover what is recoverable. Publish an explicit list of what is permanently lost. (Owner: Eng Ops. Due: 2027-08-01.) Rationale: knowing the shape of the gap is worth more than pretending it doesn't exist.
  6. Add "What we believed that turned out to be false" to the postmortem template. (Owner: Eng Ops. Due: immediately.)

Closing note from the incident commander

I want to record something that will not survive otherwise.

At 16:47, when the question "why four hours?" was asked, there was a pause in the channel of about ninety seconds before anyone responded. I have been in a lot of incidents. I recognize that pause. It is the sound of an organization discovering that it used to know something.

We did not fail at engineering. We failed at remembering. The gap between those two things is where this incident lived, and it is not covered by any of our testing, monitoring, review, or on-call practices β€” all of which are excellent.

We are very good at preventing mistakes. We have no system at all for preventing forgetting.


IX. KNOWLEDGE GRAVITY

A proposed physical law, with observations.

The law

Engineering Knowledge Gravity: In any organization, knowledge accumulates toward the individuals who already hold the most of it, at a rate proportional to how much they already hold, unless work is continuously expended to redistribute it.

This is not a moral failing and it is not anyone's fault. It is the emergent result of every participant behaving rationally.

The mechanism has four steps and it is a closed loop:

  1. An engineer knows more about a system than anyone else.
  2. Therefore they are asked about it.
  3. Therefore they are assigned to it, because they will finish fastest.
  4. Therefore they know even more about it.

Return to step 1.

Each individual decision is optimal. Assigning the person who knows the system is obviously the right call for this ticket, this sprint, this quarter. The aggregate effect over three years is that a system with four original contributors ends up with one person who can actually reason about it, and three who have watched.

Gravity does not require anyone to hoard. Generous, teaching-oriented, actively-documenting engineers accumulate knowledge just as fast β€” sometimes faster, because generosity increases the number of questions directed at them.

Symptoms, in order of appearance

Stage 1 β€” The routing reflex. Questions about a system stop being asked in a channel and start being sent as DMs to a specific person. Watch for this. It is the earliest observable signal and it precedes every other symptom by a year or more. When a question moves from public to private, it stops being an artifact and becomes a transaction.

Stage 2 β€” Review monoculture. One person's name is on 70%+ of reviews touching a subsystem. Their absence doesn't stop the work; it stops the confidence.

Stage 3 β€” The vacation tell. Certain kinds of work stop when a specific person is away. Not because it's blocked, but because the team unconsciously defers anything with uncertainty until the oracle returns. Look at your merge-rate variance by person-absence. This is the cheapest instrumentation in this entire article and almost nobody does it.

Stage 4 β€” Estimate divergence. The same task is estimated at 2 days by one person and 3 weeks by everyone else. That ratio β€” call it the oracle multiplier β€” is a direct measurement of how much of the system's model lives in one head.

Stage 5 β€” Interpretive authority. The person is now consulted not just about how the system works, but about what it means. "Is this a bug or intended?" They become the arbiter of the system's intent, which means the system's intent now has a single point of failure with a human resignation function.

Stage 6 β€” Structural dependency. Roadmaps are planned around one person's availability. This is usually visible to leadership for the first time here, roughly three years after stage 1 was visible to anyone who looked at Slack.

The three risks

Departure risk is the obvious one and the least interesting, because everyone already knows about it and it is at least legible. When the person leaves, the organization takes a discrete, painful, and correctly-attributed loss.

Bandwidth risk is more corrosive and mostly invisible. Long before anyone leaves, the concentration itself becomes the bottleneck. The organization's throughput on that system is capped at one person's attention, and every additional engineer added to the team increases the load on that person rather than decreasing it. Teams in this state look overstaffed and underperforming, and the usual diagnosis (a process problem, a motivation problem) is always wrong.

Ossification risk is the worst and the most invisible of all. When one person holds a system's model, the system stops being questioned β€” not because the person is defensive, but because nobody else has the standing to question it. Architectural assumptions from 2019 persist not through inertia but through epistemic monopoly. The organization loses the ability to disagree with itself, and an organization that cannot disagree with itself cannot learn.

Redistribution requires work

The critical property of gravity is that it is constant and directional. It never stops pulling. Therefore any redistribution mechanism must also be constant, and must be structural rather than motivational.

Things that do not work: telling people to document more; a knowledge-sharing initiative; a wiki-improvement quarter; asking senior engineers to be less helpful.

Things that work, because they act against the gradient continuously:

  • Deliberate second-owner assignment. Every system has a named second owner whose job is not to help but to be the primary on a defined fraction of work. Cost: real. That work goes slower. That is the point β€” you are paying for redistribution and it should appear on the invoice.
  • The oracle silence rule. In incident channels and design reviews, the person with the most context waits ten minutes before answering. Not forever β€” ten minutes. Long enough for someone else to build a model and be corrected, which is how models form.
  • Rotation with a floor. Not "everyone touches everything," which produces uniform shallowness. Rotation with a minimum residency β€” six months, say β€” long enough to develop real depth before moving.
  • Answering in public, always. Any DM'd question gets answered in a channel. The single highest-yield habit in this list and the easiest to adopt.
  • Onboarding as an audit. New engineers are the only people in the organization who can see what is unexplained, and they lose that ability within about ninety days. Treat their confusion as instrumentation. Every question a new hire asks that nobody can answer is a discovered memory gap. Log them. Most companies waste this signal entirely and then wonder why they can't find their blind spots.

X. THE ENGINEERING LIBRARY

An imagined building. Nine shelves. No catalog system, deliberately.

Every elite engineering organization quietly maintains a library. It is rarely called that. It is usually distributed across a few repos, a handful of documents nobody mandated, and two or three people's habit of writing things down. It is never a knowledge-management initiative, because knowledge-management initiatives produce shelves and not books.

Here is what the shelves hold.

Architecture. Not diagrams β€” reasoning. The forces that acted on each decision, the alternatives, the trade-offs accepted. Every entry answers a question a future engineer will ask, and no entry describes anything a tool could derive. If it can be regenerated from the code, it does not belong in the library.

Failures. The largest shelf in any healthy organization, and it should be. Not sanitized postmortems: honest accounts, including the confusion, the wrong theories, the false beliefs. Organizations with thin failure shelves are not organizations that fail less. They are organizations that fail without harvesting.

Experiments. Things tried and abandoned. This shelf prevents the single most common form of repeated work β€” the sincere re-proposal of a rejected idea. Every entry is one paragraph: what we tried, what happened, what would have to change for it to work now.

Operational wisdom. The 3 a.m. shelf. Folklore, explicitly labeled as folklore. Unverified but valuable. The library's only shelf where being wrong is acceptable, because the alternative is silence.

Customer stories. The specific, weird, load-bearing realities of actual users. The customer who does everything at midnight. The account with 400,000 sub-entities. The market whose regulator asks a specific question every March. Nothing shapes an architecture more and nothing is recorded less.

Design trade-offs. What was sacrificed, and what would have to be true to revisit it. Every architecture is a bet; this shelf records the terms of the bet so that a future team can tell when it has stopped paying off.

Retired systems. Obituaries. What it did, why we built it, why we killed it, what surprised us during decommissioning, and β€” most valuable β€” what it did that we didn't know it was doing until we turned it off. This shelf is almost universally empty, because decommissioning is celebrated as an ending rather than treated as a harvest.

Unexpected discoveries. Things learned by accident. The load test that revealed a dependency nobody knew about. The outage that mapped the real service graph. Accidental discovery is how organizations learn things they were not looking for, and it is completely uncaptured because it never has a ticket.

Invisible risks. Known hazards with no current owner. The single-region dependency. The certificate that expires in 2029 and is managed by a former vendor. The one library at end-of-life. This shelf's function is not to fix things; it is to keep the organization from being surprised by its own known unknowns after the people who knew have left.


The reason elite organizations build this quietly rather than formally is that the library only works when it is written by practitioners for practitioners, in the moment, without approval. The instant it becomes a mandated process, entries become performances: complete, polished, defensive, and useless.

Real library entries look like this:

2026-11-04 β€” Spent two days on this. The Kafka consumer lag metric we alert on is computed from committed offset, so during a rebalance it reads zero even though we're 400k behind. Cost us 40 min in the Nov 2 incident. Don't trust that panel during a rebalance. Not fixing today β€” writing it here so the next person loses 20 minutes instead of two days.

That is 70 words. It took ninety seconds to write. It will save someone a day, and it will still be true in 2032.

A library is not built by an initiative. It is built by ten thousand instances of somebody choosing to spend ninety seconds on a person they will never meet.


XI. KNOWLEDGE BANKRUPTCY

An economic analysis.

Financial bankruptcy has a useful property: it is discrete, legible, and dated. There is a day on which a company is solvent and a day on which it is not, and everyone knows which is which.

Knowledge bankruptcy has the same endpoint and none of the legibility. There is no filing. There is no announcement. There is a slow slide during which every quarterly report looks fine, and then a period β€” usually recognized only in retrospect β€” during which the organization is no longer able to reason about its own systems.

The balance sheet

Assets. Knowledge held in a form that survives departure: recorded reasoning, decision provenance, honest failure accounts, distributed operational understanding.

Liabilities. Systems in production whose behavior is not understood by anyone currently employed. Every such system is a debt with an unknown interest rate and an unknown maturity date.

Working capital. The knowledge held in living heads. Highly liquid, extremely productive, and β€” this is the crucial accounting insight β€” not an asset, because it is not owned. It walks out the door on two weeks' notice. Organizations that count their working capital as assets are the ones that get surprised, and nearly all organizations do this.

Depreciation. Knowledge decays whether or not anyone leaves. A system rewritten around a person's understanding depreciates that understanding. A dependency upgrade invalidates operational folklore. Roughly, unrefreshed engineering knowledge loses half its accuracy every two to three years, and the person holding it will not notice, because confidence does not decay at the same rate as accuracy.

The seven costs of insolvency

1. Hiring slows down and never recovers. Time-to-productivity is a direct function of how much of the system's reasoning is externalized. In a memory-rich organization a strong senior hire is dangerous in six weeks. In a memory-poor one they are dangerous in nine months, and they spend the intervening period asking questions that damage the throughput of the few people who can answer. Every new hire in a memory-poor organization has a negative first quarter.

2. Incidents repeat, and repetition is expensive twice. Once for the incident. Again for the morale, because engineers can feel repetition even when they can't name it, and "we've done this before and I don't know what we learned" is one of the most reliable precursors to resignation among senior staff.

3. Architecture decays through accretion. When you cannot determine whether something is load-bearing, you do not remove it. Every generation adds; none subtracts. The system grows monotonically in complexity while its function stays flat. This is the mechanism by which a codebase becomes "legacy" β€” not age, not language, not style. Legacy means unexplained.

4. Change velocity collapses, and the collapse is invisible in every metric you track. Deploy frequency looks fine, because the deploys are small. Cycle time looks fine, because the tickets are small. What has changed is the size of the questions people are willing to ask. Nobody proposes the restructuring anymore. There is no dashboard for the thing that wasn't proposed.

5. Fear becomes a design constraint. Engineers route around systems they don't understand. New functionality gets built adjacent to the scary thing rather than inside it. This produces a distinctive architectural signature: a ring of newer services orbiting an untouched core, each one duplicating a little of what the core does. You can read an organization's fear off its dependency graph.

6. Innovation capacity falls, and it falls in a specific way. The organization retains the ability to add features. It loses the ability to change premises. Every genuinely significant innovation requires revisiting an old assumption, and revisiting an assumption requires knowing what it was and why it was made. A company that has forgotten its assumptions can only build forward from them.

7. Trust disappears β€” the final and least reversible cost. Engineers stop believing documentation, so they stop writing it. They stop believing estimates, because estimates in unexplained systems are noise. Leadership stops believing engineering, because timelines slip for reasons nobody can articulate. Engineering stops believing leadership, because the response to unexplained slowness is usually process, and process is not memory.

Once trust goes, the organization loses its last informal repair mechanism, which was people asking each other things.

Restructuring

Knowledge bankruptcy is recoverable. It is recoverable the way debt is recoverable: slowly, deliberately, and only by allocating capacity that has an obvious alternative use.

The moves that actually work:

  • Stop the bleeding before draining the swamp. New decisions get their reasoning recorded starting today. Do not begin with a backfill project; backfill projects die in month three, and meanwhile the present is still leaking.
  • Interview the leaving. Exit interviews ask about culture. They should ask: what do you know that nobody else knows? Ninety minutes with a departing senior engineer, recorded, is the highest-ROI hour in the entire discipline, and it is almost never spent.
  • Interview the arriving. New hires' unanswerable questions are a free audit, available for ninety days only.
  • Harvest at the natural moments. Incidents, migrations, decommissionings, and rewrites are the four events that generate the most knowledge and the four that organizations are most exhausted by. Build the harvest into the event so it doesn't depend on anyone having energy left.
  • Rank your liabilities. List every production system. Mark the ones nobody currently employed understands. That list, sorted by blast radius, is your actual risk register β€” far more predictive than any of the ones you currently maintain.

XII. AI AND ORGANIZATIONAL MEMORY

An executive reflection. Written carefully, because this is the section most likely to be quoted out of context.

There is a comfortable story about AI and institutional knowledge, and it goes like this: the problem was always that information was scattered and hard to find, and now we have systems that read everything and answer anything, so the problem is solved.

The story is half right, which makes it more dangerous than if it were wrong.

A necessary hierarchy

Six things are routinely conflated. They should not be.

Information is data with structure. The p99 latency of the checkout service was 340 ms last Tuesday. It is retrievable, verifiable, and cheap.

Knowledge is information with context. The p99 rose because a cache warm-up was skipped during deploy. It requires connecting facts that were recorded separately.

Experience is knowledge acquired through consequence. I have watched this cache fail three times, and each time it looked like a database problem for the first twenty minutes. Experience is not transferable by reading, because its value lies partly in the vividness that makes it retrievable under stress.

Judgment is the compressed output of experience applied to novel situations. Something about this design makes me want a circuit breaker here. Judgment is frequently correct and frequently unarticulable, and the inarticulacy is not laziness β€” it is what compression looks like from the inside.

Institutional memory is knowledge that survives the departure of the individuals who created it. Note that experience and judgment are individual by nature; institutional memory is the organization's attempt to convert them into something that isn't.

Engineering wisdom is knowing which of the above to apply, and β€” much harder β€” knowing when the accumulated experience of the organization no longer applies because the conditions changed. Wisdom is the only one of the six that includes the capacity to discard the other five appropriately.

What AI is extraordinarily good at

The first two. Completely and genuinely.

Retrieval is solved in a way that people who worked in 2015 would find astonishing. Context assembly across scattered artifacts β€” connecting a code change to a ticket to an incident to a Slack thread β€” is solved. Descriptive documentation is solved, and should now be regarded as a solved problem that nobody should spend human effort on. Code comprehension is solved. Timeline reconstruction is solved.

That is an enormous amount of solved. It is not nothing. It removes real suffering.

What AI cannot do, and the reason is not a capability limit

It cannot retrieve what was never recorded.

This sounds trivial. It is the entire argument.

An organization's AI-accessible memory is exactly the set of artifacts it produced. If your engineers wrote down conclusions and not reasoning for fifteen years, then a system with perfect recall of those artifacts has perfect recall of conclusions and no access at all to reasoning. It cannot tell you why MAX_INFLIGHT_BATCH is 37. Nobody ever wrote it. There is no amount of intelligence that recovers information from a system that does not contain it.

And here is the new hazard, the one that did not exist before: it will produce an answer anyway.

Not a hallucination in the crude sense. Something subtler and more corrosive β€” a plausible reconstruction. Given a codebase, an incident history, and a config value of 37, a capable system will generate a well-reasoned account of why 37 might have been chosen. That account will be coherent, technically literate, and possibly correct. It will not be flagged as reconstruction, because from the inside, inference and recall are not distinguishable outputs.

Before, ignorance announced itself. An engineer searched, found nothing, and knew they didn't know. That knowledge of not-knowing is epistemically precious. It produces caution, escalation, and questions.

Now the gap is filled seamlessly. The organization loses not the information β€” it never had it β€” but the awareness of the gap. Call this synthetic recall: fluent inference occupying the place where memory used to visibly be absent.

The practical implication is concrete: systems and practices should distinguish, explicitly and in the interface, between this is recorded and this is inferred. An organization that cannot tell the difference between its memory and its guesses has a worse epistemic position than one that knows it has forgotten.

The multiplier

Here is the strategic claim, and it is the reason this section sits in an article about memory rather than an article about tooling.

AI is a multiplier on institutional memory. Multipliers do not help organizations whose memory is near zero.

Two companies, same size, same talent, same tools.

Company A recorded reasoning for fifteen years. Rejected designs with the reason for rejection. Failed assumptions with the date of discovery. Postmortems that included the confusion and the false beliefs. Constraints written down when discovered.

Company B recorded code, tickets, and clean postmortems.

Give both the same AI capability. Company A's new engineers can ask why is the architecture like this and receive a grounded answer, sourced to a decision made in 2021 by a person who left in 2023. When someone proposes an approach, the system can surface that it was tried in 2024 and why it failed. Their incident response begins with the organization's full history rather than the personal history of whoever is awake.

Company B's engineers get a superb code explainer and a fluent, confident, unsourced narrative wherever reasoning was never recorded.

Both companies got faster. Only one got smarter. And the gap compounds, because Company A's advantage grows with every decision it continues to record, while Company B's plateau is fixed by its archive.

The most important consequence for anyone allocating budget: the value of writing down your reasoning went up, not down, when these tools arrived. The instinct is exactly backwards. Descriptive documentation became worthless β€” genuinely, stop writing it. Reasoning documentation became the single highest-leverage artifact your organization produces, because it is now the only input that determines whether your tooling can think with you or merely for you.

The experience problem, restated

One more thing, and it belongs to leaders rather than to tools.

Experience forms through consequence and struggle. When difficulty is removed, the artifact is produced and the experience is not. An engineer who fixes forty bugs quickly has not had forty experiences; they have had forty transactions.

This is not an argument for artificial difficulty, which would be absurd. It is an argument for deliberate depth: some fraction of engineering work, chosen intentionally, done the slow way β€” not because slow is virtuous but because the slow path is where models of systems are built, and an organization made entirely of people who have never built a model of anything has replaced its memory with its tooling and will discover the substitution during its first genuinely novel failure.


XIII. ORIGINAL FRAMEWORKS

A short reference for the concepts introduced above, plus a few that follow from them. Use them, rename them, argue with them.

The Engineering Memory Graph. Not a document store β€” a graph whose nodes are decisions and whose edges are reasons. A decision node holds what was chosen, what was rejected, what was assumed, and what would reverse it. Edges connect decisions to the incidents, constraints, and customer realities that produced them. The health of an organization's memory is measurable as the ratio of edges to nodes: an organization with many decisions and few recorded reasons has a graph of isolated points, which is another way of saying a pile.

The Knowledge Compound Curve. Organizational capability does not grow linearly with experience; it grows with retained experience. Two organizations with identical event streams diverge exponentially based on retention rate. At 90% retention the curve bends upward and never stops. At 40% it flattens by year five and the organization enters permanent rediscovery. The curve's brutal property: the divergence is invisible for the first three years and irreversible by the eighth.

The Organizational Forgetting Index. A single number: the fraction of production systems whose non-obvious behaviors cannot be explained by anyone currently employed. Measure it by sampling β€” pick ten load-bearing configuration values, ask who can explain each. The result is uncomfortable, cheap to obtain, and more predictive of your next Sev 1 than any reliability metric you currently track.

The Decision Fossil Map. An overlay on your architecture diagram marking, for each component, the year its core decisions were made and whether the reasoning is recovered, partial, or lost. Regions of "lost" cluster, and the clusters correlate almost perfectly with the parts of the system engineers describe as scary.

The Learning Velocity Network. How fast a lesson learned at one point in the organization reaches every point where it is relevant. Measured in days. Most organizations have never measured it and would be alarmed. The number is a property of conduction, not storage β€” a company with excellent documentation and poor conduction learns slowly.

Knowledge Preservation Layers. Four, in ascending durability. Ephemeral (Slack, meetings, memory) β€” lost in weeks. Incidental (tickets, PR comments, commit messages) β€” survives but is unfindable. Structural (ADRs, postmortems, the library) β€” survives and is findable. Embedded (tests that encode a constraint, lint rules with a because: field, drill assertions) β€” survives, is findable, and actively resists erosion because violating it breaks the build. Push knowledge downward through the layers. Anything that reaches Embedded cannot be forgotten without someone deliberately deleting it, which is the only preservation guarantee that has ever worked.

The Engineering Memory Cycle. Experience β†’ capture β†’ consolidation β†’ distribution β†’ retrieval β†’ application β†’ new experience. Diagnose your organization by finding the broken arc. Most organizations are excellent at experience and retrieval and broken at capture and consolidation, which is why buying better retrieval tools has so consistently disappointed.

Decay Guards. Introduced in the postmortem above. Every preserved lesson gets a mechanism that notices when it silently stops being true β€” a test, a drill assertion, a CI check, a review date. A lesson without a decay guard has a half-life. A lesson with one has a heartbeat.

Engineering Knowledge DNA. The small set of deeply-held constraints and hard-won principles that replicate into every new system a team builds, whether or not anyone documents them. Healthy DNA propagates real adaptation. Corrupted DNA propagates cargo cult. The difference is entirely whether the principles can still state their because.


Visual companions

For anyone illustrating this material, the diagrams that earn their space:

  1. Engineering Knowledge Tree β€” roots as recorded reasoning, trunk as architecture, branches as current work. Show what happens to the canopy when the roots are thin.
  2. Organizational Memory Timeline β€” a decade horizontal, with knowledge-creation events above the line and knowledge-loss events (departures, migrations, tool changes, retention expiries) below.
  3. Decision Fossil Layers β€” the excavation trench, four strata, annotated with what each layer preserves and what it loses.
  4. The Knowledge Compound Curve β€” two organizations, identical event streams, retention rates of 90% and 40%, plotted over ten years.
  5. Tribal Knowledge Risk Map β€” systems on one axis, number of people who can explain them on the other. Everything in the bottom-right quadrant is your risk register.
  6. The Engineering Memory Graph β€” decisions as nodes, reasons as edges; show the same graph with edges removed to make the "pile of conclusions" state visceral.
  7. Forgotten Decision Cascade β€” a single unrecorded reason in 2022 propagating into an incident in 2027, as in the postmortem above.
  8. Knowledge Flow Between Teams β€” conduction, not storage: a Sankey of where lessons actually travel versus where they are needed.
  9. Knowledge Decay Curve β€” the Ebbinghaus shape with departure cliffs superimposed.
  10. Knowledge Preservation Layers β€” the four-layer pyramid inverted, showing effort-to-preserve against durability.

XIV. LETTER TO ENGINEERS WHO HAVEN'T BEEN HIRED YET

To whoever is reading this in 2036,

You don't know us. Most of us will be gone by the time you arrive β€” not dramatically, just ordinarily, the way people leave jobs. You will inherit our systems the way you inherit a house from someone you never met: fully furnished, structurally sound, and full of small decisions you cannot interpret.

You will find things that make no sense. A timeout of 30 seconds where 5 would do. A service that exists only to translate between two of our own formats. A rule about Thursdays. When you find them, I want you to know something: we were not stupid. Almost every strange thing in this system was, at the moment it was created, the correct response to a real constraint. The constraint may be gone. The response remains. That gap is not incompetence; it is the ordinary physics of organizations, and you will create your own version of it for the people who come after you.

What I want to tell you is what we owe you, and whether we paid it.

We owe you our reasoning. Not our code β€” you'll replace that, and you should. Not our documentation of how things work β€” by the time you read this, that regenerates itself and you'll wonder why we ever wrote it by hand. What we owe you is the why: what we were afraid of, what we tried and abandoned, what we assumed and were wrong about, what we discovered at 3 a.m. that isn't in any specification.

We owe you our failures, honestly recorded. There is a temptation in every organization to write the clean version β€” the one where the cause was clear and the team was competent and the fix was obvious. That version is useless to you. What helps you is the confused version: the forty minutes we spent on the wrong theory, the signal that misled us, the thing we all believed that wasn't true. You will face problems we never imagined. You will not benefit from our answers. You may benefit enormously from watching how we were wrong.

We owe you permission. Somewhere in this system is something you will want to delete, and you will hesitate, because someone once said it was important. If we did our job, you will find a note explaining why, and a condition under which it stops being true, and you will be able to make the call yourself. If we didn't, you will inherit a taboo, and you will pass it on, and someone in 2046 will still be working around a constraint that stopped existing before they were born. That is the failure I'd most like to avoid.

I'll be honest with you about the odds. Most of this will not survive. We are busy. There is always a launch. The forty-five seconds it takes to record why we chose something feels, at the moment of choosing, like the most obviously skippable forty-five seconds in the day β€” because the reason is right there, vivid and clear, and it is genuinely impossible to believe you'll forget it. Everyone who ever forgot anything felt exactly that certain.

So some of us are trying. Not with a process β€” processes decay too. Just a habit: when we decide something, we write down why, and what we rejected, and what would change our minds. Ninety seconds. Not for us. We already know.

If it worked, you'll notice something odd: this system will be explicable. You'll be able to ask why, and get an answer, and the answer will be sourced to a person and a date and a reason. You'll take that for granted. You should. It should be normal.

And if you find something unexplained β€” a number, a flag, a rule about Thursdays β€” please do what we tried to do. Find out if you can. And if you can't, write down that you couldn't, and what you looked for, and what you suspect. Even a recorded absence is a gift. It tells the next person where to stop looking.

You'll never meet us. That's fine. This was never about being remembered.

It was about you being able to move fast in a system you didn't build, because someone who didn't know you thought you were worth ninety seconds.

Good luck. Change whatever needs changing.

β€” The team, 2026


CLOSING REFLECTION

Software scales through code.

Engineering organizations scale through memory.

Everything else β€” the hiring, the tooling, the process, the architecture β€” is downstream of a single question that almost nobody measures: can this organization still explain itself to itself?

The companies that compound are not the ones with the best engineers. They are the ones where a lesson learned in year three is still operative in year twelve; where a constraint discovered at 3 a.m. by someone who has since left still shapes decisions made by people who never met them; where the answer to why is it like this is a sentence rather than a shrug.

That is not a documentation practice. It is a form of respect extended forward in time, by people who will not be there to collect on it.

The greatest engineering asset isn't the software you ship today.

It's the knowledge that allows someone you've never met to improve it ten years from now.

Recent posts

September 4, 2026
Saga Compensation Testing: The Rollback No One Checks
September 4, 2026
Post-Acquisition Technical Integration: The First 100 Days
September 4, 2026
Why Coding Interviews Don't Predict Software Quality