Vibe coding as an engineer

•
6 min read

I let Claude Code build and publish a real game (Taptrain) on a $20/month plan, without ever reading a line of the code. It worked, but it took around 100 sessions and a fair bit of patience to get there.

Potentially boring personal thoughts below, jump to main content

I have worked in the software industry for several years. Never have the industry gone through more changes in how we work in such a short time.

Late 2025 or early 2026 was the moment I really started using AI as a serious tool in my work. And then it just exploded to the point where I have hardly written any code this year. This is a potential red flag in the industry. Or not! If this was a serious blog post I could have opinions about that topic. I will not.

While I don’t code anymore, I have been reading a lot of code.

And markdown files… and specifications… and hallucinations… and pull requests…

But also, I have been talking to customers.

Created prototypes in an hour.

Solved problems.

I truly believe that the role of “coder/developer” is about to get extinct, and if you are in that role, you need to step up and take the role as an engineer and problem-solver. Your worth will not be your coding skills, but your ability to use tools (including AI) to deliver quality software that is maintainable, scalable and secure.

With that said, I set out to do the opposite.

“Let’s try vibe coding a game” - all the hip wannabe tech bros these days.

It would not be the first time I created something without reading the code in detail. I have done a few other hobby projects this year, but they were all done with technologies I knew, or at least with an engineering perspective of architecture and technical goals.

Zoomies

I created one app in React Native that we had a lot of fun with in our family, I called it Zoomies, and the idea was to take a picture, set an insane high zoom level of an object in the picture, and the others had to guess what it was.

Mockup of an unreleased game called Timings in the app store

At one point I considered releasing it, but the unmoderated photo sharing concept has a potentially dark side to it that I didn’t want to be responsible for. Maybe if I implement a cheap on-device image classifier to do NSFW moderation.

Timings

I started to create a game called timings. This is a simple asynchronous game. A bunch of different mini games that are meant to be played against an opponent. Most of them focused on correct timing of a tap or fast reactions.

Mockup of an unreleased game called Timings in the app store

One of these mini games inspired this blog post

This one might be an idea worth exploring more, but as with all hobby projects, the interest fades, technical debt increases and suddenly it just feels like work.

TapTrain

Now this is an app that I felt different about. I mean, not really a great game in any sense, but it has a few happy users that have spent hours with it. For me, this app is different from the others I have built.

Download TapTrain from App Store

  1. I have never seen the code, except from whatever is flowing across the Claude CLI
  2. The goal was not the game itself, it was to see if it’s possible to not know how to code and still release a game (spoiler alert: it is possible and people do it all the time)

And here it is in all its glory

Screenshot from App Store showing the published game Taptrain

The process

So, to force myself to not have opinions about code and architecture I let AI decide it. And as luck would have it, AI suggested Flutter/Dart, a stack I have absolutely no previous experience with. Perfect!

  • I used only the terminal.
  • I didn’t see the code
  • I approved every PR without reading code or description
  • I let AI generate icons and screenshots
  • I did only what I was told to do in App Store Connect to get it published, Claude could do most of it via APIs.

Claude subscription

I used only Claude Pro at $20 a month. This forced me to be aware of model choice. At one point I found myself with the laptop half open in the car, just waiting for Claude to finish a task before I could go inside a building, so I could use up my tokens in the 5 hour window.

I know there are ways, but I wanted the full vibe coder experience.

The pain in not owning the technical design process

This is a fairly small app, with limited features. I still managed to spend around 100 Claude sessions before I got the game that I wanted. That’s insane!

I would not recommend this if you value your time.

Screenshot from Claude to illustrate a lot of prompting was performed

Notice that there are 73 more lines here, ugh..

Finishing thoughts

Although I kind of knew what I was doing, I tried to pretend I didn’t, by prompting in a way that didn’t reveal any technical guidance, just describing the output I wanted the game to have - like a product manager, I guess, with a lot of time to spare.

I knew what I wanted, but it’s so hard to communicate sometimes.

I initially thought the main output of the experiment would be the process, but I have feedback from a few people (well, 3 in total) that really liked the game and have spent hours trying to beat each other. My own high score is nowhere near the best players.

I don’t really know the highest score, since this app is by design extremely self contained.

  • No user registration
  • No analytics
  • Nothing sent to a server anywhere

Just 16 MB of compiled Flutter/Dart that I have never seen and probably never will.

And I’m quite content with that.