All postsharry.dev

The quiet craft of making software feel obvious

The most sophisticated software often feels like it could not have worked any other way.

That feeling is designed. It comes from thoughtful defaults, direct language, resilient state, and hundreds of small engineering decisions that keep complexity behind the curtain.

Build a clear mental model

Before adding features, decide what the product believes about the world. The interface should teach that model through consistent nouns, predictable actions, and honest feedback.

type ProductState = "idle" | "working" | "done" | "blocked";