Building with Go
For the longest time I've struggled with programming, but about two years ago I had some ideas and really wanted to try to make them work. Between that and watching way too much Theo and ThePrimeagen on YouTube, I decided to give it a shot with my newfound development partner, ChatGPT.
For years I'd tried some basic things in Ruby or Python and always ran into problems. To this day I still run into environment issues with Python, but I started messing with Go more and more and haven't looked back. Go just clicks for me: it's easy to read, structurally easy to comprehend, fast to work with, cross-platform, and has libraries and frameworks for just about everything.
The one thing I REALLY like about Go is its cross-platform support and the ability to build a native executable. As someone who daily drives a MacBook Pro but also uses a Windows machine, being able to have a single codebase and compile for each platform is awesome! I've worked with too many custom apps that are locked to Windows, and for most apps, we should be past that by now.
ChatGPT was a huge help early on. I'd paste in an error message or describe what I was trying to do, and it would explain what was going on and give me something to work from. But once I started building projects with a fair amount of dependencies, copying code back and forth between a chat window and my editor started to fall apart. That's when I moved to Claude Code. Working right in my terminal, with it able to see the whole codebase and how all the pieces fit together, made those bigger projects feel manageable in a way they never had before. Everything I'm about to talk about was built with it.
Being the nerd I am, I started with some terminal apps, which I really got into. I built one that renames all the videos on my NAS so Jellyfin reads them correctly. My biggest personal project was an app that organized all 176,721 of my photos, going all the way back to 1999. It reads the metadata and moves the files into a YYYY/MM/DD folder structure, and it also identifies duplicates based on file size and creation date. Getting this working for JPG, PNG, CR2, ARW, RAF, and other image formats was a fun project. Now I have an easy, fast ingest process whenever I'm done shooting photos with a cute animated progress bar thanks to Charm's Bubble Tea.


I also built the majority of my projects on MLB The Show with a Go tech stack, including Finest Fan Codes and Image Generation, as well as the Report Card. The Finest system generated thousands of images on demand, and I remember the moment I got it working, ran a stress test, and legit jumped out of my chair. The Report Card was always fun because I got to do something new each year, and building a spray chart, which maps out where a player's batted balls land on the field, was awesome. With both projects, I got to start with the user experience I wanted and work backwards to build something that aligned with that vision. I'm pleased that I got very close to the original vision with each one.
In the end, there has never been a better time to try. If you have an idea, no matter how big or small, give it a shot. Don't know where to start with Python, Go, or JS? Don't worry about it; just pick an AI model and start. Even if you have no desire to be a programmer, it's fun to build things, and when you see something you had in your head actually work, it's a pretty awesome feeling.