My Posts

Accurate Estimations

We’re constantly asked to give estimates: How long will it take?How much will it cost?What time should we leave?How much do you want? Estimations are information about the unknown. We constantly use this information to make decisions: allocating resources, changing strategies, and choosing partners. But despite all this practice, we’re horrible at accurate estimations. Why […]

Organic Proposals

Proposing solutions to problems is a critical part of knowledge work. The efficiency and effectiveness of our proposals are key measures of our success. It’s something I had to learn the hard way. By the end of my second year as a software engineer, I had only made one or two proposals to small problems […]

Software Entropy

Defining Entropy Entropy is a measure of chaos, or disorder, in a system. My college physics professor described entropy using two shoe closets. Imagine a clean shoe closet, where all shoes are paired and sorted by color. The closet’s entropy is the total number of arrangements its shoes can have. A clean closet’s entropy is […]

Notes on “Productivity” by Sam Altman

Here’s the original article on Sam’s blog. “Compound growth gets discussed as a financial concept, but it works in careers as well, and it is magic. A small productivity gain, compounded over 50 years, is worth a lot.” What are your productivity gains? make a list of what you need to do in a day […]

Notes on “A Philosophy of Software Design”

What’s the most important general idea in software? Knuth: layers of abstraction Ousterhaut: problem decomposition Even though it’s the most important idea, there is no course where problem decomposition is the central idea of the course. Simple rule: Abstractions should be deep The width of an abstraction is how big the interface is. The size […]