A tech founder recently asked me: What are your thoughts on Chat GPT-4 and what it means for you as an engineer?

Here’s what I told them 👇🏼

Chat GPT-4 and software engineering. Level-up? Or kicked to the curb?

Chat GPT feels like it came out of nowhere and changed the game overnight! I’ve been a software engineer for a long term. This feels like a whole new world.

Am I nervous and excited at the same time? Yes. 😳 😅 

Anytime there’s a big change in the industry, that’s normal. We’ve seen this with cars, phones, computers, the internet, etc.

First off, let’s just review – what is a software engineer’s job?

Coding? Coding by hand? What does that even mean?

A brief history of coding

Think back to when coding first started. People had to use punch cards fed into a machine to code up their programs.

Data was stored on the card by punching holes, which represent letters or numbers, in specific column locations that related to the information being recorded.

To read this data, the card had to be run through a machine that could detect or ‘sense’ the location of the holes.

image credit: computerhope

Machines have always been really good at taking manual tasks and automating them so that humans can focus on what we are really good at – innovative, and creative thought.

Over the years coding has changed a lot, and it will continue to change. 😅

Coding is built on abstractions

Does anyone want to go back to assembly language or punch cards? No way!

Can you imagine going back to using assembly language or coding punch cards? It could be the same in a couple years for “coding by hand.”

We don’t think about it often, but even today we have a lot of abstractions built into a language like Javascript or a framework like Vue.js or Node.js.

Do I need to know how Vue is interacting with the DOM model behind the scenes? 95% of the time – no.

Do I need to know how Node handles memory, and interacts with my disk? 98% of the time – no.

It may soon be the same with ai-assisted coding. You may not need to know actual Javascript 90% of the time.

Not only will ai be able to write Javascript, but there could be new abstractions built on top of Javascript that are much easier to write, read and understand.

Let’s imagine what a system would look like for sending emails to a list of subscribers.

The system might consist of maybe 20 files, 1000s of lines about how your code reads the email from the database, loops through all your subscribers, gets a service file to map the data into a certain format, throws it on a queue, and uses worker pods to grab those emails off the queue for sending.

It’s a huge mental load to write and read that amount of code, for what is essentially a simple problem: “send this email to a list of people.” 😅

In the future, with more ai abstractions, here’s what it might look like:

  • A systems design / code flow diagram of the system

  • An interface to zoom into any section of the diagram for more details

  • A code editor to dive deep into the nitty gritty and tweak the code

At a high level, it would be so easy to understand what the system is doing and why, and to dig into things when needed.

Will ai take my coding job?

Should we all start looking for new jobs because ai is going to replace us?

Nope.

Maybe if you did nothing for 3-5 yrs I’d be worried. But not today.

Wait what? 3-5 yrs? I’m worried about it taking my job today! 😳

Here’s the thing: Ai is pretty good now, but still needs to get a lot better for us to be able to develop true confidence in it.

A lot of developers tried Chat GPT-3 and it caused buggy code… so they gave up on using it except for very simple tasks. Chat GPT-4 is much better, but still has a way to go.

There’s a common principle:

People have of overthinking what we can do in one year, vs. under thinking what we can accomplish in three to five years.

I think that’s at play here with ai.

Long term, ai will really help us all level up… but it may still be a little while before we see mass adoption.

I think in the next couple yrs developers will be 10x more productive due to new ai tools.

Will my company let me use Chat GPT?

Unfortunately, probably not. At least not yet.

You may or may not realize, but everything you share with ChatGPT is retained and used to further train the model. Samsung employees learned this the hard way after accidentally leaking top secret Samsung secret information. 😳

In one instance, an employee pasted confidential source code into the chat to check for errors. In another instance, an employee shared some code with Chat GPT and requested it to “optimize the code.” In a third instance, and employee shared a recording of a meeting and used it to convert notes into a presentation.

That information is now out in the wild for ChatGPT to feed on. And for other users to potentially steal secrets from.

After this discovery, I think we will see many more established companies locking down the usage of Chat GPT.

We’ll see more of the industry move to “on device” ai calculation, or potentially towards services that lock your data and don’t share it with ai for training.

Will developers still be in demand?

Yes. In fact, the demand for developers might actually go up!

How we code may look very different, but our skills as engineers – people who build software – will still very much be in demand.

I think what will really change is the pace of innovation.

Since we’ll all have a “copilot” we can use to potentially 10x our current output – tech innovation and small startups are going to explode 🚀

What is the future of coding?

Ai is not just going to level up how we write code, but the whole process of software engineering. The entire product development lifecycle.

Remember, coding is not just “typing out functions by hand”.

At the core of coding is taking an idea, planning it out, building it, and scaling it.

  • writing code

  • understanding existing code

  • architecting performant systems

  • writing technical documents

  • deploying code

  • code reviews with other engineers

We will still be building software even if ai abstracts away a lot of the manual coding.

The future of coding might be something like Github copilot… pair programming with one of the best software engineers in the world.

Making coding more accessible

Another benefit of ai-assisted coding is that it will be much more accessible. You won’t need to sit in front of a computer for 8 hours a day typing by hand.

As Ricardo Lopes shared on twitter:

What’s interesting is that we as software engineers don’t often think of ourselves as “code typists.” Even though in reality, a lot of our time is spent manually typing out code we are thinking about.

What are we paid for as software engineers?

Think about a roofer. What do you pay them for?

Are you paying them to hammer in nails? Or for a new roof?

A roofer isn’t known for being good at hammering nails. They are known for giving us a nice dry roof that will last 20 yrs.

So whether that roof is hand nailed in, nailed in by 20 air-nailers, or pre-constructed in pieces and put together in 2hrs at our place – we still get a new roof.

The roofer is still in demand, although how they build it looks different with technology advancements.

What if all the manual code typing we do today was automated away? Not by an ai that is neural linked to our brain, but by an ai-assistant that knows our entire codebase.

What if an ai-assistant was able to be our “code typist and copilot” while we tell it our ideas?

It would

  • know our coding styleguide and patterns doc

  • know our product requirement docs

  • know our component styleguide

  • know all our existing systems and services

and be able to build new software in accordance with our ideas and standards.

Not only would this speed up coding – but it would also make it more accessible for people who don’t have full usage of their hands!

Ai could also enable us to have an all-day rubber ducking pair-programming session with the “world’s best engineer.” Instead of calling up your co-worker, you could talk out the problem with your ai assistant. 🧠

Conclusion

To wrap it all up. I think a lot about software engineering will remain the same, and a lot will change over the next couple years.

Again, I think there’s a good chance in the next few years, developers will be at least 10x more productive due to new ai tools.

I’m excited, and also slightly nervous about all the change – and that’s ok. 🤝

How about you? What are your thoughts about ai and coding?

I’d love to hear from you! 🙋‍♀️🙋‍♂️

Until next week 👇🏼

Catch me daily on LinkedIn and Twitter, where I talk about everything software engineering, startups, and growing in your engineering soft skills.