There's No Limit to How Bad Code Can Get
There's a persistent metaphor for neglected codebases: a sinking ship. It implies an eventual end — a point where the water hits the deck and everyone abandons. But that's misleading. As Zach Kehs argues in his essay There's No Limit to How Bad Code Can Get, unlike a physical ship, a software system has no inherent structural limit. You can keep adding complexity indefinitely; it won't collapse. It'll just get slower, harder to change, and more painful to work in.
A real-world example from Amazon
Kehs describes his decade-old experience on an order-processing team at Amazon. The system's core function—writing to a database and calling other services—should have been maintainable by two dozen engineers. Yet the org had hundreds of people. Institutional knowledge eroded as engineers left, leaving 'haunted graveyards' in the code. Business rules were often undocumented, and the system spanned team boundaries, making tracing impossible.
Every few years, a new senior hire would attempt a re-architecture. It always failed. The system was too complex to understand fully, and the impatient promotion cycle meant fixes were designed with incomplete information. The result: new layers grafted onto the architecture, headcount increases that never left, and the cycle repeating.
Why the metaphor breaks down
The author's key insight: a business can sink — but the software itself won't. The code can always get worse. There's always another layer of indirection, another performance degradation. But ironically, the business often dies before the code reaches any kind of 'bottom.'
For developers dealing with legacy systems, the takeaway is that 'sinking ship' gives false comfort. There's no point of no return where things magically reset. If you're in such a system, you're not waiting for it to sink — you're waiting for someone to decide the cost of change outweighs the cost of maintaining the status quo.
Read the full essay for a deeper reflection on the mechanics of technical debt in large organizations.
📖 Read the full source: HN AI Agents
👀 See Also

OpenClaw v2026.3.11-beta.1 released with free AI models, cron breaking change
OpenClaw v2026.3.11-beta.1 introduces two free AI models on OpenRouter with 1M context windows, fixes Kimi coding tool calls, adds OpenCode provider support, and includes a breaking change for cron job notifications.

Uber's AI Development Faces Budget Constraints Despite $3.4B Investment
Uber's AI initiatives are encountering budget limitations according to their CTO, despite the company having allocated $3.4 billion toward these efforts. The article discusses challenges in scaling AI development within financial constraints.

Intermittent Auto Mode Failures on Claude Opus 4.8: No Status Page Update
Users report intermittent auto mode failures on claude-opus-4-8 with errors about temporary unavailability of the classifier for Bash actions. No status page update from Anthropic.

SPLICE Benchmark Reveals VLMs Struggle with Temporal Reasoning, Rely on Language Priors
Research presented at EMNLP 2025 shows vision-language models score poorly on a video sequencing task where humans excel, with models like Gemini 2.0 Flash reaching 51% accuracy versus human performance of 85%. Models frequently rely on visual shortcuts and language descriptions rather than true visual understanding.