Remembering the times

The Unbearable Lightness of Vibing

I've been completely enamored with AI assisted coding. Over the last several months, I've gone from AI skeptic, to this is a faster autocomplete, to completely taking off the training wheels off AI coding agents and letting them go wild on my machine. So much so that at any given time I have multiple fun projects executing while I am doing other things. Right now as I'm typing this claude code is building an iOS app. Over December holidays I spent over a billion tokens building all sorts of things - games, utility apps, dev tools, meta tools that make coding with AI agents better etc. And I seemingly cannot stop.


When I first started learning programming the learning curve was segmented as

I did the above journey to varying degrees of success with C/C++ during highschool and undergrad, Python during undergrad and grad school, Java at various points during schooling then all throughout my professional career for about 10 years now. I'd say I'm fairly comfortable with all of these, while trusting me to be at my best when writing Java. Even with Java there are areas like concurrent programming, sockets, networking etc where I wouldn't trust myself to be a go-to person to make mission critical decisions. This is simply because of not having written battle tested code in these areas while I've written extremely robust, critical path code for a ton of hard distributed systems problems. When it comes to 'competitive programming' or interview programming, I can confidently implement anything besides what would qualify as sorcery in Java. I don't have the patience nor mettle to master the obscurity of Java in several areas, and I can lead a perfectly content professional life working at the best of companies, building very respectable things without concerning myself with these topics.

Even before I started programming at a level where I could call comfortable, I had plenty of ideas that I struggled to translate to code. I never really managed to close this gap because my ideas were all 'product' ideas while my expertise was more and more in writing systems software for enterprise - mostly storage systems. At several occasions I tried unsuccessfully to enter the world of frontend programming, but I simply could not build.

Enter AI assisted coding. My introduction to AI assisted coding was via github copilot which was available as a plugin at work. I was very quickly impressed with how it was able to help me write small utility methods, speed up writing unit tests by learning how to setup tests and boilerplate code. The coding models were starting to get better and I was more and more impressed with how well they were able to understand the semantics of what I was asking. During the early days, on top of helping with redundant tasks, I was using these tools to quickly understand and ramp up in components that I was new to. This greatly sped up my day to day workflow. I found myself 2x-5x more productive. My bottleneck was build systems, workplace processes, and concentration.


Towards the end of the summer, I got introduced to claude code via my employer. This changed everything. I was trusting the AI more and more and for good reasons. I moved from writing utility functions to planning small features and letting the tool do all of the coding. I was still reading, vetting, and approving every line of code it was writing. It didn't take long for me to trust it with bigger features, and soon the training wheels were off. Over the last quarter, I hardly opened my IDE. All features small and large were planned, designed, built and tested by claude code. This was scary and magical all at the same time. The one difference I noticed between me and my colleagues who all got introduced to these tools around the same time was that I persisted with these tools while they gave up early when the tools weren't as good as they are today. The coding models have rapidly improved in correctness, efficiency, and semantic understanding.

Outside of the workplace, I discovered that the friction to take an idea to a prototype (or even a complete app for simple ideas) was entirely gone. Vaporized in a matter of months. I started building more and more things because my lack of understanding of frontend or lack of tooling and language unfamiliarity were no longer relevant. I could build entire projects from the command-line. And what beautiful things they were!

I built Kadhai a storybook editor during a 5 hour hackathon with my friends. All from an idea, to brainstorming, to building and deploying a beautiful application in an afternoon. It worked flawlessly. Over the next week or so I added features like a web reader, audio narration, added more books etc. It was all so unbelievable. Screenshot 2026-01-17 at 1

Since then I built over a dozen apps, had several 'start up' dreams. And ended up actually building something that I have been pursuing as a serious business idea - talking to incubators and other founders. Regardless of this succeeding, I think now is the time to build something and try out the startup life. I have conviction, but I don't yet have the failures that will teach me the right lessons. So not for nothing I've been taking this seriously because programming is no longer a bottleneck to building a software company.


Of course, there are several dimensions to the bottleneck, but one of them has shrunk non-trivially over the last year. This is both good and bad for the software industry - especially bad if you're not established as an A-player or are already blessed with network effects - know the right people, have a massive following, or have the acumen to crack virality with whatever you build.

I have been thinking about this for a while and have mentioned it to several friends that building software is having its 'youtube moment'. If pmarca didn't use this title in his recent post I would have kept my working title for this one :-)

You should read the pmarca post. I'd like to share a different perspective on the 'youtube moment of software'. Good software was a rare commodity in the beginning and it became fairly pedestrian as tools and knowledge matured. Even still, there was enough of a friction to building software that ~all good applications that exist were built thoughtfully. There was an organic filtering mechanism that bubble sorted software on github or other places like product hunt where there were organic measures to wade through noise. Because of the effort involved, the signal to noise ratio of good software was still fairly high. But now the balance has flipped.

When YouTube first came about, it was full of organic videos of people sharing their daily lives, vlogs before vlogs were a thing, funny home videos etc. Eventually monetization meant the production quality improved, with better cameras and video editing tools came cinematic videos, sophisticated production rigs, and straight up full length movies. Shortly after, the cheapest cameras, tooling, and video editing software became almost as good as your production quality videos that would have taken weeks to film, mix, and edit. This meant the signal to noise ratio worsened, the volume of videos increased to a point where the rate of production is matching and possibly outweighing the rate of consumption. This is untenable if you're a producer or a consumer. You become a victim to the algorithm, the bubble you're trapped in, and network effects make the popular creators more popular. Those that aren't at the mercy of the algorithm, are at the mercy of these popular creators and what little attention they can spare. Of course there's a handful of organic videos that reach millions and sometimes billions of people, but that's more luck than merit. There may never be another 'charlie bit my finger'. Or even if there was, there might be segments of the world who have absolutely no idea what I'm talking about.

Similarly, Writing code is no longer the hard part. Your coding agents can churn out thousands of lines of code every few minutes. While I was writing this post I'd shared a few screenshots of the app I considered to be too expensive and claude code has built a 90% like-for-like replacement. It cost me a few million tokens, all paid for via my monthly plan. There are harnesses that allow you to 'build' things while you sleep. People (including me) are churning out slop at an unprecedented rate. And I can see how quickly software has turned into a popularity contest. Bots and people alike are flooding reddit, twitter, and github with AI generated projects 90% of which are unoriginal, unimaginative, and are straight up non-functional.

This is causing major problems to open source projects which are stretched thin because writing code has now become a status game. Repos are flooded with AI generated PRs to a point where popular projects like tldraw have announced that they're no longer accepting PRs.

JPEG image-4795-9262-17-0

If writing code is no longer the hard part, why should they accept code from others when their AI agents are just as good at writing code?

We are at the second derivative of shovel selling now. Infrastructure for these AI companies was the first shovel. Now the inference companies themselves are selling shovels in the form of tokens. Talk about product market fit.

Programming is a very low hanging fruit for these companies to solve because of two reasons.

  1. Programming is verifiable and deterministic. So it's relatively easy to build coding models as the output is to a point self-verifying. Unlike writing or research or creative work where verification is still a challenge, non-determinism non-trivially changes what get built.
  2. Programmers are expensive and tokens are cheap. If you can build models that are good enough, you can convince software companies to hire fewer and fewer programmers to get the same amount of output.

However, almost all these frontier labs are operating with an "I got mine" mentality that doesn't bode well for software engineering as an industry.

In Milan Kundera's 'The Unbearable Lightness of Being', one of the central themes is the push and pull between the paradox of lightness and commitment. I think with vibe coding we're dealing with a similar theme. We're effectively building a paperclip maximizer that infinitely generates tokens, learns from the tokens available on the internet which is more and more filled with AI generated tokens in itself, and continues churning out more tokens. There is no net-good coming out of this. There's no longer the thoughtfulness that was required when software was being built even a year back. This likely will result in people not paying attention to the fundamentals.

'Vibing' is a great tool for programmers of yesterday who already put in the work but we've already entered the era of infinite AI slop which is not too dissimilar to short form brainrot that has taken over all forms of video.

#2026 #programming #software