out.of.desk

personal blog of Gaurav Ramesh

Perfect Software - Software for an Audience of One

We have many names to describe personal tools. Malleable software speaks to how it behaves. Home-cooked software speaks to who makes it. I wanted a name that speaks to something deeper: how it feels.

Perfect Software.

perfect-software

I mean “perfect” in the way I mean a “perfect coffee”. There’s no such thing as the world’s best coffee. There’s only your coffee, with the perfect amount of sugar, the perfect milk-to-coffee ratio, the perfect roast, served at the perfect temperature, in a perfect cup.

What It Is and Isn't

Perfect software isn’t the best software. It’s perfect simply because it does exactly what you want, how you want it, when you want it.

It isn’t big either. We have confused "good" with "big". In the Silicon Valley lexicon, software is only valuable if it scales. It must serve millions. It must capture markets. It must grow continuously.

Perfect software offers a different kind of value: Sufficiency. It's the virtue of requiring less, not because you lack ambition, but because you have met the need. While growth demands a constant state of hunger, sufficiency offers satiety. And perfect software delivers that because the moment you deem something perfect, you become content.

Think about it like a gardener describing their produce – “perfectly ripe tomatoes” or “perfectly sweet peaches”. I want that in software.

Perfect software does not need to scale, it needs to fit. It doesn’t need a roadmap, it needs to keep a promise. Perfect software does not need tons of features. It needs to have just the features that the user needs.

The Myth of Perfect Software

Before LLMs, “perfect software” was largely a myth. For most of us, the effort required to build exactly what we wanted was simply too high. So we rented other platforms. We begged or waited for features. We accepted friction and exploitation - limitations, ads, data stealth - as the rent.

In the 12 years I’ve written online, I’ve never found the perfect writing and publishing tool. I’ve tried Blogger, Github Pages, Medium, Ghost, Obsidian Publish, Notion.. and more, so it certainly wasn’t for a lack of trying. It wasn't because I needed something fancy. It was precisely because I didn’t.

It Becomes Real

But over the last 18 months, I’ve increased my odds of finding the “perfect software”. Because now, I’m making it.

Shortly after the release of Claude models last year, I started working on this blog from scratch. Now, my blog is a perfect piece of software, because it’s my creation, finetuned to my workflow. I write articles in Markdown, run a Python script that converts it into consistent and customized HTML, and run some more scripts to build, package and deploy it on Netlify. If there’s something I want to do, I make it do it. And it doesn’t do anything more than I’d like.

While using Obsidian, I noticed that I rarely went back to my old entries and I missed them. I like the idea of serendipitous discoveries and connections, so I built an Obsidian plugin and called it Serendipity. It runs every time I open the app and pops a random post from my vault.

The Extended Mind Theory argues that our tools are not just accessories, but literal extensions of our cognitive process. Viewed this way, a generic tool like a one-size-fits-all app, feels like a prosthetic that doesn’t quite fit. When I built Serendipity, it fit perfectly. The serendipitous posts became a transparent extension of my memory. Nothing more, nothing less.

Last month, I wrote another piece of perfect software: a Chrome plugin to justify text with one click on any website I visit. As you can tell from the formatting of the text on this blog, I find justified text not only easy to read, but aesthetically pleasing. I read better and longer when the page looks right to me and text alignment is a critical part of it. So there was a void in my life, and I patched it.

It’s not the best plugin. I haven’t stress tested it. I’m sure it’ll break on some websites. But it has worked on every site I’ve used it on, because when it didn’t, I’ve changed it so that it did. So now it’s perfect. It’s like when you have a perfect garden one day, then you see a weed. You pluck it out and it’s perfect again.

This signals a shift in power, back into my hands. I get to choose how I view the content designed by others. It’s like walking into someone else’s house with my own coffee set and brewing the perfect cup.

What Does It All Mean?

First, you don’t need to be a 10x engineer anymore to build perfect software. You can be a 1x engineer(even if just at heart) with an itch to solve a problem and an LLM.

Second, it brings back the joy of software development. I loved software development largely because of what I could do with it. But over time, that spark was overshadowed by “adult” concerns: money, impact, ladder, leadership, ROI. While those motivations are all necessary to survive and thrive, they aren’t always what makes us feel alive. Every time I optimized purely for career impact, I felt like I was losing a small piece of myself.

Third, it brings back autonomy. Self-Determination Theory in psychology suggests that human well-being hinges on three needs: Autonomy, Competence, and Relatedness(Connection). When you climb the career ladder, you inevitably lose some agency. When I build perfect software, I regain agency. It heals the part of me that feels lost or bruised in the corporate world.

Enjoyed This Post?

Subscribe to get notified when new posts are published. Once a month, I share thoughtful essays around the themes of personal growth, health & fitness, software, culture, engineering and leadership — all with an occassional philosophical angle.