The Dream Steps Journal

Working notes on design, technology, and AI.

No fluff. No listicles. Writing from inside the work — for founders, product teams, and marketers who care about getting the details right. We publish what we wish someone had told us before we shipped.

From the journal

Serverless vs containers — which should you deploy on?

Serverless vs containers — which should you deploy on?

Serverless and containers are the two main ways to deploy a backend, and the choice has real consequences for cost, speed, and how much your team has to operate. Neither is universally better — the workload decides.

What is a vector database — and does your product need one?

What is a vector database — and does your product need one?

A vector database stores text as numerical embeddings and finds items by meaning rather than by matching keywords. If your AI feature needs to answer from your own content, you almost certainly need one. Here is what it does, where it fits, and what your real options are.

What to automate with AI — and what to leave to rules

What to automate with AI — and what to leave to rules

The mistake teams make with AI automation is not being too cautious. It is automating the wrong things — pointing an expensive model at work that rules did better, while leaving the hard judgment work manual. Here is a framework for deciding.

Why your AI feature gives wrong answers — and how to stop it

Why your AI feature gives wrong answers — and how to stop it

When an AI feature gives a wrong answer in production, the cause is rarely the model being dumb. It is almost always one of five fixable engineering gaps. Here is how to find which one you have — and how to fix it.

Why is your Django app slow? The ORM, the queries, and the seven fixes

Why is your Django app slow? The ORM, the queries, and the seven fixes

Django is not slow, and Python is not slow. Slow Django apps are slow because of the same seven decisions on every project — N+1 queries, missing select_related and prefetch_related, missing indexes, no caching, synchronous external calls, and an ORM used without watching the SQL it writes.

Why is your Node.js app slow? The event loop, blocking code, and the seven fixes

Why is your Node.js app slow? The event loop, blocking code, and the seven fixes

Node.js is not slow. Slow Node apps are slow because something blocks the single-threaded event loop, or the database is untuned, or async code runs in series when it could run in parallel. Seven fixes, in order of impact.

UX vs UI design — what’s the actual difference?

UX vs UI design — what’s the actual difference?

Hiring one when you need the other is the most common — and most expensive — mistake in product teams. Here's what each discipline actually does, where they overlap, and how to tell which one you need right now.

Why is your React app slow? Bundle size, hydration, and the seven fixes

Why is your React app slow? Bundle size, hydration, and the seven fixes

Most slow React apps are slow for the same seven reasons. None are inherent to React itself; all are decisions that can be reversed. Here is the order to fix them, in order of impact.

Why is your Shopify store slow? (And how to actually fix it.)

Why is your Shopify store slow? (And how to actually fix it.)

Every second of mobile load time costs roughly 7% of conversions. Here are the seven reasons Shopify stores are slow — apps, themes, images, scripts, Liquid, cart, theme JavaScript — and the order to fix them.