Skip to content

Writing

Notes from building things.

Technology, product and business — and the decisions that sit where they meet.

25 posts · RSS

2026

  1. A portfolio that refuses to make things up

    This site hides a section rather than fill it with an estimate. That rule shaped its architecture more than any design decision did.

    Philosophy · Product · Content

    2 min
  2. Motion should explain, not decorate

    Every animation on this site had to answer one question — what does it help the reader understand? The ones that could not were cut.

    Design · Motion · Accessibility

    2 min
  3. The animation was on the critical path

    This site's hero looked fast and measured slow. Largest Contentful Paint was waiting on the animation library. Moving one reveal from JavaScript to CSS took mobile performance from 78 to 97.

    Performance · Engineering · Motion

    2 min
  4. An argument is not a test

    I believed this site handled reduced motion correctly because the code said so. When I finally tested it, the first test reported a bug that did not exist.

    Engineering · Accessibility · Testing

    2 min
  5. Delete the row before the file

    When a record points at a stored file, the order you delete them in decides which failure you get. One of them is a few cents of wasted storage. The other is a broken image on your live site.

    Engineering · Architecture · Reliability

    2 min
  6. An empty page is worse than an outage

    When this site moved its content into a database, the first version degraded gracefully to nothing. That was the worst failure mode available, because nothing looked broken.

    Engineering · Reliability · Architecture

    2 min
  7. Good systems are opinionated about the few things that matter

    Flexibility everywhere is a way of never deciding. The best systems hold firm opinions in a few places and stay out of the way everywhere else.

    Philosophy · Architecture · Product

    2 min
  8. Harden the operation before the volume arrives

    Scaling is rarely a performance problem first. It is usually an operations problem that performance makes visible.

    Method · Operations · Engineering

    2 min
  9. Measure the few signals that would change what you do next

    Most dashboards are archives of things nobody will act on. A useful metric is one where a different number would lead to a different decision.

    Method · Product · Data

    2 min
  10. Ship in slices that stand on their own

    A slice is not a piece of a feature. It is a small, complete thing that works in production by itself. Build in those, and a project can stop at any point and still be worth something.

    Method · Engineering · Delivery

    2 min
  11. Real-time 3D on the web should earn its place

    WebGL can make an experience unforgettable, or make a page slow for no reason. The difference is whether the third dimension carries meaning.

    3D · Performance · Design

    2 min
  12. Build multilingual from day one, not translated after

    Translation at the end is cheap to promise and expensive to deliver. Especially with Arabic, language is an architectural decision.

    Product · Engineering · Design

    2 min
  13. Gamified learning fails when the mechanic and the lesson can be separated

    Points bolted onto a quiz are not a game. If players can win without learning, they will. The teaching has to be the thing they are doing.

    Games · Education · Product

    2 min
  14. In mobile multiplayer, latency is a gameplay problem

    Players do not experience your network architecture. They experience whether the game felt fair. That makes latency a design problem, not only an infrastructure one.

    Games · Engineering · Mobile

    2 min
  15. Inspection is evidence work: designing for traceability

    An inspection system's output is not an opinion. It is a record someone will rely on later, sometimes adversarially. Design for that moment.

    Operations · Architecture · Data

    2 min
  16. Put the AI inside the record, not beside it

    An AI that produces insights nobody can act on is a dashboard. Useful automation lands inside the system of record, where work actually happens.

    AI · Operations · Architecture

    2 min
  17. Metering AI is a product decision, not a billing one

    Every AI feature has a variable cost per use. How you meter it shapes the product more than any prompt does.

    AI · Product · Business

    2 min
  18. In a marketplace, the catalogue is the product

    Buyers do not experience your code. They experience your catalogue. Its quality, structure and trustworthiness are the product you are actually shipping.

    Marketplaces · Operations · Product

    2 min
  19. A marketplace has to solve both sides before either shows up

    The hardest problem in a two-sided marketplace is not the storefront. It is giving each side a reason to arrive while the other side is still empty.

    Marketplaces · Product · Strategy

    2 min
  20. Spend your innovation budget where the user can see it

    Every team can afford only a few new things at once. Boring infrastructure is what pays for the interesting product.

    Engineering · Architecture · Product

    2 min
  21. Architecture is the list of decisions that are expensive to change

    Diagrams are not architecture. Architecture is knowing which few decisions will be painful to reverse, and making those carefully.

    Architecture · Engineering

    2 min
  22. The cheapest evidence that the problem is real

    Validation is not a phase you pass. It is the habit of buying the next piece of certainty at the lowest possible price.

    Method · Strategy · Product

    2 min
  23. Understand the domain until the constraints are obvious

    The first step of any build is not requirements. It is learning a domain well enough that its real constraints stop being surprising.

    Method · Product

    2 min
  24. Decide before you build: the user, the constraint, the refusal

    Most product failures are not engineering failures. They are failures to decide three things early enough to matter.

    Product · Strategy

    2 min
  25. Technology, product and business are one decision, not three

    Most projects that fail were decided three times by three people who never compared notes. The work is making it one decision again.

    Strategy · Product · Technology

    2 min