Just saw the video clip of Obama talking about AI Agents taking Software Engineer Jobs by WIRED. He's not an Engineer, but this is still a good insight as to what the non-technical executive perspective could be on this stuff.

The whole agenda about Open AI coming for Software Engineering jobs has me conflicted. I am not sure whether to welcome the changes with open arms or be sad that something I spent my lifetime mastering is becoming obsolete altogether or reduced to only hobbyist enjoyment. But also, being a typist doesn't make you a programmer, just like being able to describe a product doesn't give you a fully based SAAS clone.

I've thought much about how the changing landscape would affect Software Engineering careers, there seems to be multiple possible outcomes. But the fact that there will be change is certain - the industry already changed and continues to change so quickly that we have yet to feel the whiplash effect of using AI generated code into our codebases see open pending lawsuits - not to mention there is this concept of 'poisoning' emerging that can honey trap AI training data into destroying its output accuracy. The universe has a funny way about it 🤭.


1 AI fully replaces engineers - Many including some CEO's have made comments celebrating and projecting the doom of the Software Engineer. Others have made bold statements such as ' 90% of the coding will be done by AI in two years time'. But don't specify - that's because there will be 200%+ more code.

Open AI just announced codex , so just imagine what that can do after a few years of polish. A little terminal chat can conjure up a SAAS company for you. I might call that coding in a higher level of abstraction than javascript, but the language required to conjure up that type of thing might be consider 'technical' or 'technical English' 😅. Oops do we call the people that orchestrate those applications and services into one complex ecosystem - that would be a true SAAS replacement - Software Engineers? 😱 Dang it, Executives can't get rid of them 🥲. Maybe there will only be executive level Software Engineers left. Buuuuuut there is a danger to the company with that 👇.

Lets not forget that the day you shutdown the IT and Engineering departments and drink a celebratory whiskey with the shareholders, that you just created that many competitors - while knowing there is a cheap enough way that 1 engineer can now potentially become an army of PHD level software engineers - gee the competition may be fierce from now on, might be time to hire those new competitors we just created so that we can compete with this OTHER company that decided to keep their workforce but decided to hand them all an army of AI Engineers to enhance profitability by innovating instead of by cutting head count. Oops, a mistake in that year(s) could mean you've made your company into a sinking ship by being greedy and impatient.

If this future comes to pass, there will be rising and lowering of the tides, many companies will sink, many new companies will rise. Universal basic income laws may start getting passed.


2 AI and Vibe Coders can't code themselves out of a paper bag - I think this is the most likely scenario. Vibecoding is a thing now, the genie is out of the bottle; there is no putting it back. I tend to welcome this, because I think of Vibecoders as a NEW job equivalent to the 'Technical Support' level of the System Admins. For example, you know how Cyber Security is not exactly entry level, first you have to know about the operating systems, browser and web technology you are securing and know it well. I can see Vibecoders becoming a precursor to Software Engineers - which itself evolves into an even more complex role or category of roles not suited for entry level folks.

In a few years time imagine the amount of codebases funded by VC who thought option 1 was going to happen - leaving thousands of vibe coded startups unable to add features without a Software Engineer because the codebase became too complex. I have experienced this myself to a degree - I was working on a small Typescript app that does some simple form filling. Vibecoding took me as far as having a full UI with the CSS written out - looks nice enough, but the exercise quickly evolved into normal coding where I had to debug the code and get the AI 'unstuck'. I had to guide cursor into writing good code with SOLID principles and DRY principles so it would not keep confusing itself. I had to fully understand the codebase and spent a significant amount of time having the AI refactor the codebase into something I could work with - According to the definition found in Wiki Vibecoding - Aren't we a little far from Vibecoding at this point?

I am not convinced that It would not have been faster if I just turned off the AI and wrote it by hand. I guided the AI into following TDD and had to set up a large set of rules so it can code how I would code an app. Now I still use the AI to help me continue writing features but it is precision guided and requires all the experience I gathered over the years. It's more of a collaboration because of lazyness, but not sure if it is faster/more productive.

If the AI trains on all codebases on github for example, wouldn't that make the best the AI can come up with 'average'?. Remember that average includes all professional and non-professional code, meaning that much of that code is not even good enough to pass a code review in most companies. So that is to say that in order to be a professional Software Engineer, you have to be better than the 'average' coder. This is the part where I start to disagree with Obama. 'Go Maximize Profits for our company' - It can't even figure out a KB size check (see below).

This situation would filter out most Vibecoders 👉 I had a situation where the AI could not come up with a good way to get the size of an object. I needed a check if an object’s size was bigger than Google Chrome allows for its sync storage API. Some fallback logic would take care of those values instead. So... with Vibecoding, none of the models (sonnet 3.7, gemini 2.5 pro) could figure out how to do it right by prompting many permutations of 'fix it'. I had to roll up my metaphorical sleeves and familiarize myself with that portion of the codebase; easier now because of previous refactoring. The changes were made with a combination of hand typing and AI autocomplete.

The AI had previously counted the length of the string and compared that to the chrome sync storage API size limit chrome.storage.sync API is 8,192 bytes (8 KB). Instead we can encode the text so we can count the size in bytes for a good enough approximation. 🤔 would a Vibecoder know to not simply check the length of a string to get its size in bytes?

The AI knows the information which is available in the google storage documentation, but it seems that this check had not happened often enough in its training data 🤷‍♂️. Not sure why it couldn't fill that gap, but if this is a side effect of being trained on existing code, it gives the LLMs a hard ceiling that it cannot breach on its own.

Obama saw a kid Vibecoding on an IPad, he's confusing that with Software Engineering IMO. Not his fault, everyone is impressed by what these apps can do. My code only needed a good enough approximation. A piece of code that likely doesn't exist in the training data in the way I needed it to work for my particular use case.

Vibecoding could mean you cannot innovate at the source code level, because the AI cannot truly write anything novel. That doesn't mean innovation can't be done by Vibecoders at the application level. But it does mean there is a ceiling of innovation when writing code with an LLM.


3 AGI never happens - The technology advancements of Agentic coding stops here. This is highly unlikely IMO, even more unlikely than option 1. In this scenario the agents would simply stop progressing much further and everything stays as is.

Engineers and Development departments will begin to master the existing tooling and begin actually working on backlogs (probably not). The amount of existing code continues to grow but not as fast as having smarter agents.

Many Vibecoders are still around and even convince VC to provide funding for their startup ideas. This is all great IMO, if a Vibecoder can get funding and create more Vibecoders and SWE jobs - that's great. We continue to grow and refine the Software Engineering field like in option 2, but at a more comfortable pace.

To conclude the rant I would say something like We will work with the AI together. The harsh reality is that with option 1 massive layoffs will happen, and not everyone that got laid off will be innovative enough to compete against the companies that laid them off. Other fields will quickly follow, also good luck competing against Software Engineers in your job if you thought about celebrating.