Originally posted on LinkedIn.
It’s popular right now to say that with AI, every software engineer needs to be full stack. But they usually just mean frontend and backend. That’s not the full stack. The full stack is the product, the code, the infrastructure it runs on, and the dev tools you build it with. Product gets plenty of airtime. I want to talk about infra and dev tools.
Before AI, engineering specialized for good reasons. Being useful in any one layer meant years of accumulated knowledge and constant upkeep, so depth beat breadth. And the only way to ship fast was to spread the work across specialists. AI dissolved both constraints. The long tail of syntax and config is handled for you, and a single engineer with agents has the parallelism that used to require a team.
The engineer’s job is now product shipper. Not code writer, not pull request merger: the person responsible for a feature running in production. You can’t be responsible for a system you don’t understand. If your mental model ends where the app starts, you can’t ship on your own.
It’s the same story with dev tools, except faster. New models and new tools are a steady stream, and they’re step-function improvements. The most impactful engineers maintain their own tooling so they get that tech the day it ships and have it tuned to how they work. If you’re waiting for an internal tools team to deliver AI tooling to you, you’re already behind.
What’s exciting about this moment is that nobody knows what they’re doing yet. Anyone who sits down and reasons about this from the first principles is making novel discoveries. So own your tools now. Ship something end to end, including the infra. When you get stuck, use AI to get unstuck, but get through.
For years my advice to engineers has been the same: learn infra. AI has only increased the salience of that guidance.
