Engineering, distilled.

Short, faithful explanations of enduring ideas—selected for engineers learning to build, reason, and lead in the AI era.

Talk2026

From Vibe Coding to Agentic Engineering

AI can produce code quickly, but engineers still own the understanding, judgment, and system-level decisions that make software dependable.

Book2018

A Philosophy of Software Design

Good design continuously reduces the amount of system knowledge a developer must hold in mind to make a safe change.

Talk2011

Simple Made Easy

Choose structures that keep concerns separate, even when a more familiar tool feels easier in the moment.

Talk2006

How to Design a Good API and Why It Matters

A good API makes the common path obvious, mistakes difficult, and future evolution possible without exposing implementation decisions.

Talk2021

Unit Testing Best Practices

Valuable tests protect important behavior while remaining stable when implementation details change.

Book2002

Debugging: 9 Indispensable Rules

Debugging becomes systematic when you replace guesses with reproducible evidence and narrow the search space one fact at a time.

Talk2012

Performance Analysis: The USE Method

For every system resource, check utilization, saturation, and errors before chasing more elaborate performance theories.

Talk2016

Stability Patterns and Antipatterns

Design every integration with the assumption that dependencies will slow down, fail, and recover imperfectly.

Talk2016

Tackling Complexity in the Heart of Software

The most valuable software models emerge through sustained collaboration with domain experts and remain useful only inside explicit boundaries.

Talk2018

Full Cycle Developers @ Netflix

Teams improve systems faster when the people who build a service also receive its operational feedback and have the tools to act on it.

Book2019

Shape Up: Stop Running in Circles and Ship Work that Matters

Teams ship more predictably when leaders bound the problem before committing and let builders vary scope inside a fixed appetite.

Article2021

How Big Tech Runs Tech Projects and the Curious Absence of Scrum

Project process is an enabler, not the goal; capable teams execute through autonomy, clear ownership, direct communication, and strong tooling.

Talk2012

Agile Product Ownership in a Nutshell

Product ownership turns a vision into a continuously reprioritized flow of small outcomes while protecting the team from excess work in progress.

Talk2019

Technical Leadership and Glue Work

Glue work can make a team succeed while quietly stalling the career of the person doing it unless the work is allocated, framed, and rewarded deliberately.

Book2021

Staff Engineer: Leadership Beyond the Management Track

The Staff path is not simply more difficult coding; it is organizational leadership exercised through technical judgment, influence, and leverage.

Article2017

The Engineer/Manager Pendulum

Management is a parallel profession, not a promotion, and moving between IC and management roles can deliberately build stronger technical leaders.

Article2012

On Being a Senior Engineer

Seniority is engineering maturity: sound judgment under uncertainty, responsibility for outcomes, and the ability to make everyone around you more capable.

Article2020

The Definition of a Tech Lead

A Tech Lead is accountable for a team’s technical direction and quality—not simply the strongest coder, a project coordinator, or a junior Engineering Manager.

Article2009

Maker’s Schedule, Manager’s Schedule

A meeting that looks like one hour on a manager’s calendar can destroy half a day of a maker’s productive work.

Talk2016

Hints for Computer System Design

System design is the discipline of choosing which goals matter most and combining techniques that satisfy them without pretending every desirable property can be maximized.

Talk2019

What Breaks Our Systems: A Taxonomy of Black Swans

Catastrophic outages are hard to predict in detail but often share recurring shapes that can be tested, monitored, and contained in advance.

Talk2009

The Power of Abstraction

Encapsulation makes local reasoning possible by forcing every use of a data abstraction through operations that preserve its meaning.

Talk2016

Why Good Software Goes Bad

Software quality follows the process that creates it, and a process can improve only when the organization observes reality and changes its behavior.

Talk2025

Level Up: Choosing the Technical Leadership Path

Technical leadership aligns how a group applies technology, and engineers can begin practicing it by owning one neglected source of misalignment before receiving the title.

Article2026

The Right Amount of Spec for Agentic Development

Agentic development needs enough specification to make correctness testable, but not so much stale prose that agents must reconcile competing sources of truth.

Talk2013

Career Advice for Programmers

Manage your career around the options and life you want, then make your experience visible enough that other people can connect it to opportunities.

Talk2026

Mentoring That Actually Changes Careers

Useful mentoring contributes lived experience to the mentee’s real question while preserving their agency and making overlooked capability visible.

Article2000

Leadership That Gets Results

Effective leadership is not a fixed personality style but a repertoire of behaviors chosen to create the climate a team needs now.

Talk2017

The Multiplier Effect: How the Best Leaders Make Everyone Smarter

A leader creates more capacity by using their intelligence to evoke judgment in others—not by remaining the person who supplies every answer and rescue.

Talk2017

The Constant Life of a Tech Lead

A tech lead's scarce resource is attention: they must keep technical, people, and system concerns moving without letting urgent execution erase durable learning.

Talk2019

Levelling Up as a Lead Developer

Becoming a lead is an identity shift from being valued for personal problem solving to increasing the effectiveness and judgment of the whole team.