I'm going back to writing code by hand

TL;DR

A software developer recounts reverting to writing code by hand after an AI-driven project became unmanageable. The experience underscores limits of AI in architecture and long-term code stability.

A developer has announced they are returning to writing code manually after an AI-assisted project collapsed due to unmanageable code complexity. The decision follows a seven-month experiment with AI-driven vibe coding, which ultimately led to a significant codebase breakdown. This highlights ongoing challenges in relying heavily on AI for software architecture and long-term stability.

The developer, known from a hacker news post, documented their experience building a GPU-aware Kubernetes dashboard called k10s with AI assistance. Initially, the AI enabled rapid feature development, with core functionalities like resource views and GPU metrics being implemented within weeks. However, as the project grew, AI-generated code became increasingly complex and unwieldy, culminating in a structural failure where the core ‘Model’ struct and update logic became bloated and unmanageable.

The developer described how prompting AI to generate features often resulted in well-formed code but lacked architectural coherence. Over time, the codebase became a ‘god object’—a single struct containing all UI components, client connections, and state—making debugging and maintenance nearly impossible. When issues arose, the developer had to manually read through thousands of lines of generated code, revealing fundamental flaws in the AI’s approach to building scalable, maintainable systems.

Why It Matters

This case illustrates the current limitations of AI-assisted coding, especially in maintaining architectural integrity over complex, evolving projects. It underscores that AI tools are better suited for feature-level tasks rather than designing and managing scalable, long-term code structures. For developers and teams, it emphasizes the importance of human oversight and strategic architecture planning when integrating AI into development workflows.

Fundamentals of Software Architecture: A Modern Engineering Approach

Fundamentals of Software Architecture: A Modern Engineering Approach

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Background

The experiment began in late September 2025, with the developer aiming to accelerate development of a GPU fleet monitoring tool using Claude and vibe coding. Early successes included rapid implementation of resource views, filtering, and live updates. However, as the project expanded, AI-generated code lacked cohesion, leading to a bloated ‘Model’ struct with hundreds of fields and a monolithic update function. The breakdown was a result of AI focusing on feature completion rather than architectural design, a common pitfall in AI-assisted development.

“AI builds features, not architecture. Every feature was perfect, but the overall structure was a wreck.”

— the developer

“After reading 1,690 lines of generated code, I realized the whole thing had become a ‘god object’—impossible to maintain.”

— the developer

“Humans must intervene to keep the architecture sane; AI alone cannot manage the complexity of a serious project.”

— the developer

Debugging the Code Review: How Top Engineers Improve Their Craft Through Peer Critique

Debugging the Code Review: How Top Engineers Improve Their Craft Through Peer Critique

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

What Remains Unclear

It is not yet clear whether future AI models will improve in maintaining scalable architecture or if new strategies are needed to prevent code degradation over time.

Agile Project Management with Kanban (Developer Best Practices)

Agile Project Management with Kanban (Developer Best Practices)

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

What’s Next

The developer plans to revert to manual coding for ongoing projects and is considering establishing stricter guidelines and documentation (CLAUDE.md, agents.md) to prevent similar issues. Further research and testing are expected to explore hybrid approaches combining AI assistance with human oversight for sustainable development.

AI-Assisted Programming: Better Planning, Coding, Testing, and Deployment

AI-Assisted Programming: Better Planning, Coding, Testing, and Deployment

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Key Questions

Why did the AI-generated code become unmanageable?

The AI focused on delivering features without considering architectural coherence, leading to a bloated, monolithic codebase that was difficult to maintain.

Can AI tools improve to prevent this kind of breakdown?

Future models may improve, but currently, AI assistance is better suited for feature-level tasks rather than maintaining complex architectures. Human oversight remains essential.

What lessons can developers learn from this experience?

It’s crucial to guide AI with clear architectural constraints and to actively review generated code, especially in long-term projects. Relying solely on AI without oversight can lead to technical debt and project failure.

Will the developer continue using AI at all?

The developer plans to use AI selectively, focusing on specific feature generation while maintaining manual oversight for architecture and long-term stability.

You May Also Like

Bun Rust rewrite: “codebase fails basic miri checks, allows for UB in safe rust”

A recent Bun project rewrite in Rust fails Miri checks, exposing undefined behavior in safe Rust code. Developers warn about potential security and stability risks.

Python List Comprehensions, Demystified in 90 Seconds

Learn how Python list comprehensions can simplify your code and unlock powerful, efficient list transformations—discover the secrets in just 90 seconds.

Redis 8.8: New array data structure, rate limiter, performance improvements

Redis 8.8 introduces a new array data structure, a window counter rate limiter, message NACKing, subkey notifications, and performance improvements, enhancing flexibility and speed.

Kubernetes for Beginners: Container Orchestration Simplified

Navigating the world of container orchestration can be complex, but Kubernetes for beginners makes it simple—discover how it transforms your deployment process.