Every shortcut taken in a codebase sends an invoice. It just doesn't arrive until the worst possible time.
We call it refactor tax. It's the accumulated cost of every decision that was made for speed instead of correctness. Every hardcoded value that made sense in week two. Every duplicated function that saved an hour and cost a month. Every database table that was designed for the feature in front of you instead of the system behind it.
Refactor tax doesn't show up on a balance sheet. It shows up as velocity. Specifically, the slow and painful loss of it.
The product that used to ship a feature in a week now takes three. The engineer who joins the team spends their first month just trying to understand what they're looking at. The bug that should take an hour to fix touches seven different parts of the system because nothing was ever properly separated.
And the worst part — none of it feels like a crisis. It feels like things are just getting harder. Like the team needs to be bigger. Like the problem is hiring, or process, or tooling. It's almost never any of those things. It's the tax bill from decisions made eighteen months ago finally coming due.
At HiQByte we treat shortcuts as liabilities from day one. Not because we're precious about clean code — but because we've watched the compounding math play out too many times to pretend it doesn't happen.
When we scope a build, we account for the future cost of every decision made today. When we inherit a codebase, the first thing we do is calculate what's already owed. When we advise on roadmap, we tell founders exactly what they're paying in refactor tax before they commit to the next phase.
The founders who understand this don't get surprised at scale. They arrive there with a product that still moves.
If your team is slowing down and nobody can fully explain why — we can probably tell you exactly why.
→ [email protected]
— Team HiQByte
Interesting post.
I'm a non-technical founder so I read this from a slightly different angle.
What struck me is that businesses seem to build up debt in much the same way codebases do.
A founder can spend months building without really knowing how customers will discover the product. Or convince themselves they'll work out marketing once the product is finished.
Nothing breaks immediately. That's what makes it dangerous.
Then six months later the product exists, people like it, but growth is painfully slow and nobody can quite work out why.
I'm finding some of that myself. Building turned out to be easier than finding enough people who actually care about the problem.
Maybe that's just another form of technical debt. It just happens outside the codebase.
What's the most expensive shortcut you've seen taken early in a build? Where did the invoice finally arrive?