I’ve been quite quiet on here regarding positive commentary about AI. This is because I’ve been spending my time building with it. Claude Opus 4.5 is legitimately the first model I’ve seen ever that transforms software engineering. For the first time ever, it’s usually always more efficient to use Claude Opus than it is to try to code stuff myself. Disclaimer: I don’t only use Claude Opus. I still do work. It’s just that I don’t do the same work that I did before as a software engineer.
These new thinking models as powerful as Claude Opus 4.5 and more powerful actually transform the way that I work. I’m not just saying that as a vibe coder who’s hyping a product that has minimal utility. I’m saying that as a software engineer who’s been using this model for several weeks, almost months, and getting insanely impressive production-ready results from it. I use it as my job as a software engineer at Microsoft, and I use it for every single one of my side projects. Sure, I know how to code without it, but I also know how to code with it. And coding with it is exponentially faster.
Because of the recent advancements of coding models, I think it’s important to distinctly identify what it is we’re dealing with as software engineers. A lot of people, even at Microsoft, are scared of AI replacing our jobs or transforming our jobs in a way that maybe Microsoft doesn’t need us anymore. The truth is, AI does not eliminate the need for people to be engineering solutions. However, it does eliminate the need for a lot of what’s been taught in schools, such as syntax.
Software Design – a new profession
I think it’s only fair to identify the job that I do as not software engineering, but something like software designing. Engineering conventionally has been building from scratch or a baseline up to a full result. You don’t necessarily have to start from scratch to be an engineer. For example, you don’t need to prove the laws of physics in order to construct a bridge. You can assume that the laws of physics are true, and then you can build the bridge. You can assume that binary compiles into C, which compiles into Python, before being a Python engineer. The layer of abstraction has always existed since the dawn of time. The more we learn and the more we develop new ways to engineer, the more complex our systems become, and the more we can assume.
AI is not just one of these abstractions. It is not a replacement for some deterministic model, such as compilation or rudimentary laws of physics. Rather, it’s a tool that we can use to expedite our own progress as human beings dynamically. This isn’t a new concept. Again, we’ve built systems as human beings, such as higher-level programming languages, fields of study, etc., to simplify complex subjects or implementations. What we haven’t done is create something that can be an extension of our brain, that can think for us.
Software design itself is not even a new concept. I’m not a senior engineer myself, but I know senior and principal engineers at Microsoft spend most of their time discussing infrastructure and optimization instead of sitting down and actually coding. It’s not to say that what they do is not important; rather, it’s actually way more important than the people who sit down and code. It seems kind of crazy to rationalize that, because you think the people who actually are in the weeds making the thing work are more important. However, infrastructure is such a critical part of making something work. If you can’t model how it’s going to work before you start to implement it, it will most likely fail every time.
Software design is really only heavily practiced, I think, among these senior-level engineers. However, I think it’s going to transition to where all software engineers are going to have to be software designers. This is because we don’t really need to know how to be in the weeds and code like entry-level engineers need to do. We can just put all of our marbles in planning and infrastructure, and then the AI will figure out all of the technical syntax-y problems. To be completely fair, this is not something that was possible in my opinion until Claude Opus 4.5. As before this, a lot of the AI implementations were pretty bad. Most of the time they didn’t even really work and required extensive editing and monitoring.
This is not “vibe coding”
Something I want to get out of the way is that what I am proposing is not vibe coding. This has been a term that’s been spread around leadership across Big Tech for the past year and implies the existence of a complete replacement to engineering where you don’t even have to really know what you’re doing; you just kind of sit there and vibe and eventually what you want will come to life.
This is not a thing. You cannot do this in the real world. You can maybe vibe code something very simple, but the second you try to create any production code, you will be faced with what every engineer faces with every single day: errors. And because you don’t know what you’re doing, you don’t know how the systems work that produce the error, and thus you won’t be able to resolve the error. This is single-handedly why vibe coding has not taken over the world. Big Tech companies have lots of brilliant minds working for them as software engineers, and they will always outperform people who don’t know what they’re doing and just have a crazy idea off the top of their head.
How to software design
In the age of AI, software design will overtake software engineering. You will not need to know how to create React components. You will not need to know how to memorize functions, how to optimize. Instead, you will have to know that you have to optimize. You will have to know where you have to optimize without knowing exactly how. My dad has always been an infrastructure guy for his entire career, working at Microsoft for over 10 years. And it’s safe to say that he cannot make a single thing with code. However, this software design world will reward people like my dad, instead of reward the SQL guy or the C++ guy.
To understand software design, you must have a deep understanding of engineering. You must understand how to make a working product. You must be able to code it from scratch if you needed to. It’s weird because on one hand, I think that I’m just transitioning into an older generation where it’s important to understand fundamentals, but you legitimately do have to understand it conceptually. Maybe there’s a world where resources exist in the future that allow you to code without knowing how to code, but unfortunately that time is not now. You kind of do still have to know how to code to code. However, I can see this changing very quickly, maybe even weeks after this article is published.
Once you know how to engineer, you must know how to break things down. You must know how to abstract things to the layers in which a computer can interpret them. For example, if you make a web application, you must know that back-end systems are different than front-end processes. You must know how to optimize full-stack processes with respect to both stacks, and you have to know which questions specifically you need to be asking every step of the way. Not only that, but you need to propose these questions as blockers to the AI, who might not catch all of them at first.
You also need to be incredibly concise with your information. You can’t miss anything if you don’t tell the AI about something, it’s probably not going to know about it. It doesn’t have a brain, it can’t think outside of the box. You need to give it all of the resources it needs. Think of it like a kid who can immediately pick up on anything, and now you want to teach this kid how to do a skill that they don’t know how to do. You have to give them all the information first. If you don’t, they’re hopeless.
Finally, you need to know when to cut the cord. By this, I mean you have to know when to stop AI and do things yourself. Again, this part may become out of date very quickly, but even as of today it still exists with Opus 4.5. AI will get pretty far, but in some cases it can’t quite finish the job. I usually give it a three-step rule where if it doesn’t solve what I want in three tries, then I just go ahead and do it myself. This is extremely important because you shouldn’t waste your time beating a dead horse. There are some things that the LLM just cannot process, and that’s okay.
Conclusion
I don’t think software engineers are dead. I just think the profession is changing. I think it’s going to reward infrastructure builders instead of people who have a deep understanding of one particular code syntax. People who are able to design and tackle massive infrastructures without knowing how to code are going to perform better than people who know how to code but don’t know about infrastructure.
I still know a couple people in college studying computer science. What I will say to those people and anyone who is reading this who wants to get into computer science is don’t be scared. Even though essentially the entire education system is outdated and is most likely not changing anytime soon, you have a great opportunity in front of you. You can master this art of software design to put yourself ahead. It may seem super scary with all of these layoffs, but the truth is the layoffs aren’t indicative of needing less software engineers, it’s just indicative of needing less low-level software engineers. Unfortunately, this has always been the entry point for software engineering. You can’t just come out of college and be a senior software engineer. You need to start from somewhere, and I hope that corporations will understand this and give potentially easier infrastructure tasks to lower-level software engineers.
My consensus on AI right now is that it’s not murdering my job. It’s just changing it. I think we need to embrace change as a good thing if we want to get anywhere in society. AI has a lot of problems with it, has a lot of misused applications, but in the things that it’s good at, I think we should embrace it. If it empowers people to think more creatively and outside of the box to solve problems, instead of stuck in hundreds of thousands of lines of code every day, I think we should embrace that. I’m all for creativity. And I think that’s the one thing AI will never be able to replace.
AI will never be us. It will never be able to think like us. It will never be able to feel emotion. It will never be able to enjoy a song, or enjoy a painting, or enjoy the wind on its skin. The greatest accomplishments throughout the history of humanity have in part been technical but have mostly been about art, about reviving the human spirit through countless pieces of art through countless mediums of art. And that’s not going to change with AI. Because AI cannot do that. What I think it will allow us to do is to pursue those endeavors more than if we had to spend all of our time in the weeds.
Let me know what you all think in the comments below. I think this is a rapidly changing field, and there’s a very good chance that I’m wrong about half of this stuff in the near future. What I will say is that embracing this change will allow us as a society to get stronger, and personally, it makes me feel better knowing that my job isn’t really going anywhere. It’s just changing. If I’m wrong, then… whoops!
Jared
Leave a comment