First things first. I switched my official font from “Jetbrains Mono” to “Space Grotesk”. Let me know what you think.
Well, ChatGPT is here, Google 2.0 is about to be released, and Microsoft is about to make resume writing a whole lot easier. The era of generative AI is here.
Look, I wanted ChatGPT to be terrible. I was one of the first to log on, get a few error messages and happily tell myself, “AI will not take my job away! I have a few more years before that happens.” Unfortunately, I sunk more hours into testing this new AI chatbot overlord and I suddenly realized that my initial take was completely wrong.
ChatGPT is the first AI product that I used which feels like it is ready to take away people’s jobs. I must have spent nearly 30-40 hours testing out different prompts, asking it to write code, generating boilerplate content.
Within the first week I was able to create a large amount of detailed and targeted content for my “Cloud Solutions” company website (really just my personal LLC). I was able to rewrite several old Kubernetes manifests that I have on my GitHub repo. I was able to finally learn and implement GitHub actions for my personal CI/CD pipelines (I previously used TeamCity). I was able to quickly and accurately generate content which I incorporated into some substack articles. I was also able to finally create pihole regexes for blocking tik-tok.
All of the tasks I completed in the first week of using ChatGPT were tasks that I knew how to do myself. I decided that I wanted to create an app. I am not a developer (I barely know HTML). Could ChatGPT create an app for me?
As most of you know, I have a love/hate relationship with pihole. I love the product. I do not love the community. I love when it works. I do not love when it does not work (which is most of the time). To me, it seems like pihole needs a major revamp. My gripes with pihole aside, could I create my own DNS filtering application from complete scratch?
The answer is complicated:
I started out simple.
Great, ChatGPT sounds just like a developer suggesting a tech stack. I am pretty familiar with Node.js, MySQL, and React.js (as much as a non-developer can be).
I decided to Go with GoLang (pun haha). I also decided to throw a curve ball at it and mention that I want to use blocklists instead of machine learning. I want this to be a lightweight application.
ChatGPT also obliged and suggested I use cloudflared to support DNS over HTTPS and DNS over TLS.
Awesome, next we need to get a general idea of what files need to be created. This is where it starts to get interesting.
I advise my developer that we have chosen the tech stack.
ChatGPT spits out the following:
I was shocked. Not only did it format everything nicely, but it remembered that we wanted to use React.js for the frontend and GoLang for the backend. To me, the file structure looks pretty good. A few things could be changed but hey, this is my first try.
ChatGPT also explains:
So what next? Let’s get this party started by generating some code!
As a side note, I own the domain oneblockdns.com so I decided to name my application OneBlock DNS.
Hey, that is a pretty snazzy README file. I like I like.
Next we need to generate more files:
With zero knowledge of GoLang, I say this looks great. I see code-like stuff being generated. ChatGPT also explains the code to me:
Cool cool. I now go through the directory structure and generate each file. All is going well until I notice something interesting:
Not a problem. We can create that file. I decide that we need to see a newly updated file structure.
Boom. My dev is on it.
I won’t show you screenshots for every single file that was created. Long story short, ChatGPT created every file and was able to create it with the correct contents based on the context of our earlier messages.
After I committed this to GitHub, I realized I wanted to Dockerize it and try it out. I went through the code, fixed some minor issues, tweaked some boilerplate variables, updated the name project wide, and started writing a Dockerfile. But wait, ChatGPT knows Docker! Let me ask it to generate a Dockerfile.
Hmm, it doesn’t look 100% right to me but hey, I am a mere human. PROCEED!
Hmm again. Doesn’t look 100% right buuuuuttttt. LET’S KEEP MOVING!
After this I created a GitHub Actions pipeline and attempted to build the application. Failure. But ChatGPT is AI! It is all knowing! *sigh
Look, I had zero confidence that I would be able to generate a working application solely using ChatGPT. I just wanted to see how far I could go. I know what I do not know. I know that if I was a developer, I would be able to take the barebones application that ChatGPT created and I would be able to fully deploy it as a working application. Alas, I am a lowly DevOps Boi.
But this project gave me perspective. Before I started this project I thought my job would be taken away by AI. It very well could be in the future. Now, however, ChatGPT is not ready to take away jobs. It should be treated as a tool to make jobs easier. It can also be used as a tool to automate repetitive tasks.
AI will take over and people will lose jobs. But at the moment, ChatGPT says it best:
Humans need to think of ChatGPT in it’s current state as an unpaid intern. It is new to the job, wants to make a name for itself and does not have the unique knowledge through experience that most of us have.
Do not think of ChatGPT as an extension of your knowledge. If it is an extension of your knowledge, it is an extension of everyones collective knowledge. Don’t get sucked into thinking in terms of ChatGPT prompts. Don’t make ChatGPT think FOR you.
Think of ChatGPT as a tool to expand your own knowledge.
Cheers,
Joe