The problem is not AI code, but not knowing about system architecture or intent
The Crisis of Intent: Why AI Code Isn't the Real Issue
The prevailing debate often centers on whether writing code is dead because AI can now generate entire codebases. However, the more pressing danger isn't the code itself, but the systemic erosion of system architecture knowledge and the underlying intent behind technical decisions.
The "Average" Baseline
In my view, AI typically produces average code—the quality varies based on the scale and complexity of the task. This creates a specific dynamic:
The real risk is not the output, but the process: people have stopped thinking and started simply asking Claude for the answer.
🚩 The State of Modern Fast-Paced Development
In many high-growth startups or corporate environments where middle management aggressively pushes AI adoption, we are seeing a worrying trend. Consider this scenario (summarized from a recent industry observation):
"I've been at a major company for two weeks. Everything—the specs, the tests, the PRDs, the tickets—is generated by Claude Code. Management claims that pushing code is no longer the bottleneck, yet we are still slow. Everyone from L1 to L7 is just prompting. No one is taking the time to actually understand where the code is going."
The Knowledge Gap
This creates a dangerous loop where the "how" is automated, but the "why" is forgotten.
The Data Engineering (DE) Exception
Historically, Data Engineers had to be deeply embedded in the business logic from day one.
What pre-AI Data Engineers had to master:
- Deep domain expertise
- Collaboration with business stakeholders
- Understanding of raw data lineage
- Manual mapping of complex business rules
For those entering the field today, if they rely solely on prompting, this critical foundational knowledge is simply missing.
🛠️ The "Empowered" Product Manager
There is a school of thought—notably mentioned by Sean Behan—that non-coding PMs who can lead teams are highly valuable. With AI, a PM could theoretically build an entire product, find a market, and polish the UI without writing a line of manual code.
However, there is a catch. Without a grasp of the fundamentals, you are likely to build on a rock-solid foundation fragile architecture.
| Role | With AI Only | With AI + Fundamentals |
|---|---|---|
| Product Manager | Builds a "working" prototype that is impossible to maintain. | Builds a scalable product with a sustainable mental model. |
| Engineer | Copies inline_code snippets without knowing the complexity. | Orchestrates AI to implement a specific, intentional design. |
If you choose the wrong language or a flawed mental model at the start, AI can iterate quickly, but it cannot easily fix a fundamentally broken architectural choice.
👾 The Final Boss: Maintenance
The ability to generate a pipeline, a dashboard, or an app is now trivial. But the "Final Boss" of software engineering is Maintenance.
Thinking in systems and designing with intent are what separate a coder from an engineer. While manual coding might be declining, "Having Taste" is now a premium skill.
The Maintenance Paradox:
The easier it is to generate a feature the more features are created the higher the maintenance burden the more critical architecture becomes.
Example of Intent vs. Generation
If you ask an AI to "make it work," you get a script. If you design it, you get a system.
# AI-generated "Just make it work" approach
def process_data(data):
# Giant block of nested loops and hardcoded logic
# No error handling, no scalability
return result
# Intent-driven architectural approach
class DataProcessor:
"""
Intent: Decouple ingestion from transformation
to allow for future schema changes.
"""
def __init__(self, strategy):
self.strategy = strategy
def execute(self, data):
return self.strategy.transform(data)
🕹️ Who is Driving the AI?
AI cannot prompt itself. It requires a human to direct, orchestrate, and refine. This makes intent, taste, and architecture the "killer features" of a modern professional.
When these elements vanish, we enter a dangerous territory. Some argue this is a self-inflicted wound caused by the industry's failure to hire and mentor junior developers.
The Path Forward:
- Re-prioritize the hiring of junior talent.
- Focus on system design over syntax.
- Encourage "slow" reading of AI-generated code.
📚 Further Exploration
For those interested in the intersection of AI and cognition, consider these perspectives:
- Middle Management Anxiety: Kris Jenkins on the pressures of AI oversight.
- The Human Element: The philosophy that if a human consumes the content, a human should have written it.
- LLM Constraints: Understanding the inherent limitations of Large Language Models.
This synthesis is inspired by the "Second Brain" notes of Simon Späti, focusing on the intersection of Data Engineering and the evolution of software development.