ChatGPT and the Future of Software Engineers
In a world of ChatGPT, automation, and low code obsession, it's hard to imagine a future where software engineers are highly paid.
In fact, it's hard to imagine a future at all! With Microsoft's recent $10 billion investment in OpenAI, applications like ChatGPT are generating all the buzz for their uncanny ability to produce content in a conversational and human-like manner.
Not only can these deep learning models generate text on the fly, they can also generate artwork, provide live feedback on call center conversations, and even generate code...
A reason to worry?
That last point is particularly scary for software engineers. As someone with 10+ years working as a software engineer, I am not taking the threat lightly that my job could be replaced by AI.
When I think about all the time I spend writing SQL queries and then see something like Codex (an API which translates generic statements into SQL queries for you), it gives me reason to worry.
Then I start thinking about all of the low code tools that eliminate the human errors justifying my paycheck. Things like Apigee which allow you to define API gateways by drag-and-dropping different work flows around a UI. Things like StreamSets which lets you build out complex data pipelines using Kafka, AWS, etc through similar UIs.
Then I start thinking about React and how that's really just an abstraction over JavaScript making the language itself more "low code".
Even the creativity of page layout, CSS, design are turning into configuration jobs with Google's MaterialUI and other component libraries. It's only a matter of time before OpenAI spits out code for autogenerating those configuration jobs.
At this point it seems a career change is inevitable. Even Github and other IDEs are incorporating AI into their editors for autogenerating the code itself. Yes, the future is looking bleak for software engineers...
Reality to the Rescue
It's important to remember that people like to panic. While these advancements in AI are certainly something to embrace, the need for their human implementers isn't going anywhere.
Why? Because technology doesn't move as fast as people think. What moves faster is the hype surrounding new technology and its fantasy-like potential. People get wrapped up in AI just like they get wrapped up in block chain just like they get wrapped up in Harry Potter.
When you strip away the hype-nado of chasing shiny objects (w3, blockchain, AI), technology doesn't move fast at all.
Take JavaScript for example, which as a language hasn't changed much since 1995. While the environments in runs on has changed significantly, the code itself and the way developers write it has not.
This is hard to remember when considering all of the frameworks that have popped up over the years. Angular, Angular 2, React, Vue, Express, Ember are all different flavors of the same underlying programming language.
Just because existing technology is packaged and used differently by highly opinionated frameworks doesn't mean your job is going way. It just means there's lots of opinions out there on how the same technology should be used!
The same applies to AI. Just because a bunch of AI applications are starting to flood the industry doesn't mean it's about to make your job irrelevant. In fact, it will probably only make your job MORE relevant.
The art of software development doesn't change
How you design your system, how you write your code, and how you test your code are all aspects of the job that haven't changed for decades.
Please note I am not talking about the evolution of technology (for all you "monolith to microservice" and "32 to 64 bit" nuts) but rather the practice of problem solving and organizing functionality around hardware.
Designing architectural boundaries and organizing code so it is both readable and efficient is the true art behind what we do as engineers. While OpenAI may generate code for us, we still need the architects and experts to design the system. Not to mention the fact that someone needs to manage the code that generates the code.
This helps demonstrate the fact that AI can assist us as engineers but it will never replace us entirely.
Is software engineering in demand in 2023?
YES.
While the "economic headwinds" of a potential recession have many larger employers laying off thousands, those tech resources are quickly being rehired at smaller businesses. The need for technology workers is hard to avoid even in this era of automation and low code nonsense.
There does exist some truth in the fact that tech jobs were a lot easier to come by during COVID. Thats because many tech companies flourished during the "work from home" economy and couldn't hire fast enough. Once COVID died down and the economy "unraveled", many of these same companies realized they grew too quickly for the "stay at home economy" (think Carvana) and mass layoffs ensued.
Which brings us to 2023. Yes software engineers are still in high demand. Yes it's a bit harder to find jobs today compared to the past few years. And yes this is because demand was insanely and unrealistically high for a few years.
The demand is still there. And Just because these "low code" tools have minimized the boilerplate code we write as engineers, it doesn't mean they've replaced the need for expertise in a field.
While Apigee allows you to build API gateways with drag-and-drop UI's, it doesn't understand OAuth and other security protocols for you.
You as the expert still need to understand the flow your building. Automation and AI just might make it easier in 2023.
Do software engineers have a future?
As implied with the previous bit, YES.
The tools may make things easier. OpenAI will write a lot of the code for us.
Just like planes fly themselves but we still need the captain in uniform, code writes itself but we still need the nerds scanning it. After all, code that generates code still needs to be maintained by somebody.
Even when exploring the ever so volatile crypto space, you realize that the magic that is blockchain still boils down to a code base managed by humans.
Although the future for software engineers inevitably looks bright, winners and losers will exist within the space. Even with the recent layoffs we've seen in 2023, data science remains in high demand. While full stack engineers will remain in high demand for the foreseeable future, AI engineers, block chain engineers, and even prompt engineers (yes engineers who prompt AI tools like ChatGPT are a thing) may have an even brighter future.
Why is a software engineer's salary so high?
Software engineering salaries tend to be high because software engineers do highly specialized things in a high demand industry.
It can be VERY DIFFICULT to find good talent in the software engineering realm. This is partially due to communication skills barriers as many of the best programmers can be impossible to work with.
It's also partially due to the fact that not enough people are interested in software engineering. It's hard to find professional coders period.
While this is changing with advent of trade schools and lucrative career changes, software engineering remains a science that just isn't sexy. It faces similar issues to accounting where it simply lacks the "cool" factor many college grads today are seeking.
For more on this topic, check out our forum on What is a good salary for a software engineer?
Is it hard to get a job in software engineering?
Software engineers are in high demand. If you can demonstrate a passion and knowledge for software engineering (primarily teaching yourself how to code and building a few projects) then the future is looking bright for you too.
With that said, the economic environment does play a role. While companies were hiring left and right during COVID (2020-2022) the party has somewhat ended. Engineers are finding new jobs quickly after getting laid off but the splurge of recruiting fresh talent has been dialed back.
There's actually some pretty encouraging news as pointed out by developersforhire...
For more on these trends, you can check out their report on job market trends.