Software engineering is hard.
Even with AI, it is hard.
But software development? That is becoming easy.
With today’s agentic tools, applications we once shelved for lack of time can now be built in an afternoon. “Vibe-coding” a frontend and wiring it up to a backend takes hours. Your friends and team will try it, and they won’t care if it crashes, leaks data, or looks unpolished. Kudos to everyone making their ideas a reality. It’s a great start.
But let’s not confuse software development with software engineering. What you have built is a working prototype. At best a high school project.
Software engineering is hard because of what comes after the prototype. The engineering feat begins when you have to solve for:
• multi-tenancy and access control
• making it globally available
• data security - in transit and at rest
• packaging, deployment, monitoring
AI can suggest architectures, but the right decision doesn’t come from a prompt. It comes from intuition and judgement.
The intuition and judgement that you honed by trial and error. It comes from the scars of tough lessons. It comes from the baggy eyes from late-night debugging sessions. It comes from the euphoria of fixing a critical bug.
AI can assist in ideation. It can debate with you on whether you should use a document DB or a relational DB (btw, the answer is document DB 99% of the time 😀). But choosing the path forward, that requires weighing in the pros and the cons of each option.
You have to think about the user personas and the context of the business. You have to think about the data you are processing and the SLAs you need to target. You have to think about the business impact of each option. That translation of business reality into technical architecture is where the engineering happens.
With AI, generating a feature takes 10 minutes. Deciding whether that feature should exist is the hard part. The prompt is easy; the judgement is hard.
Julien Bek, a partner at Sequoia Capital, noted in his article “Services: The New Software” https://sequoiacap.com/article/services-the-new-software/:
Writing code is mostly intelligence. Knowing what to build next is judgement.
This isn’t a comforting claim that engineering roles are completely safe from automation.
They aren’t.
Bek also points out that as AI systems accumulate proprietary data on what good judgement looks like, the frontier will shift. The time and effort spent on basic code generation is collapsing, and it will continue to do so.
The only logical response is to intentionally build your judgement. You need to understand the patterns, signals, and architectural trade-offs. Use AI to speed up your execution and expose you to patterns you might miss, but take the time to reflect on why a solution works.
I’d rather see 20 unfinished, highly experimental projects on your GitHub than one perfectly vibe-coded app that you don’t actually understand.
Build your intuition. Focus on judgement.
Show off your scars!
✌🏽
./J