One thing AI has made very clear is the difference between generating code and engineering software.
Most production incidents aren't caused by syntax mistakes they come from assumptions about failure handling, data modeling, security, observability, performance, and system boundaries. AI can produce a working implementation in seconds, but it doesn't automatically understand your business constraints, operational requirements, or why a seemingly simple change might create long-term maintenance costs.
I've found that the better someone's fundamentals are, the more valuable AI becomes. Strong engineers use AI to accelerate implementation, while weak foundations often just accelerate the creation of technical debt. The real skill isn't getting code generated it's evaluating whether that code is correct, resilient, observable, and appropriate for the system it's joining.
That's why topics like API design, database modeling, debugging, testing, and observability arguably matter more today than they did before AI. They're the lens that lets you judge the quality of what the model produces.
Devni Heraliyawala
Practical .NET, Azure, Architecture & AI Engineering
Absolutely agree. That distinction between generating code and engineering software is exactly the point.
AI can make implementation faster, but it does not remove the need to understand failure modes, data behaviour, security boundaries, observability, and long-term maintainability.
I especially agree with your point that strong fundamentals make AI more valuable. The better we understand the system, the better we can question, validate, and improve what AI produces.
For me, that is where the real shift is happening. Developers are not just code writers anymore. We need to become better reviewers, decision-makers, and system thinkers.