Loading article
How a system gets shaped before it gets built — where the seams go, which decisions are expensive to reverse, and the ones I have reversed anyway.
I like LangGraph and I have removed it from a project. The four things a graph actually buys you, and the test I use before reaching for one.
Choosing Postgres took ten minutes. Choosing a code-first ORM took longer, and the bill arrives as the five kinds of database object it cannot generate.
Why a wealth platform spanning two dozen modules and twelve asset classes ships as a modular monolith, what that costs, and the conditions under which I would split it.
The multi-tenancy decision you make in week one and pay for in year two, and why we moved isolation out of our code and into Postgres.
Integrating with registrars, KRAs and custodians, where the documentation is a PDF from 2016, the webhook may not arrive, and two authoritative systems disagree about the same holding.
Per-tenant theming in a Next.js SaaS without a rebuild: CSS variables from a server-rendered config, the flash of the wrong brand, and the contrast problem nobody warns you about.
At 3,500 schools a loose rule is not a theoretical problem. A duplicate admission and a payroll calculation that existed in three places, and what they taught me about layering.
All articles in chronological order, or get in touch if this is the kind of problem you’re working on.