Run a better book clubNotes from a moderately-successful book club I ran for Designing Data-Intensive Applications.Jacob Bennett·May 2·5 min readFollowlearningteamssoftware-engineering
One-way doors vs two-way doorsJacob Bennett·Nov 17·1 min readFollowdecision-makingsoftware-engineering
Stable Dependencies PrincipleJacob Bennett·Jan 4·2 min readFollowsoftware-engineeringarchitectureclean-code
What developers miss about the Single Responsibility PrincipleThe real meaning of the "S" in SOLID: a module should have one, and only one, reason to change.Jacob Bennett·Nov 5·3 min readFollowsoftware-engineeringsolidclean-code
How to estimate work like a senior software engineerA structured process for making software estimates that are more accurate than shots in the dark.Jacob Bennett·Aug 29·7 min readFollowsoftware-engineeringestimationproject-management
What exactly is tech debt?Defining and quantifying technical debt: what it is, where it comes from, and how to measure its impact on your team.Jacob Bennett·May 17·6 min readFollowsoftware-engineeringtech-debtclean-code
Conway's LawSystem boundaries tend to follow communication boundaries. Plan for that or pay in meetings and glue code.Jacob Bennett·May 28·2 min readFollowsoftware-engineeringteams
YAGNIDefer capabilities until need is proven; speculative code costs build time, calendar time, and carry weight in the codebase.Jacob Bennett·Oct 10·5 min readFollowsoftware-engineeringagile
Gall's LawWorking complex systems started as working simple systemsJacob Bennett·Sep 11·2 min readFollowsoftware-engineeringarchitecture
Hick's LawWhy choice reaction time scales with the log of alternatives, and what that buys you in menus, settings, and incident tooling.Jacob Bennett·Jul 7·3 min readFollowsoftware-engineeringdesign
Unix philosophyMcIlroy's pipes-and-tools rules still explain good CLIs and composable services, even when the universal interface is JSON.Jacob Bennett·Apr 14·4 min readFollowsoftware-engineeringtooling
Occam’s razor when you pick modelsWhy the familiar razor about unnecessary entities is sharper as a habit of work than as a slogan, across code, debugging, and ML.Jacob Bennett·Mar 3·3 min readFollowsoftware-engineeringdecision-making
Amdahl's lawWhy parallel hardware stops helping once a fixed slice of work stays serial.Jacob Bennett·Feb 14·1 min readFollowsoftware-engineeringmanagement
Dunning-Kruger, self-assessment, and software workWhat Kruger and Dunning measured in their studies, why the pop account misleads teams, and how to run reviews and hiring without treating confidence as a personality probe.Jacob Bennett·Jan 9·4 min readFollowsoftware-engineeringpsychology
Parkinson's law and software schedulesWhy slack in a deadline often turns into scope, polish, and meetings instead of safety margin.Jacob Bennett·Nov 11·3 min readFollowsoftware-engineeringestimation
Cunningham's LawWhy wrong claims draw corrections faster than plain questions, and why the famous line is a shaky match for Ward Cunningham's own story.Jacob Bennett·Oct 14·3 min readFollowsoftware-engineeringcommunity
KISS in software design and reviewWhy Keep It Simple is a habit for design and review, and how to tell simplicity apart from cleverness.Jacob Bennett·Aug 9·3 min readFollowsoftware-engineeringarchitecture
Broken windows in softwareVisible neglect in a codebase invites more neglect; small repairs compound.Jacob Bennett·Aug 7·2 min readFollowsoftware-engineeringtech-debt
Fitts's lawWhy pointing time depends on distance and target size, and what that means for dense UIs, touch, and tools.Jacob Bennett·Jun 30·2 min readFollowsoftware-engineeringdesign
Law of leaky abstractionsWhy every useful abstraction eventually forces you to learn what it hides, and what that means for frameworks and APIs.Jacob Bennett·Jun 6·2 min readFollowsoftware-engineeringprinciples
Moore's LawWhy the transistor cadence shaped software economics, and what changes when that cadence stretches.Jacob Bennett·May 16·3 min readFollowsoftware-engineeringhardware
90-9-1 is the shape of the roomHeavy lurker and superuser skew is normal in participatory systems, which matters when you read feedback or run an internal forum.Jacob Bennett·Apr 26·2 min readFollowsoftware-engineeringcommunityproduct
CAP theorem and what partitions forceEric Brewer's CAP conjecture became a precise impossibility result for linearizable read-write services under arbitrary message loss.Jacob Bennett·Mar 2·3 min readFollowsoftware-engineeringdistributed-systems
Pareto principleA small share of causes usually drives most of the effect; use the skew as a testable guess, not a debate club.Jacob Bennett·Feb 28·2 min readFollowsoftware-engineeringproduct
Brooks' lawFred Brooks on why staffing up a late project often pushes the finish line out, not in.Jacob Bennett·Dec 3·2 min readFollowsoftware-engineeringteams
Hofstadter's LawWhy software work slips after you add slack, and how the joke about recursion maps onto real plans.Jacob Bennett·Dec 1·2 min readFollowsoftware-engineeringestimation
Dunbar's number and engineering orgsWhat Robin Dunbar's ~150 limit claims, and how it shows up in org design, on-call, and communication load.Jacob Bennett·Nov 22·3 min readFollowsoftware-engineeringteams
The ninety-ninety ruleWhy the last slice of a build eats most of the calendar, and what to do about it.Jacob Bennett·Sep 18·2 min readFollowsoftware-engineeringestimation
Murphy's law for engineersTreat Murphy's law as risk hygiene, not fate. Defensive design, testing, and SRE habits turn the slogan into something you can ship.Jacob Bennett·Aug 21·2 min readFollowsoftware-engineeringreliability
Postel's LawWhy 'be conservative in what you send, liberal in what you accept' still shapes APIs and parsers, and where it breaks.Jacob Bennett·May 19·2 min readFollowsoftware-engineeringapis
Goodhart's law and engineering metricsWhy velocity, coverage targets, and badly written OKRs invite gaming once they become the scoreboard.Jacob Bennett·Apr 5·2 min readFollowsoftware-engineeringmetrics
DRY principleHunt and Thomas on why duplicated knowledge is a maintenance tax, and when merging similar code makes change harder.Jacob Bennett·Jan 23·4 min readFollowsoftware-engineeringmaintainability