technical-debt
How it relates to choose boring tech
Unchecked AI-generated code can massively amplify technical debt

What is Technical Debt?
- Definition: Technical debt is a conscious decision to write code that is not ideal (e.g., less maintainable, less efficient, or more error-prone) to save time or meet a deadline, with a plan to fix it later.
- Not Technical Debt: Not all bad code is technical debt. Code that is poorly written due to lack of skill, rushed work, or no plan for fixing is just bad code or code rot. Technical debt always M involves intent and a repayment plan.
Mitigate Technical Debt
Chasing after every new technology trend can lead to increased technical debt, which hampers long-term productivity and scalability. By prioritizing OKRs and KPIs over the adoption of cutting-edge technologies, your team can invest time in properly addressing technical debt and improving existing systems. This helps maintain a solid foundation for future growth and innovation.
What Isn't Technical Debt?
- Accidental Complexity: Code that's overly complicated due to poor decisions or lack of system understanding (e.g., using a heavy framework for a simple task).
- Bad Code: Rushed, sloppy, or un-reviewed code with no plan to fix it (e.g., a bug fix checked in during a panic without proper testing).
- Legacy Issues: Outdated or messy code from years ago with no documented intent or plan to address it.
Code Rot
Code rot, often mistaken for technical debt, refers to the gradual degradation of a codebase due to poor-quality code that lacks any intentional plan for improvement. Unlike technical debt, which involves deliberate shortcuts with a documented intent to fix later, code rot emerges from rushed, sloppy, or unreviewed code—such as quick fixes, band-aid solutions, or implementations born from unclear requirements or time pressure. This leads to a tangled mess of bugs, inefficiencies, and maintenance nightmares, with no backlog ticket or strategy to address it. Code rot accumulates when teams accept these issues as "technical debt" without accountability, eroding the codebase's quality and making future development slower and riskier.
