Borrowed against future

You didn't ship fast — you borrowed against your future team's sanity

You didn’t ship fast. You borrowed against your future team’s sanity. The speed was real. You shipped in days what used to take a sprint. But the person who joins after you has to take ownership of a codebase they didn’t write, can’t fully read, and are now on the hook for. Every bug is an excavation. Every new feature starts with “wait, why does this work this way?” That’s not technical debt. That’s organisational debt — and it will land on someone else’s lap, maybe even your first real engineer hire. ...

May 26, 2026 · 1 min · 197 words · João Malcata
Vibe coding and tech debt

I can read this code. I just can't reason about it.

I can read the code. I just can’t reason about it. That’s the failure mode that’s starting to surface with vibe coding — but not loudly enough. The code isn’t messy. It often looks clean. Each function is legible in isolation. But there’s no architecture with intent behind it — no decisions a human made and can therefore explain. Debugging becomes guesswork. Extending it is archaeology. Onboarding someone new is a ritual of apology. ...

May 23, 2026 · 2 min · 224 words · João Malcata