This article was originally published on Steven’s Substack. Subscribe to his newsletter for more insights.
I recently read The Great Software Quality Collapse, and the entire piece resonated deeply with me.
Today, massive software incidents are happening more frequently, causing major economic costs. The mentality of “Ship broken, fix later” seems to be happening more often — accelerated by the rise of AI. Take CloudStrike’s 2024 incident, for example. Or even more striking: an Apple calculator app leaked 32 GB of data. These aren’t just “bad coding” issues — they reflect a broader ecosystem problem: we are trusting AI too much.
The article highlighted several alarming trends:
Quality crisis is real, and accelerating
Software seems to consume more resources for the same tasks, and system-level failures are becoming routine. The cost of this “tech debt” isn’t just in performance — it’s also in energy, infrastructure, and future maintainability.
Too much abstraction comes at a price
We’ve built towers of abstraction — React, Electron, Docker, Kubernetes, etc. — which make development easier, but every layer adds overhead. This cumulative load shows up in inefficient, bloated software.
Physical limits are closing in
This isn’t just a software problem. Inefficient code consumes more power, data centers are under strain, and we’re approaching a sustainability issue. Electricity is finite, and by 2027, 40% of data centers may face power constraints. We can’t download more electricity.
We’re starving the next generation of engineers
Perhaps the most concerning insight: if companies rely too much on AI and don’t train junior developers in real engineering practices, we risk eroding the talent pipeline. Without hands-on experience in debugging, managing memory, and designing systems, how will future senior engineers be developed?
In the article, the author points out research findings made this even more urgent:
- AI-generated code contains 322% more security vulnerabilities
- 45% of all AI-generated code has exploitable flaws
- Junior developers using AI can cause damage 4x faster than without it
- 70% of hiring managers trust AI output more than junior developer code
Reading this made me reflect on how critical it is for engineers, teams, and companies to balance speed with responsibility, to teach fundamentals even while leveraging AI, and to plan for long-term sustainability — in both code quality and infrastructure.
My Take & What We Should Do Differently
1. Rebuild engineering fundamentals
We need to re-center education and hiring around engineering 101. Skills like memory management, algorithmic thinking, and system-level architecture are not “old-school” — they are essential.
2. Incentivize efficiency and resource-conscious engineering
Engineers who optimize for performance, reduce waste, and write clean, sustainable code should be recognized — not just those who ship the most features. Efficiency is becoming just as critical as output.
3. Promote real-world experience
Eliminating junior developer roles in favor of AI may seem efficient today, but it starves the pipeline of future senior engineers and CTOs. Junior developers need opportunities to work on real, production-grade systems — debugging, diagnosing failures, and improving architectures. Over-indexing on AI-only development risks creating a generation of engineers who can prompt but can’t truly engineer.
Ultimately, AI is a tool — powerful, accelerating, and transformative — but the responsibility for building resilient, sustainable, and maintainable software still lies with humans. Balancing innovation with fundamentals will be the defining challenge of our era.
Want more thoughts on engineering, AI, and building sustainable software? Subscribe to Steven’s Substack for regular insights.