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.