The author recounts their experience using large language models (LLMs) like Claude and Cursor to build a new infrastructure for their SaaS business, switching from PHP+MySQL to Go+Clickhouse. Initially excited, they relied heavily on AI to generate code quickly to meet customer demands and deadlines. However, over time, the codebase became inconsistent, messy, and difficult to maintain, with duplicated methods, inconsistent naming, and no coherent structure—akin to multiple junior developers working without coordination.
Despite feeding extensive context to the LLMs and trying advanced workflows, the AI-generated code often introduced new bugs and was hard to debug, especially given the author’s limited prior experience with Go and Clickhouse. This led the author to step back, study the technologies more deeply, and start rewriting problematic code themselves, using AI only for minor tasks like renaming variables or translating pseudocode.
The author reflects on the risk of over-reliance on AI tools, fearing loss of mental sharpness and coding discipline. They advocate for a balanced approach where the human remains the primary planner and coder, with AI as an assistant rather than a creator. They also express concern for non-coders attempting "vibe coding" with AI, warning it often results in unmanageable, error-prone code.
Finally, the author critiques the hype around AI coding tools, noting inconsistent performance, difficulty handling complex tasks, and the confusing, sometimes contradictory user experiences. They caution that while AI coding assistants are promising, current tools are "good-but-not-great," and overdependence may ultimately hinder developers' skills and productivity.
|