Back to Field Notes

Fundamentals Matter More in the AI Era, Not Less

The model is plausible. That's its whole trick. Deciding whether it's actually right takes the stuff you already know, and without that you're shipping whatever sounded confident in the IDE.

TL;DRSenior engineering work has moved toward reviewing, designing and judging code more than producing it. Those are exactly the places where the model is weakest. So the theory you learned before AI could write a line for you, design patterns, distributed systems and security models, matters more now, not less. Juniors who skip it because the AI seems to handle it are building themselves a ceiling.

Long afternoon. Pair review with a junior dev who'd built most of a feature with an AI assistant and was pleased with how fast it had gone, which was fair, because it had gone fast. The code compiled. The tests passed. The thing did not do what he thought it did and when I asked him why he'd picked a particular pattern he said "the AI suggested it." That's the moment I sat down to write this.

The model is plausible. That's its whole trick. It produces text that reads correct, and reading correct is not the same as being correct, and the entire job now lives in that gap. Whether the thing in front of you is right is a decision, and you make it with what you already know. If you don't know it, you can't decide it and then you're just shipping whatever sounded confident in the IDE.

That's the shift. Writing code used to be the expensive part of the work and reviewing it the cheap part. That has inverted. A plausible implementation is close to free now, and the scarce thing is someone who can look at it and say why it's wrong, at what load, and for which user. You can't outsource that judgement to the tool that produced the code, because it will be exactly as confident the second time.

The parts that earned their keep in that review, specifically: design patterns, so I could point at why the suggestion was reinventing a wheel badly. Distributed systems, so I could explain why his solution worked on one node and would not survive prod.

And the authorization check that only ran on the client, which deserves its own paragraph. A check that runs in the browser is not a check. It's a suggestion, and nobody sending their own requests is obliged to take it. I work mostly in government, healthcare and security, where the thing sitting behind that check is somebody's file, and where the failure mode isn't a bug ticket, it's a disclosure you have to make to the people whose records you were holding. Nothing about the generated code looked wrong. It just trusted the wrong side of the wire.

None of that is exotic. It's the foundation. The AI didn't replace it. The AI bypassed it and nobody caught the bypass until review, which is another way of saying review is now load-bearing.

What I keep telling juniors

He wasn't sloppy, for the record. He did what the tool is built to encourage, at the speed it's built to encourage it, and that's going to keep happening to good people.

So: outsource the typing. Don't outsource the thinking. The model will happily write you 200 lines of code you don't understand and on a good day that ships fine and you learn nothing and on a bad day it ships broken and you still learn nothing because you can't read what went wrong.

I learned to code before the model could write a line for me. I used to think that was a generational accident. It's the only part of my skill set the tools have made more valuable rather than less.


Timothy De Bock

Timothy De Bock

Full-stack .NET platform engineer specializing in government, healthcare & security sectors.