TIFIIT: Vibe-coding

Woman Sitting While Operating Macbook Pro

I constantly have ideas for new web apps. Most recently, I wanted to ask my friends which Pokémon is their favorite out of a group of nine in a 3×3 grid. It seemed like an interesting use case for Elixir and Phoenix since it has great real time update support for multiple users. I was talking through this example on my phone with Claude and decided to try it on my computer. It took many hours to get it running locally and I couldn’t get it deployed at all. I’m not an Elixir expert by any means, so I had a tough time figuring out the rough edges to get this working.

Today, I wanted to build a website for epoxy tables. I took a different approach and started from scratch using Claude Code in my terminal. I decided to use NextJS and Supabase. This worked significantly better, but ran into some interesting snags.

The GOOD: I can ask Claude Code to do some work and walk away. I come back and it’s done. It still requires some iteration to get everything how I want it to work.

The BAD: Software changes frequently. Even non-breaking changes in minor version updates cause Claude (and other LLMs) to write code in old styles and old references. This was somewhat remediated automatically by Claude since it could run commands and see the output, errors, and fix them.

There is a lot of talk right now around “vibe-coding” and replacing programmers. Vibe-coding is a higher-level of programming, just like Python is a higher-level than C. Having a deep understanding of the lower-level is incredibly useful, even when coding with higher-level languages. Using Python, I don’t need to know that an OrderedDict uses a linked list internally. However, if I do know that, I can use that as inspiration for my own code optimizations or be sure that using an OrderedDict allows for O(1) gets and puts, all while keeping a sorted order of elements. This enables me, as the developer, to use an OrderedDict for an LRU cache.

All of that to say what I’ve continued to say. LLMs enable higher-level programming, but they do not replace the programmer.


Photo by Christina Morillo on Pexels: https://www.pexels.com/photo/woman-sitting-while-operating-macbook-pro-1181676/

Leave a comment