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.

Your thoughts?

|

FYI: Here is what ChatGPT responded with:

Q: Will ChatGPT replace software engineers?

No, ChatGPT is not intended to replace software engineers. ChatGPT is a language model that is trained to generate human-like responses to natural language inputs. While ChatGPT can generate code, it is not a substitute for the complex problem-solving skills and specialized knowledge that software engineers bring to the table.

Software engineers are responsible for designing, building, testing, and maintaining software systems. They are skilled in programming languages, software development methodologies, and have a deep understanding of computer systems and networks. ChatGPT is a tool that can help software engineers in their work, but it cannot replace their expertise, creativity, and critical thinking skills.

|

my two cents on chatGPT is that it will be a useful tool for aiding software engineers but not replacing them.

if you are an experienced software engineer and have some experience under you already coding and fixing those types of issues then there is no chance a bot replaces you in the near future.

I also love the point about how code that generates code needs maintainers...

|

This is example isn't tech specific, but it sheds light on the challenges of ChatGPT and the continued opportunities for us humans :).

When contributing to the article The Top 5 Tech Interview Tips No One is Talking About, I laid out my advice on getting tech jobs in 2023. From my experience, a lot of it had to do more with the human connection side than the technical expertise side. You'll notice I talked about things like admitting when your wrong, asking for help, etc...

When I asked ChatGPT to generate advise for tech interviews here is what is came up with...

  1. Research the company: Before the interview, research the company you are interviewing with. Learn about their products, services, and the technologies they use. This will help you understand the company's mission and values, which can guide your answers during the interview.
  2. Review the job description: Review the job description and ensure you have a clear understanding of the requirements of the position. This will help you tailor your responses during the interview to demonstrate how your skills and experience align with the job requirements.
  3. Practice coding: Be prepared to demonstrate your coding skills during the interview. Practice coding problems on online coding platforms or through coding exercises in books or websites.
  4. Prepare for behavioral questions: In addition to technical questions, be prepared to answer behavioral questions that assess your communication skills, problem-solving abilities, and teamwork.
  5. Practice problem-solving: During the interview, be prepared to solve technical problems on a whiteboard or through coding exercises. Practice solving coding problems using various algorithms and data structures.
  6. Communicate clearly: Ensure you communicate your thought process clearly during the interview. Explain your reasoning behind each step of the problem-solving process, and be prepared to ask clarifying questions if you are unsure about the interviewer's question.
  7. Demonstrate your passion: Show your passion for technology and software development during the interview. Discuss your interest in the company's technology stack or the latest trends in the industry.
  8. Follow up after the interview: After the interview, follow up with a thank-you email to the interviewer. This shows your interest in the company and can leave a positive impression.

While this is good advice, you'll notice it lacks the specifics surrounding the advice I gave. I don't see anything about admitting when your wrong etc.

This is why ChatGPT can't replace humans entirely. It can give you accurate answer but lacks genuine human understanding of things sometimes.

|

great read. i feel better anyways :)

|

It's true that ChatGPT can spit out code that actually works pretty well. I don't think engineers should be running away from this though.

CoPilot is a sweet tool that makes the job go by at least 2x faster according to my friend whose been in the industry for over a decade.

I myself don't use this at work at all but I look at it as a "if you can't beat them...join them" type of thing...

also i wonder what ChatGPT says about all this lol.

|

I wonder what ChatGPT would say???

|

i feel like this article sums up COVID pretty accurately if you were a software engineer over past 3 years.

|

really well written

|

I think you're too optimistic... In short time one software engineer will be able to do the job of 10 other guys... There will be jobs for all? Will older engineers adapt?

|

ChatGPT taking over..nuff said