[2020] Developer Jobs in the World of AI

2020-08-04

Author's Note June 10, 2024: I wrote this way back in 2020 a month after the first GPT-3 beta launched. I leave it here as a reminder of my first-impression perspective. More importantly, this was the first time that I used writing to help me think critically about a topic that worried me (AI). I've since used writing frequently to help me understand the world. And myself.

If you haven't heard about the crisis/sensation sweeping the dev twitterverse that is GPT-3, go search for some examples. People are creating things today that some of my college professors told me were decades away.

If you're too lazy to find those examples (don't worry, I feel you), just know that GPT-3 is the latest round of "oh no, AI is totally going to take my developer job."

Let's be honest. That will happen one day. I realized though, that in the meantime, our jobs will look different by degrees.

I began to think, how would I use this tool if I had this tech available to me today? What are the use cases that immediately come to mind? What about the future? What could this possibly do?

Small Changes, Big Impact

One of the first things that came to mind for an AI like GPT-3 is written communication, such as emails or slack messages. This would require little-to-no implementation effort. You would simply need to say "give me an email that talks about the importance of the project timeline" and it will spit something fairly decent out at you. Add minor editing, and boom, you're off to the races. Overtime, as you get better at the commands to generate these emails, you probably won't even have to edit it.

Side Note: This type of communication leads to a whole host of questions for me. Here are some examples:

1) Would these types of communication tools result in AI to AI communication? Would humans merely be observers to these communications, acting as referees making sure our points get across?

2) What if the AI says something inappropriate to another AI? Who would be ultimately responsible for what the AI sends, the writer, or the creator of the AI?

3) Should there be regulations around indicating communications coming from AI versus humans?

Another use case that comes to mind is writing unit tests. You could simply give the AI existing code, and it would write all the unit tests for you in whatever language and framework you used. You could probably even specify a desired code coverage % and it would hit that % exactly. Tie this into a Github action, and the days of writing unique unit tests would be over.

Bigger Changes, Bigger Impact

Have you ever tried to write an AWS Cloudformation template by yourself from scratch with more than a few services? I have. I hope you haven't. It quickly becomes incredibly complicated. I quickly realized that there's a reason why there are certificates and jobs dedicated to just Cloudformation templates.

What if it's as simple as "give me an ecommerce website and mobile app that uses native AWS services."

The result would be a either a Terraform template or a Cloudformation template that perfectly represents all of the native AWS products. S3, API Gateway, SQS, DynamoDB, etc could all be tied together and deployed automatically simply by typing a sentence.

👋 So I did this experiment with Perplexity.ai here in 2024. Check out the results on this gist in GitHub. TL;DR - AI still needs more contextual guidance than what I had originally thought, but I argue we've already achieved what I was thinking. And then some.

Cloudformation was already arguably better than the alternative of manually creating (and don't forget updating) architectures with several services. Even with Cloudformation though, complex architectures could take days or week to setup. Now, with AI, we should be able to create these templates in seconds.

Also, remember that this wouldn't simply be the AI showing you examples of what other people have done. No, it could create the template behind the architecture that the world has never seen before.

Decide you want to add that fancy new satellite management service Amazon just added but are too lazy to read the docs about how to integrate? Simply mention Ground Station next time you ask your AI. (Okay, this is overexaggerated. I'm sure you need some special permissions to get involved in that service, but you get my point. Also, what dev has private satellites??)

Future Changes, Unknown Impact

As AI progresses, one can reasonably assume that it will get to the point where it will create their own programming languages and frameworks.

We can expect the first wave of these languages and frameworks to be incredibly complex and even impossible for humans to understand. Why would humans need to understand the implementation if it simpy works?

With AI fully taking over system development, "Developers" (or whatever they're called in the future) would be able to perfectly align our interests to the needs of the user. "We don't care what it's built on, we only care that it solves our problems and looks pretty."

In this world, what would developers even do? I suspect that over time, developers will all become more focused on two things: 1) User experience (yay!) and 2) good architecture.

User experience - It will be a while before AI can truly comprehend the human experience. Developers will need to guide AI to create systems that are still enjoyable to use for their users. They will need to train the AI to prioritize the things their users value.

Good architecture - I don't mean the architecture diagrams that we're used to today. Instead, in the early days of mature AI, developers will be in charge of connecting the various AI-driven systems. We will probably have a variety of options to use and will still have troubles integrating all of these services.

Don't worry

There's a lot of fear about AIs taking developer jobs. These fears are valid, but I think they're missing the point. AI is a tool to solve problems. Granted, it will be exceptionally good at solving these problems. However, if you view AI in this light, I think there are some really interesting use cases that come to mind. The ones I listed are ones that easily came to mind. I'm sure I'll have others. What can you create with AI? What problems can you solve? I'd love to hear your thoughts. Tweet or DM me @SteveGodderidge on Twitter.

✏️ Hey, it's me again in 2024. Two things: 1) R.I.P to Twitter. Hello to X. 2) I no longer use X. Perhaps Uncle Elon deleted my account? Who knows.

As an aside, I'm really looking forward to reading this post in 10 years and seeing where I was right and where I was wrong. 🚀