Abstraction Has a Cost
Every abstraction creates a debt of understanding.
Abstractions save repetition only when their purpose remains legible.
32 teachings · 8 disciplines
Maxims for memory. Interpretations for judgment. Practices for real engineering work.
Every abstraction creates a debt of understanding.
Abstractions save repetition only when their purpose remains legible.
A distributed system is a collection of assumptions connected by a network.
Design around latency, partial failure, ordering, and ownership—not the happy-path diagram.
Complexity enters quietly and leaves with a migration plan.
Small exceptions accumulate; removing them requires ownership and a staged path.
Architecture is the art of choosing which future pain to accept.
Every design trades one kind of cost for another; make that bargain visible.
Commit with intent.
A commit should capture one coherent decision and explain why it exists.
The force-push is powerful. So is the chainsaw.
Rewrite shared history only with awareness, coordination, and protection.
A clean history should tell the truth, not rewrite reality.
Curate history for comprehension without concealing decisions, reversals, or risk.
A branch without an owner becomes archaeology.
Long-lived branches need a purpose, a steward, and a clear end condition.
Untested code is merely confident code.
Confidence is a feeling; tests are repeatable evidence about behavior.
Tests do not prove wisdom. They preserve lessons.
A strong suite records what the team learned from requirements and failures.
Mock what you must. Understand what you mock.
Every substitute encodes assumptions about a dependency that may drift from reality.
A flaky test teaches the team to ignore warnings.
Intermittent failures erode trust in the entire feedback system.
Production is the final reviewer.
Real traffic, data, dependencies, and timing reveal what controlled environments cannot.
Rollback is not defeat. It is mastery over attachment.
Recovery protects users; pride protects only the story we tell ourselves.
Deployments should be boring. Incidents provide enough excitement.
Automation, small batches, and clear signals turn release into routine.
Friday is a state of mind. The rollback plan is not.
Calendar rules are proxies; readiness and recovery are the real controls.
The absence of alerts is not evidence of health.
Silence can mean success, missing coverage, broken telemetry, or thresholds set too high.
What cannot be observed cannot be understood.
Instrumentation makes runtime behavior available to engineering judgment.
Logs remember what developers forget.
Useful events preserve context long after the deployment conversation has ended.
A dashboard without a decision is decoration.
Every visualization should answer a question or support a specific action.
Trust is not a security control.
Relationships and good intentions do not constrain what credentials or systems can do.
Least privilege is respect for future mistakes.
Limit authority so ordinary errors remain small, explainable, and recoverable.
Secrets do not belong in Git, even private Git.
Repository privacy does not provide rotation, access scoping, or reliable erasure.
Every exposed interface becomes someone else’s input.
Anything reachable will receive malformed, surprising, and adversarial data.
Legacy code is code that succeeded long enough to become inconvenient.
Age often signals delivered value and accumulated constraints, not incompetence.
Before rewriting the old system, discover what it knows.
Undocumented behavior is still behavior, especially to customers and operations.
Refactor with humility.
Improve structure while respecting behavior you may not yet understand.
The strangest line may be holding back the oldest incident.
Odd code deserves investigation before deletion; context may have outlived its comment.
Knowledge hoarded is a single point of failure.
Expertise becomes resilience only when others can find, question, and practice it.
Review the code, not the coder.
Specific, evidence-based feedback improves the change without reducing the person.
A brilliant solution nobody understands is an operational liability.
A solution is only complete when the team can safely change and operate it.
Documentation is a message to the teammate who arrives during the incident.
Write for a capable reader with little context and no spare attention.
404 // FILTER
Try another term or reset the filters.