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

How AI agents actually work — tools, loops, and where they break

How AI agents actually work — tools, loops, and where they break

An AI agent sounds like magic and is, underneath, a fairly simple loop: the model decides on an action, the action runs, the model sees the result, and it decides again. Understanding that loop tells you what agents are good at, what they cost, and where they break.

Is your product ready for AI? — a practical readiness check

Is your product ready for AI? — a practical readiness check

Adding AI to a product that works well is straightforward. Adding it to one that is not ready produces a demo that falls apart in front of real users. Five things have to be true first — and the model is not one of them.

Replatforming off a legacy CMS — how to do it without losing traffic

Replatforming off a legacy CMS — how to do it without losing traffic

A legacy CMS rarely fails outright — it ages, until every change is slow and risky and the security updates have stopped. How to replatform off it without losing the search traffic you spent years earning.

How to modernise legacy software — without a risky rewrite

How to modernise legacy software — without a risky rewrite

Legacy software can be modernised in place, incrementally, while it keeps running and earning the whole time. No big-bang switchover, no frozen roadmap — here is the approach, step by step.

Node.js vs Python — which backend should you build on?

Node.js vs Python — which backend should you build on?

Node.js and Python are the two default choices for a backend, and the decision is usually made on what the team already knows. That instinct is not wrong, but it is incomplete — they have genuinely different strengths, and the workload should sometimes override the habit.

Why production AI runs on Python — FastAPI, Pydantic, and the AI backend stack

Why production AI runs on Python — FastAPI, Pydantic, and the AI backend stack

Almost every production AI system you have used runs on Python. Not because Python is fast — it is not — but because the ecosystem, the model SDKs, and the data tooling all live there. The interesting question is what separates a Python notebook that works from a Python service you can run in production.

RAG vs fine-tuning — which does your AI feature actually need?

RAG vs fine-tuning — which does your AI feature actually need?

RAG and fine-tuning are the two ways to make a general-purpose model work for your case, and teams treat the choice as a fight. It is not one. RAG gives the model the right information at answer time; fine-tuning changes how the model behaves. They solve different problems — and most features need one far more than the other.

Why your cloud bill keeps growing — and how to bring it down

Why your cloud bill keeps growing — and how to bring it down

A cloud bill rarely grows from one big mistake. It grows quietly, from a handful of recurring causes nobody is watching — until finance asks why the number doubled. Those causes are well known, and genuinely fixable.

Rewrite vs refactor — should you rebuild your software from scratch?

Rewrite vs refactor — should you rebuild your software from scratch?

A full rewrite is the most appealing idea in software, and one of the most dangerous. Refactoring is less exciting and far more likely to succeed. Here is how to tell which one your situation actually calls for.