Have-loops are positive feedback loops which cause unsustainable concentration of limited resources. Once you learn to recognize them, you will see them everywhere.

Read more …

If Google Photos incorrectly tags a photo, what's the worst that could happen?

Read more …

Lifecycles of software systems that solve real world problems can be broken down into distinct phases based on where it is with respect to the problem and the eventual solution.

This article presents a taxonomy of these phases that should help you understand how each part of the lifecycle fits together.

Read more …

  • Don't use carousels in your UI.
  • Instead, if you must stick content into little cards, let the horionztal layout wrap to additional lines.
  • If you end up with too many horizontal lines of content, then you definitely have too many items that can be accessed via a horizontally panning UI. You need a different UI altogether.

Read more …

Evaluating properties like inclusion and equity of products can't be done through exhaustive enumeration of product outcomes. Instead we will need to increasingly rely on the controls that we place how we construct the products.

Read more …

Read more …

Some reflections from thirteen years at Google.

Read more …

Read more …

Adding more knobs doesn't make your API more powerful.

Read more …

The only useful strategy is one that reduces risks.

Read more …