Notes on building and thinking.
Field notes on software engineering and agentic AI, plus personal takes on the sayings and habits worth arguing with.
Six takeaways, stripped of the pep talk, on why every process in a startup should be judged by how much time it burns between an idea and its test in reality.
Five upgrades that separate a question that hands off the whole problem from one that hands over a narrowed, pre-investigated slice of it.
Seven takeaways for making architecture calls deliberately — from coupling and monoliths to why you should never rewrite the legacy system.
A DRY-up that starts as a good day in code review and ends as a function nobody can touch — why duplication and the wrong abstraction are not the same cost.
A Henry Ford line, and why belief is a muscle you train with milestones you can actually hit — not deadlines you can't.
Why people polish the idea forever and never ship the thing — and the standard I want to hold myself to instead.
Not IQ in the test-score sense — but littering is still a small, perfect test of whether someone understands they are part of a bigger system.
The difference between reacting and responding, and the two anchors that move me from one to the other.
You learn more in bad times than good ones — but too much bad time is its own risk, and nobody needs to be right all the time.
Good is cheap — about 20 hours of focused practice. Great is expensive, because of one brutal rule: diminishing returns.
Notes on building and thinking.
Field notes on software engineering and agentic AI, plus personal takes on the sayings and habits worth arguing with.
Six takeaways, stripped of the pep talk, on why every process in a startup should be judged by how much time it burns between an idea and its test in reality.
A Henry Ford line, and why belief is a muscle you train with milestones you can actually hit — not deadlines you can't.
Five upgrades that separate a question that hands off the whole problem from one that hands over a narrowed, pre-investigated slice of it.
Seven takeaways for making architecture calls deliberately — from coupling and monoliths to why you should never rewrite the legacy system.
Why people polish the idea forever and never ship the thing — and the standard I want to hold myself to instead.
Not IQ in the test-score sense — but littering is still a small, perfect test of whether someone understands they are part of a bigger system.
A DRY-up that starts as a good day in code review and ends as a function nobody can touch — why duplication and the wrong abstraction are not the same cost.
The difference between reacting and responding, and the two anchors that move me from one to the other.
You learn more in bad times than good ones — but too much bad time is its own risk, and nobody needs to be right all the time.
Good is cheap — about 20 hours of focused practice. Great is expensive, because of one brutal rule: diminishing returns.