Last year, I learned to code in 30 days with the help of YouTube tutorials and a LOT of google searches. The site I built had a simple interface, simple database, narrow functionality. It works, but it’s not what I would consider real software — a tool that lets people make things.
This year, I surprised myself by building a software tool end-to-end using ChatGPT in 30 days. In my previous life as a product manager, this was the kind of work that would take 2 engineers and 1 designer at least 30 days. And they would be an A-team.
Mind-bending is probably the best way to describe this experience. What used to be sprinting is more like crawling compared to what’s possible today. We’ve entered a new age of knowledge work. Let’s unpack what this means.
Am I an engineer?
Whenever I talk about this project, the most common reaction is that I’ve become an engineer. But now that I’ve seen the sausage get made, I feel a duty to share the truth. There was no engineer behind this project — at least not in the traditional sense. The code came not from my head or ChatGPT’s, but a tight collaboration between us.
Typically, someone who knows what to build and why, but doesn’t know how to do it writes a document, then gives it to an engineer to execute. Whatever is lost in translation takes time to iterate on. This is the old way.
The new way is to break down what would be a document into step-by-step instructions and send it to ChatGPT. There’s no need to sell a mission, or sprinkle in carrots for their career. ChatGPT prefers to get straight down to business, like this:
Generate a box with dotted lines that takes up most of the screen. Allow users to drag and drop images into the box, or click to browse and select their images. Then render out thumbnails of the selected images in stacked rows with some spacing in between.
The feedback loop is airtight because I immediately test ChatGPT’s output, and can see what needs fixing. After some iteration, we got to a screen that looks like this:
It’s magic with one caveat: it doesn’t happen on its own. Right now, I still need to be involved at every step to share right-sized instructions and feedback. But the technical barrier to code collaborate with ChatGPT is fairly accessible:
- Use an IDE to test the code
- Understand at a high-level what it takes to build things: HTML (elements on a page), CSS (styling), JS (frontend logic that controls how elements behave), Python (backend logic that usually involves saving information into a database)
- Know that there are open-source libraries where you can borrow someone’s code
ChatGPT is enthusiastic, relentless… and quirky. It’s an absolute beast at taking specific instructions, drafting code, and debugging syntax. But it also suffers from amnesia at times, forgetting previous context, or repeating the same wrong answer. When this happens, I first lose faith in AI, then start a new chat and make my ask more precise.
ChatGPT also has a bias for writing code from scratch even when libraries are available. When it creates excess code, I nudge it like this: “Are there libraries or pre-built components I can use for this? This is a Django app, btw”
When a use case is poorly documented, ChatGPT sometimes overstretches its assumptions. This brings us to an important point: ChatGPT is regurgitating a lot of online content. The output is often generic, but when it comes to building a product, especially an MVP, generic code that does the job is the job. You don’t need unique code to build a uniquely valuable business.
What does this mean?
When a seismic change happens, it’s fun to predict follow-on effects. Three that come to mind:
- Decline of the “code monkey”
- Rise of nontechnical “tech” founders
- Intention as humanity’s last bastion
Decline of the “code monkey”
One of the surprises from working in tech is how often engineers play the role of “code monkey” — there to follow someone else’s commands to the T. I think this will slowly fade because on its best days, ChatGPT is the perfect code monkey.
While companies will not want proprietary code on ChatGPT, I imagine building in-house replicas is already underway. With that said, generating new code compatible with a pre-existing codebase is significantly harder. There are fewer “right” answers compared to having 0 dependencies, but I trust this will be solved with time.
As basic code execution gets commoditized, I expect the value pendulum to swing towards the “ideas guy”. The “ideas guy” has been routinely mocked as someone who’s long on talk, short on action. But as the barrier between ideating and creating melts away, taking action becomes easier and faster, which makes a vibrant pipeline of ideas supremely valuable.
Rise of nontechnical “tech” founders
When I lived in San Francisco, I held serious distortions about what made a business valuable. Now that I’ve left the bubble and tasted the power of ChatGPT, two things are obvious:
- There are many people outside of tech with unique insights on problems worth solving
- They tend to start service-based businesses because they don’t “know tech”, but as ChatGPT goes mainstream, more of them will be able to productize their service
In fact, “tech” is being demystified everyday. When I was in college, I never got into coding because I struggled to memorize syntax. Hunting for missing commas felt like 80% of the tortuous battle. Even when I could read basic code, I was still walled off from writing code.
Nowadays, if you can read code, you can definitely write code with ChatGPT and Codex. And if you can’t read code yet, you can get ChatGPT to translate code line-by-line into plain English. ChatGPT can be everyone’s free, real-time tutor.
In short, a new level of the game has opened up to all of us. It’s cheaper and faster than ever to build what you want. We can all do more with less.
Intention as our last bastion
One predictor for whether ChatGPT will reach median performance in your job is by looking at what’s shared online. ChatGPT is freakishly good at drafting code in large part because there’s a deep repository of code in places like Stack Overflow… and on every website ever made. Same goes for designs. Wherever there are large bodies of data to learn from, performance will eventually follow.
What is not explicitly revealed online is intention. We see what is launched, but we don’t see the core insight, the thousands of decisions made, and paths forgone to build a successful business. This is why blind copying often backfires because you can only copy what you see, and reality has a lot of hidden details.
The intention to build something, the focus to deliver on a promise worth paying for has been rare and valuable since the beginning of time. Intention sets us apart.
The seed of intention is attention — paying attention to the problems around us. Paying attention though is harder than ever because distractions are getting more addictive. I think the great struggle of our time is preserving our finite attention, so we can channel our intention and make progress, on our terms, using these new superpowers.