Pros and Cons of Solo Development โ€“ John Jeffers

🔥 Check out this must-read post from Hacker News 📖

📂 **Category**:

✅ **What You’ll Learn**:


Pros and Cons of Solo Development – John Jeffers

















I created and maintain Luxury Yacht, a desktop app for managing Kubernetes clusters. Think Headlamp, Lens, and k9s. It’s that kind of app. Luxury Yacht is a solo project, and it’s been quite a challenge to get it to where it is today. I want to talk about some things I’ve learned over the past six months of doing this.

But First, Why?

Why do this, when apps like Headlamp, Lens, and k9s exist? I just never found the app that clicked with me. The closest thing I found to what I wanted was Infra, which I really liked, but it’s been abandonware for years. So, I decided to write my own. Along the way it got good enough that I thought other people might also like using it, so I released it.

Maintaining Luxury Yacht is practically a full-time job that I do for free, in my spare time. It eats up a sizeable chunk of my evenings and weekends. I’m not complaining! Nobody’s forcing me to do this. I enjoy it. I’m creating something genuinely useful for myself that I get to share with other people. As I write this, I’ve got well over 350 stars on the GitHub repo, and that feels pretty good.

Pros

There’s a lot of freedom that comes with being the sole maintainer of an app. This is the big draw for me.

  • I get the exact app I want, that works exactly the way I want it to. This is extremely satisfying, and you should try it if you haven’t yet. AI has opened this door for a lot of people. More on that later.

  • I can ship a bunch of changes at once. I can create ridiculously huge PRs that I would never willingly inflict on another person.

  • Being accountable to no one but yourself is liberating. I make all of the product decisions. If I want a feature, I build it. I don’t have to cut or delay features to meet a release deadline, or negotiate with a product team about taking the app in directions I don’t agree with.

  • I release on my own schedule. Sometimes I might release a few times in one day, other times it might be a few weeks between releases, if I’m working on a particularly large or complex task.

  • I don’t do standups, sprints, points, or burndown. All of the ceremony that can get in the way of actually doing the work is gone when you’re a one-person shop.

  • I can choose to license and release my app however I want. In my case, I’ve decided to give it all away for free. There are a few reasons for that:

    1. I like the philosophy of FOSS, and I like the idea of giving something back to the community that has given me so much.
    2. I make extensive use of LLMs to write Luxury Yacht. It doesn’t seem right to charge someone to use code that was trained on other people’s hard work. Perhaps this is a naive way to think about this.
    3. I really, really don’t want to be in the business of software. I like creating the app. I don’t want to run a business. It’s important to understand these kinds of things about yourself, so you can enjoy what you do and not burn out. I might be leaving money on the table, but I don’t care. I’d rather be happy.

The other category of things in the Pros column are learning opportunities. What you’ll learn from your project depends on what you’re building, how you build it, and where you’re starting from. I’m not going to go into detail about the specific things I’ve learned from working on Luxury Yacht, because that’s unique to me. Suffice it to say that you’ll learn a lot, because it will force you to deal with things that you probably don’t have to deal with in your day job’s niche.

Cons

The flip side to all of that freedom is responsibility. You’re on the hook for everything. It takes a lot of self-discipline to do this solo. I wouldn’t recommend it if you don’t have that discipline.

  • Thanks to AI, writing software is easy, but writing good software is still hard. Even if you let LLMs write most of the code, it’s a lot of work to prevent it from becoming slop. Current LLMs cannot hold the complexity of large apps in their context windows, and you have to constantly monitor and direct them to keep them from going off on strange tangents and producing garbage code.

  • I have no one to bounce ideas off of, aside from friends who use the app. I don’t know if my design choices are right. I don’t know if my implementation makes sense. I don’t know if I’m making rookie mistakes in the code. What I do have is a lot of experience as a platform/infra engineer, and I’ve been using Kubernetes for almost as long as it’s been around. I have a pretty good sense of what I want out of an app like this, and I’m hoping that what I want from this app are the same things other people want.

  • But… I don’t truly know what my users want. There is no telemetry of any kind in Luxury Yacht. I like being able to say that, but it means I have no idea how many people are using it, or how they’re using it. I don’t know what features are the most important to other people.

  • It can be a massive time sink. As I mentioned earlier, I spend most of my after-hours time working on this. By choice, of course. I’m not beholden to anyone, but I want to make sure that something I put into the world with my name attached to it is as good as I can make it.

  • You are the customer support team. Every bug report and feature request that’s opened is assigned to you. Every contributor PR is yours to review. The more popular your app gets, the more work there is to do. Becoming a victim of your own success is real.

Find Your Balance

You might have noticed that most of the pros and cons are two sides of the same coin. You get to do everything that’s fun and rewarding, and you have to do everything that isn’t. Hopefully, the get tos outweigh the have tos. You probably won’t know until you try, but hopefully this post has helped to frame it.

For me, the balance is right. I’m having a great time with this. It’s satisfying to build a good piece of software that I enjoy using. It’s even more rewarding to see it used by others. It’s super cool to check out the locations of the people who have starred the repo, and see that they’re from all over the world.

A quick anecdote. I was at KubeCon in Amsterdam this past April. On the advice of a friend, I had some Luxury Yacht stickers made, and I brought them with me to the conference. I put them out at my company’s booth.

On the 2nd day of the conference, one of the attendees stopped by our booth, saw the stickers, and said, “hey, I use that!” I replied, “really? I made that!” Then we talked for a bit about why he liked my app vs. others he had tried. This person had traveled from Germany to attend the conference, and I was struck by how cool it was that a thing I made was appreciated by someone so far from where I live.

This is the stuff that makes the effort worthwhile.

#development

#kubernetes

#thoughts


Powered by Bear ʕ•ᴥ•ʔ



⚡ **What’s your take?**
Share your thoughts in the comments below!

#️⃣ **#Pros #Cons #Solo #Development #John #Jeffers**

🕒 **Posted on**: 1783362665

🌟 **Want more?** Click here for more info! 🌟

By

Leave a Reply

Your email address will not be published. Required fields are marked *