the scapegoat dev

Can't Just Fake It - Level Up Your Vibe-Coding

You've probably heard about vibe coding—using large language models (LLMs) like ChatGPT or Copilot to program via natural language. There’s been a fair amount of hype, skepticism, and frankly, confusion around whether these models can really handle the complexity of big codebases.

Let's cut through the noise: vibe coding on large-scale software is not only feasible—it's downright practical, as long as you're disciplined about your software engineering practices. The key isn't forcing these LLMs to magically comprehend your sprawling, undocumented spaghetti code (spoiler: they won't), but rather structuring your codebase in ways LLMs can genuinely leverage.

Here's a practical approach, grounded in proven software architecture principles and battle-tested resources, that'll actually help you make the most out of vibe coding in large software systems.

Step 1: Get Serious About Your Architecture

Working with LLMs is fundamentally about clarity. Your first job is to adopt architecture practices that help both humans and LLMs navigate your codebase easily. The absolute essentials are:

Essential Reading:

Step 2: Know Your Patterns (Yes, They Still Matter)

Look, I get it—classic enterprise design patterns can seem dry, ancient, or just plain boring. But they're classics for a reason. Books like Martin Fowler's "Patterns of Enterprise Application Architecture" or "Enterprise Integration Patterns" by Gregor Hohpe and Bobby Woolf are still goldmines.

They provide exactly the structured, consistent vocabulary that your LLM needs to reliably output decent code. The trick? Avoid overly generic naming conventions. Instead of calling something a ManagerFactoryMessageController, which confuses humans and LLMs alike, pick domain-specific, meaningful terms. Make your intent obvious.

Must-have resources:

Step 3: Treat Code as a Language (Because it is!)

Programming is fundamentally linguistic. You’re communicating intent to both humans and machines. Peter Norvig's "Paradigms of Artificial Intelligence Programming" isn't just for AI nerds—it's a masterclass in clear, symbolic, and meaningful code manipulation.

This matters for vibe coding because it's much easier—and more reliable—to ask your LLM to generate small, deterministic transformations rather than recreate entire codebases from scratch. Linters, custom generators, small scripts—these are your secret weapons.

Highly recommended:

Step 4: Actually Do Software Engineering Right

There's a reason "The Pragmatic Programmer" is basically required reading: it distills decades of experience into actionable advice. Even though vibe coding feels cutting-edge, it thrusts you into an extremely professional context: multiple agents (human and AI) working simultaneously, rapid iteration, and tons of generated code that you’ll need to trust.

Version control, code reviews, robust testing—they're non-negotiable. Skimping here means chaos down the line.

Do yourself a favor and read:

Step 5: Deployment and Monitoring Are Non-Negotiable

Vibe coding allows you to ship faster than ever before. But this speed demands solid practices around continuous integration/deployment and monitoring. Keeping your system robust and stable amidst rapid changes becomes your primary responsibility.

For resources, lean heavily on books by Manning and O'Reilly. They have reliably up-to-date information on best practices in modern deployment, observability, and infrastructure.

Step 6: Realize You’re Already an Architect

Even if you don’t call yourself an "architect," if you're seriously vibe coding, you’re doing architectural work. You're orchestrating teams composed of humans and AI, bridging gaps, and making decisions about system design.

The human aspect—communication, organizational understanding, stakeholder management—is critical. The books "12 Essential Skills for Software Architects" and "12 More Essential Skills for Software Architects" by Dave Hendricksen aren't technical manuals, they're about managing complexity, relationships, and expectations. Precisely the skills you'll need more of as you integrate LLMs into your workflow.

Key Reads:

Final Thoughts

We're still early in understanding what vibe coding truly means for software development. But the trajectory is clear: structured, modular, and cleanly architected systems will allow LLMs to dramatically accelerate your development workflow. Adopt these best practices, and you'll not only make the most out of these tools—you'll shape the future of software engineering itself.

So, go read those books. Seriously, they’re worth your time.


💻 🤖 ✨ Interested in coding with AI and LLMs? Follow me @ProgramWithAI.

🧠 ❤️ 🖥 Connect with me on Mastodon @mnl@hachyderm.io or check my writing on dev.to/wesen.

For more detailed notes and insights, visit my 🧠 Obsidian vault.

🎵 Explore my music projects as slono.

Subscribe via 💌 RSS to keep updated.