December 10, 2025

Coding with AI: 5 Lessons + 3 Takeaways

Coding with AI: 5 Lessons + 3 Takeaways

Over Thanksgiving, I tried out Google AI Studio + Gemini 3 Pro. I pulled a project of medium complexity out of my "build this later" shelf. What I learned excited and surprised me.

I asked it to build a GoBot, a web app where people can play the game Go (aka Baduk or Weiqi). While playing, an AI can give them hints and tips. The AI doesn't directly tell them where to go next, but it asks questions and guides them towards an answer.

GitHub: https://github.com/neuralfirings/gocratic

There's quite a bit of complexity here. There's an AI Chatbot integrated into the app, the app calls another app (also vibe coded with Gemini 3) that runs a go game engine, it shows hints, maintains game state and lets users undo/redo moves, save and load games. It's not the most complex projects, but it's also not simple. Basically, it's a good test case for AI coding.

Here's some lessons I took away from this experience.

Lesson 1. AI can now iterate.

Even just 6 months ago, AI had a problem with iteration. It would start off great, and then I would give it some feedback or report a bug, then it would iterate. With each feedback cycle, it would introduce more bugs, or features would disappear, or it would say the bug is fixed when it clearly is not. The AI iteration lifecycle was maybe 5 or 6 turns, then I need to take over and fix the bug / implement the feature myself.

This time it was different. I could just keep iterating and iterating. For the most part (see next lesson), it did not introduce regressions. At least, it didn't introduce more regressions than engineers I've worked with introduced. Once or twice, features would magically disappear but those are usually easily recoverable.

This ability to iterate is a game changer since I can now work on a complete project alongside my trusty AI sidekick. This is the biggest change by far. I will keep testing different types of project with different complexities. So stay tuned.

Lesson 2. Ok, it still repeatedly bangs its head into a brick wall once in a while.

I'm made with Python code, generated by AI 🤖

Ok, I said for the most part, it could keep iterating. Once or twice, it did run into a brick wall and I had to nudge it back. Or grab it by the collar and yank in back.

The biggest issue I've ran into is AI not understanding it's own limits. I needed to install a Go Game Engine, basically something to come up with the next move so the user can play against the computer. Go is an interesting game, it's much harder to brute force than say something like chess. Even on a 9x9 board, in the beginning there's 81 possible moves, and for each 81 moves, there's 80 different possible responses. So if you want to go a few moves down to search for the best move, it takes a LOT of computation. Basically, don't do it in JavaScript.

So naturally, the AI tried to do it in Javascript. And... predictably, it was slow.

Next thing I tried was integrating another Go engine such as KataGo, Leela, etc. It tried to install these engines and kept running into errors. The same errors. AI, allow me to introduce you to Mr. Brick Wall.

As it turns out, no, Google's AI Studio cannot run these engines because it doesn't have access to run these engines binaries. Gemini 3 Pro, however, helped me figure out a few files needed to run these engine using Docker.

There was one other instance where I really had to step in and push it in another direction because there was some core assumption it made that did not make sense. But, for the most part, it took my feedback and iterated appropriately.

Lesson 3. It's so easy to get distra... oo shiny!

It takes a few minutes for the agent to figure out what to do, how to do it, and then execute the changes. In those few minutes, I have nothing to do but scroll social media, tab into another project, or get distracted with something shiny. The sum of this is that I feel more distracted and multi-threaded when coding with AI.

This might not be a bad thing. Multi-threading one's brain is probably a superpower and can be quite useful in modern society. At the end of the day though, the residual emotions I feel at the end of coding with AI is that of frenetic energy, not of deep research zen.

Lesson 4. AI made me better at reading code.

I am a product manager who codes. What this means is typically, I come up with an idea, write some code to prototype or prove that something works, meetings, meetings, meetings, then call in the "real" engineers to productionize my work. I'm much more practiced in writing code than reading code.

AI is still not good enough for me to be completely hands off. Even when the code works, I still need to have somewhat of an understanding in case I want to make small changes that isn't worth the time it takes for AI to spin up a new iteration. The upside of this is that I have learned to browse and read code. Yay, new skillset!

Side note: a senior engineer once told me that it's more important to be able to read code than to write code. This makes sense since the more senior you get, the more you review others' work vs. producing your own.

Lesson 5. Read the thought process.

Most of these agents lets you read their thought process as they are reasoning through your prompts. Try and read it. At least once in a while.

It makes it easier to focus on one project at a time (see Lesson 3). It might give you a heads up when things are about to go sideways (see Lesson 2). I think once the thought process revealed that it thought I was talking about doing something with Go the programming language v. Go the board game. I nipped that response in the bud super quick.


Basically, I'm promoting AI from high school intern to college intern. It will change things, and I'm hoping for the better.

Oh, I did commit to writing 3 takeaways right? Here they are.

  1. Throwaway code will be more acceptable, since development is less costly especially at the initial stages. I hope this means companies can take more risks, run more experiments, and figure out the product market fit (or feature market fit) faster. One of the biggest things I've noticed working with enterprise engineers is the fear of writing throwaway code. Especially in early stages, this fear can choke a product before it has a chance to breath.
  2. High level skills will be more important. The best engineers I've worked with also has good product sense, or have the ability to see around corners. These skills will be more and more valuable going forward. For example, it might make sense for computer science curriculums in college do incorporate more business and design classes. Skills in any industry will shift over time; skills in tech probably shift faster than other industries. Shifting skill sets are inevitable. The key is to identify which new skills are necessary at a moment in time.
  3. During a Gold Rush, sell shovels. There might be more opportunities to build businesses around the business of building businesses. Pause, re-read, continue. AI is making it easier for people or startups to launch products. Those products will need supporting services such as ads, marketing, legal, the boring stuff. There might be good opportunities in those supporting services.