Archive

I saw the problem. I didn't fix it.

When we started building for our second client, I already knew the way I was working wasn't going to hold. Every new chart, every new layout, I was hand coding it into place. I could feel the shape of the problem forming. This is not going to scale.

I kept going anyway.

There was a client waiting and a product to prove. Stopping to build the reusable version would have meant guessing at a structure I hadn't earned yet. I didn't have enough clients to know what actually needed to be reusable and what just looked that way from one data point.

By the third client, the tax was undeniable. Every onboarding meant stopping everything to write new code for the same kind of problem I'd already solved twice. The pattern was no longer a guess. It was showing up every single time.

Only then did I sit down and design the entity system. Dashboards, sections, charts, filters, all built once and reused everywhere. What used to take days of hand coding became configuration.

I could have built this the first time. I saw it coming. But I think seeing a problem early is different from knowing what it actually needs. The first two clients told me the problem was real. The third told me the shape of the solution. If I'd built it after client one, I'd have built it wrong, for a version of the problem that didn't exist yet.

The harder discipline isn't spotting problems. It's knowing which ones are worth stopping for, and how far to solve them.