Nana Kwasi Asante

Software Engineer

Perfectionism is BS

Last year, I discovered Go. It quickly became my favorite programming language (don’t ask me why—I still don’t have an answer). But there was one problem: hardly any Ghanaian companies were hiring for Go roles. So, naturally, I shifted my focus back to what put money in my pocket—TypeScript. Days turned into months, and eventually, Go faded into the background.

Fast forward to 2025, and I decided to pick it up again (after who knows how many failed attempts). I started small: a URL shortener. With Claude’s help, I spun up a project, built a simple server with the standard library, added some config, and got to work. It took me about three weeks to get something usable (life gets in the way, you know), but I finally had something working.

So why this blog post?

Because in those three weeks, I got obsessed with making things “perfect” from the very beginning.

The URL Shortener Rabbit Hole

Here’s how a URL shortener works:

  • You submit a URL.
  • The system generates a unique code that represents it.
  • When someone visits the shortened link, it looks up the code and redirects to the original URL.

Simple, right?

But my brain wouldn’t let it be simple. I kept asking: how should I generate the code? I wanted the perfect solution. I read about Base64 and Base62 encoding, even planned to write my own algorithm. I was already knee-deep in a rabbit hole—obsessing over perfection instead of just building.

Thankfully, I caught myself and took the straightforward route: generate a random 4-character alphanumeric code. Not flawless, but good enough to get something working. That was the point—progress, not perfection.

And honestly? The moment I shortened my first URL and saw it redirect back to the original—it felt amazing. Such a small thing, but the joy of seeing an idea work, even in its simplest form, beats chasing some “perfect” version that never ships. That feeling reminded me why I love building in the first place.

Code example showing the function Make it work, and perfect it later.

Scenario 2: The Work Project

At work, we had to integrate APIs into a project. I spent hours scrolling through UI inspiration online, paralyzed by “design perfectionism.” Result? No progress.

Eventually, I asked Claude to whip up a UI. We had a working version in less than a week. Only then did I circle back to polish and improve the design.

And again—that first moment when we saw the API hooked up and working inside the UI? Pure happiness. Not because it was perfect, but because something real was alive and running. Progress feels way better than endless “what-ifs.” That’s when it hit me again: done is better than perfect.

The Bigger Picture

I’ve had countless cool ideas die because I was too focused on making them “perfect.” I’d waste hours tweaking landing page designs instead of actually building the product.

Here’s the truth:

Just build. Get it out there—perfect or not. The people you think are “perfect” didn’t start that way. Nobody gets it right on the first try.

So ship quickly. Iterate. Improve. Build your own system to help you move faster.

Perfectionism doesn’t create progress. Shipping does.

© 2025 Nana Kwasi Asante