All right, what's up, everybody? This is Courtland from indiehackers.com. Today I'm talking to Mike Perham, creator of a very popular tool called Sidekiq. Sidekiq essentially allows programmers to write code that runs in the background so that it doesn't get in the way of other parts of the code that need to stay fast and snappy.
Mike came on Indie Hackers and did a text interview back in November. I've done around 150 interviews total. His is somewhere in the top five, in terms of popularity. I think a lot of that has to do with the fact that Sidekiq is an open source project, and also the fact that Mike is basically running the business alone, and yet it bring in close to $80,000 a month in revenue.
Mike, I'm super excited to have you on. How's it going?
It's going great, Courtland. Thanks for having me, and congratulations on your move to Stripe.
Yeah, thank you. I'd like to start the story at the very beginning because I wanna give people an idea of what kind of person goes on to run a million dollar a year company by himself. What were you doing before you started Sidekiq?
I've been a software developer for close on 20 years now, doing everything from enterprise software to consumer-facing web properties. Just worked for maybe a dozen different startups. The common theme in all these companies was I was always working for somebody else and sort of solving their problem, and earning a salary while doing it. After this latest startup, I wanted to both work more on open source, solve the fact that I wasn't making any money off of my open source and also try to solve a problem that was more interesting to me so that I felt more fulfilled in solving a problem that I had, rather than somebody else having. That's what gestated Sidekiq.
How did you get into open source development in the first place?
Well, that was just a matter of scratching your own itch. We all are using various software libraries, various packages to solve various business problems we have, and it's natural to fall into using open source, but obviously, open source usually has bugs or edge cases that aren't handled properly with how you need it to work. Therefore, you go and you change something. You push it back upstream to the maintainer to improve the status quo. I had naturally been maintaining more and more Ruby libraries as I broadened my Ruby knowledge and was working on various Rails apps. Part of that was working on background job processing libraries, like Resque, like Delayed Job, and starting to build my own because I wanted to build something better.
At that point in time, when you first started working on Sidekiq, had you already been spending a lot of time reading about internet businesses or thinking about internet businesses? Because I know a lotta people spend years just reading about people doing this stuff before they take the plunge. Were you preparing in advance, or did you just jump right in?
I really had no experience whatsoever. I had always told myself that I was the last person that wanted to start a business, that I was just scared of it, didn't want to hire anybody, didn't wanna deal with accounting, didn't wanna deal with taxes. I just didn't wanna deal with the administratia that comes with owning a business. So what I did was when I started Sidekiq and I said I wanna start charging money for this, is I just did business as myself. All the sales and income that I had just went on my personal income tax. I didn't even have any sort of LLC or company as a separate entity to take in the sales.
Once I hit a point where my sales were larger than my monthly salary from my full-time job, that's when I realized I needed to make a change and I needed to actually do the hard work to learn how to run a business, how to start a business and how to make it legit. It turned out to be a lot easier than I was expecting, I think, which is true of a lot of things. When you're really scared of something, it's very oftentimes a lot easier than you thought it was gonna be.
It's funny because a lot of people, you said you didn't really start worrying about that stuff until it was substantial enough of a business that you could quit your full-time job, but a lotta people don't get started, even collecting their very first dollar, because they haven't figured out the legal situation and they haven't figured out the accounting. They're afraid of that kinda stuff. You really don't actually have to do all that much to legally start a business, at least in America, and to start collecting money, but eventually you should get your stuff together. Did you have any sources of inspiration? Did any other open source projects inspire you to create a business or other people creating businesses inspire you? How did you even know it was possible for you to just create something and start charging money for it online?
I consider myself an accidental entrepreneur because I really had no idea what I was doing. I just wanted to solve the problem of working hundreds and thousands of hours for no money at all. I said I'm sick and tired of this. I'm just going to charge people money. The money's gonna land in my bank account. I'll be happy. I don't care beyond that.
You can talk about legal issues, you can talk about accounting issues, you can talk about tax issues, but no one cares about any of that if you're not making any money. Until you're making thousands and tens and hundreds of thousands of dollars, it doesn't matter what you do because the amounts are so small that nobody cares. I just started charging money. Once I decided to go into business, then I contacted a lawyer. He incorporated me. I talked to an accountant. He showed me how to keep books so that everything is legit.
But don't worry about the paperwork. The hard part is just getting money in the door in the first place. That's what you should be focusing on.
No. There's very, very few people that are doing open source and getting money at the same time, so I really didn't have anybody to look up to when I was starting out. I don't remember really any companies that I was looking at as inspiration. There might have been one, which was Phusion. They make a library in Ruby called Passenger, which is a web server, or an application server. They started doing their Passenger enterprise a month or two before I started. When I saw them do it, I said, "Well, if they can do it, why can't I do it?" I kinda quickly followed in their footsteps by creating my own business-oriented software.
It's funny, a lotta people kinda put the cart before the horse. They're so worried about the legal issues that they don't even think about the fact that it doesn't matter if your business doesn't make any money.
Another example, I see this all the time, is that people get into startups and entrepreneurship, and they kind of assume that the hard part is coming up with the idea, and that that matters the most. They totally underestimate how difficult it is to actually find their first users.
I totally agree with you that if you're an entrepreneur out there and you're listening, don't worry about the trivial stuff. Worry about the actual hard stuff, which is gonna be building an actually successful business and generating revenue. The other stuff will fall into place. It's pretty easy to find an accountant or a lawyer. Don't even worry about a logo, really. Some of the most successful people that I've interviewed never came up with a logo, and they're doing $50,000, $60,000 a month in revenue. Worry about the actual business first, and then get into it.
What's the story behind how you even came up with the idea for Sidekiq? You said you were working on background job open source libraries beforehand?
Yeah, I was a consultant working in San Francisco for a company that was using a large amount of background processing. They had maybe a dozen machines chewing through all these background jobs. When I realized the set of software that they were using, how little efficiency they were getting out of their solution. Not only that, but their stack was pretty much best practice for Ruby back then. I said I can build something that's much more efficient that can process all these jobs with one machine, rather than a dozen machines, and thus, save a lot of operating expense, and thus, be really valuable to companies.
Once I realized that value, I said there's no reason why I shouldn't be charging for this thing, or there should be an opportunity for an enterprise version of this thing. I spent about two months building Sidekiq, and launched it after about two months of working on it internally, myself. It got pretty good takeup almost immediately. I guess I was the right time, right place.
But in the back of my mind, I was always thinking, okay, I've got this open source project. It's getting successful. How am I going to sustain this for the next five or 10 years? Because any successful open source project is going to last at least five to 10 years with all the businesses that are using your software and relying on it. How was I gonna sustain, how was I gonna run that marathon the entire time?
That's when I said I'm gonna charge money for this. If I'm making money off of it, then I will be incented to stay with it. After about six months of working on the open source version, I released a layer on top of it, which was closed source, which I charged money for. That was Sidekiq Pro. That is a feature pack, essentially, an add-on that adds a bunch of features that the open source version does not have. I saw sales almost immediately. The open source version gives me a natural market because those users of my open source version will naturally convert as they find that they need those paid features.
The business just kind of worked itself out really easily from there. I've got a natural set of users to market to. I just make their life as easy as possible, and they upgrade and pay me money for the work.
It's funny that you immediately saw the value that you're providing, in terms of, hey, I can save this company money because they're gonna pay for X servers, whereas if they use me and Sidekiq, they're only gonna use one server, or fewer servers. I think for a lotta developers, especially, it's difficult to think in business terms like that. It's easier to think okay, I'm a developer and the amount of time I spend coding is worth this much salary per year. It doesn't matter how much money I save the company, developers are only worth X, code is only worth this amount. Why do you think it was that it was so easy for you to determine the business value of Sidekiq? Or did it take you a while to determine that?
Well, I had been working in software for 10 or 15 years at the time, so I had seen a lot of different companies and how efficient or inefficient they ran. Not only that, but I'd been doing open source for five years or so before that. I had seen what happened with projects where they were of a certain complexity. The maintainers just are hit with support requests all the time, and they burn out very quickly.
I saw not only the business value, a little bit of business value there, but I also saw the alternative, which was burnout, inevitable burnout after a year or two. I said there needs to be a happy medium here. Charging for a little bit of that business value that they're getting to prevent burnout seems like, that dovetails nicely, those two things solve each other. But as to how I picked up on it, I think that was just experience and wanting to solve that problem of burnout.
At what point did you think, hey, I have a really business on my hands? 'Cause it took you, I think, a year and a half to get to the point where you were ready to quit your full-time job. That entire time, were you working up to be able to quit?
Not explicitly, no. I wasn't. For the first six months to a year that I was selling Sidekiq Pro, I just said I'm doing this as a nice side gig. I'll be happy if it provides me 20 grand a year so that I can afford a nice vacation with my family every year. I didn't really have any goals beyond that.
Well, no, that's not quite true. When I first started, I said, listen, I'm gonna sell this thing. I wanna make a million dollars off of it. I'd been working for a bunch of different startups, trying to punch that lottery ticket that would make me a lotta money. I'd always failed, for a thousand different reasons. I said if I'm gonna build this big, successful open source project, I wanna make good money off of it. I never thought that it would just be a full-time job. I figured it would just be a side gig that makes me good money. Over time, it'll just add up to be this nice, big number. But at some point, it gathered up enough inertia, even beyond what I was expecting, to where suddenly I was making more money than my full-time salary.
So why am I working for somebody else for a full-time salary when I can be furthering my own thing and potentially growing this well beyond a full-time salary? That's kind of the trail I've been on for the last two years.
Was that an easy decision, once you passed your full-time salary, to just quit?
Well, what happened was that the company I was working at was sort of naturally tailing off. They weren't seeing much growth. I saw the writing on the wall, that I'd probably be needing to be looking for a new job sometime in the next six months to a year.
I said to myself, why, I've got this great thing that's making me plenty of money. Why don't I just do that full time, working for myself, rather than getting back on the startup treadmill? That's the core site I picked, is I did a couple of tweaks to the business model to make it more sustainable for myself.
Specifically, I switched to a subscription model, in terms of payment. Instead of a one-time fee, I started charging annually for the software. By switching to a reoccurring subscription, I had that more predictable income that then I could guarantee how the business was gonna go over the next couple years. That went really well.
About four months after I made that switch, there came a time where it just natural for me to quit my job and move to it full time. That's when I incorporated. That's when I did the legal and accounting stuff and made everything legit.
How much time were you putting into Sidekiq before you quit your job? I know one of the most challenging things for people to do is to basically start a business while also working a job, especially if you have a family or other hobbies. It's just hard to find the time on nights and weekends. How much time were you spending on Sidekiq?
That was one of the nice things with my project and my full-time job, is that we were the number one user of Sidekiq and Sidekiq Pro. We were using all of the features that I was building. They were my first commercial customer in that I gave them a free license to use the software in return for all of the alpha and beta testing because I was essentially the director of technical operations at the company. I was the one who was in charge of production. I was the one who got paged if there was down time, that sorta thing.
Building Sidekiq and designing the entire business around those background job workflows that scaled really well with Sidekiq, I was able to sort of alpha and beta test all those features before rolling it out into my commercial releases. The job was good as I was growing the commercial offering. In that sense, I was very lucky.
But I was probably spending, I don't know, maybe 20 hours a week on Sidekiq. It's hard to say because a lotta times, my Friday nights, even my evenings, would be two or three hours working on various features and various bugs in Sidekiq. At the time, I had a very small child. My wife and I were just naturally at home almost every single night doing the whole childcare thing. Instead of watching TV, I would just be on my laptop building features, fixing bugs, that sorta thing. That was every day for probably at least a year.
I don't think I've ever talked to anybody who's had that situation where, effectively, the company that you're building on the side, you can really spend time working on it at work, or at the very least, your job is using it. By going to work every day, you're effectively testing your own software. Did you have to do anything special to come up with that arrangement or was it?
As I said, they were using, Sidekiq was the library that we were using to scale the business. Everything went through the background jobs so that we could scale it across many machines. Effectively, because I was solving the business problem, it was legit for me to be working on my thing there. But a lot of the commercial stuff I did after hours, I did on the weekends. Then I would just roll that feature into the application during working hours. There was sort of a, I don't know what you'd call that, two sides to it. I'd build a feature during my off hours, and then during the business hours, I'd be integrating into the app and testing it and that sort of thing.
You were really just dog fooding your own application, which is awesome because that's something that I think everybody really should do. You should test out what you're building and see what's it like from a user's point of view. That takes time. The fact that you were able to offload that time into your actual working hours means that the 20 hours that you spent on Sidekiq at home was really augmented by hours and hours using it from the same way that your users do, while you're on the job, getting paid. That's a pretty unique situation. I think it's so advantageous that you had that. That's awesome.
For sure. I was very lucky in having this setup. I think if you're building a SaaS, oftentimes people building SaaSes have those one or two or three initial customers that trust them and recognize that they are part of that, getting that SaaS off the ground. They know there may be some rocky periods, but they're getting business value out of this new SaaS, but at the same time, maybe they're getting a really low price or maybe it's free for the initial year or two that they use it, while the SaaS is really becoming productized and being made reliable.
Another thing that I think is really remarkably about Sidekiq as a business and that I think illustrates a lesson that people could benefit from understanding is that if you look at it, Sidekiq is a background job processor for Ruby. Ruby is at least, is one of at least six or seven popular languages for web development. Even within Ruby, there's at least three or four other popular background job frameworks.
It's a product with a lot of competition. It wasn't even the first one on the scene, by a long shot, yet it's still been able to succeed and grow.
I think that's not an intuitive thing to a lot of people who wanna start a business. People think that in order to create a successful business, they need to think of some new product that's never been thought of before and solve a problem that nobody's ever solved. What are your thoughts on that? Were you worried about competition when you were first creating Sidekiq?
That's a great question. I think open source is a very interesting area in terms of business. I think people really overestimate how good open source is. A lot of open source is just not that great. It's cobbled together over time to something that works. That's, a lotta times, as far as it's taken. You have something that works and it's good enough. When you come along and you say I'm gonna build something that's better, not only that, but I'm gonna work full time on it for years and polish this thing so that it is not just good enough, but good, all of a sudden, you stand head and shoulders above the competition.
I'm not really terribly afraid of open source as competition because I know that I can spend full time on competing against it, whereas open source, inevitably, people who are working on open source are just looking to get what they can get working, and then that's it, because they're not getting paid anything. Therefore, after a little while, you just burn out and you don't wanna put any more time into it. I think there's a lot of solutions for Ruby and there's a lot of solutions for a lotta different languages, but I'm proof that if you just pick a little niche and you provide enough value, that even in my little, tiny niche in the world, I can still make millions of dollars. Almost every niche, there's plenty of money for one person if you can make a difference as one person.
Of course, this goes into the whole aspect of do you get investors, do you bootstrap it yourself, that sorta thing. Luckily, I didn't have to have any investors. I was able to bootstrap it myself. I can keep my prices low. That has the advantage of making it relatively easy for you to convert users into customers because you're not having to convince them that they've gotta spend five or six figures on these big enterprise packages. It's something that's reasonably priced for a startup to use.
I think that's another good topic to get into because you mentioned having a Pro version of Sidekiq and a free version of Sidekiq. Can you go into detail and describe to us how exactly your business model works? What do people pay for and how did you settle on that being your business model?
Sure. I have three tiers of packages. Sidekiq is the base one. That's open source. It's free for everybody to use. Then on top of that base, I have a Pro library and an Enterprise library. Those are just additional tiers of features that just cost more money. Sidekiq is free, Pro is $1,000 a year and Enterprise is $2,000 a year.
Pricing is very simple. I try to keep the model very simple so that it doesn't get terribly complex and easy for people to understand. As I was developing Sidekiq and then developing additional features for my company, the previous company that I was working at, I said what are the features that 100% of my users are gonna need? That stuff should go into Sidekiq. Then for features that aren't necessarily used by every single person, but are still very useful, then those are the ones that would bump up into the commercial libraries, the commercial tiers. That's proven to be a great model. There's a dozen different features that are in the commercial tiers that people naturally upgrade to as they realize that they don't want to maintain and have to integrate and test all these various different open source packages that you can integrate into Sidekiq.
'Cause that's the interesting thing about my offering, is that you can replicate something similar to my offering by integrating a dozen different open source packages. The problem is, of course, that you have to do all that work yourself. You have to test it. You have to validate all these different packages written by all these different people all work well together. The alternative is to buy it from one guy, me, who has done all that already. That value proposition tends to be very easy for people to understand once they realize the work that they're gonna need to do as an alternative. I've gone from having zero customers to having, I think I'm about 800 customers now, something like that.
I was gonna say, there's two things that you said that really struck me. One is that you've got, basically your prices are $1,000 a year, somewhere in that range, which I think a lotta developers would consider expensive for anything that they make. That combines with this other thing that struck me, which is that doing the math, it's a no-brainer. Why not pay for Sidekiq? Why would you spend all the time putting all these things together?
I think a problem that a lotta developers uniquely face is that we tend to undervalue our work. We tend to make something and say I made this using code. Any other developer can make this. They just write their own code. Why are they going to pay for what I made? Then they charge way less than $1,000 a year. They charge $5 a month for something that could easily save somebody thousands and thousands of dollars. I've been meaning to write something up about this 'cause I think there's a lot of problems that are challenges or distractions that developers tend to run into that non-developer founders actually don't run into. So undercharging and devaluing the products that we write and the code that we write, and also the opposite problem, which is valuing the coding process too much, and neglecting to strike the right balance with other stuff, like distributing and selling their software.
I'm curious if you've had any trouble with any of this. Have you ever underpriced Sidekiq? Have you ever spent too much time coding and not enough time actually trying to sell?
Pricing is difficult for sure. You bring up a number of good points. One of the drawbacks to my business is I have a bottom-up business model. That is, I'm targeting developers directly. Companies like Oracle and, oh, shoot, I don't know any others who enterprise, Microsoft, they're targeting the CIOs, the CTOs, the folks that have million dollar budgets and are looking for a million dollar solution. When you're talking to, about an individual developer sitting in a seat who just needs to solve a problem, they don't have any budget. So when you propose a six-figure budget to them, they're gonna laugh you outta the room, especially given that these people are used to working with open source, where their average price is zero.
You are correct in that I have had a bit of an uphill struggle just in convincing Ruby people to buy software at all because they are so used to just going to GitHub or installing a gem or something like that. Keeping my price relatively low and my operations pretty efficient has been crucial for my success. If I had to get VC, there's no way I'd be able to make this business work. The profit margins I need to have to justify VC, to justify any sort of seed round, A round, that sort of thing, I'd have to increase my price 10-fold. I don't know that that kind of pricing would fly in the Ruby market.
To some extent, I've had to tune my business over the last couple years to work with who I'm targeting. That's what's hard about pricing, is you have to figure out who you're marketing to, who's the one that's gonna be making the decision, what's gonna be their budget. You'll never get it right. I've got the two-person startup in a closet that have no money as a customer, and I've also got the Fortune 10 as my customer. I charge the two people in a closet 1,000 bucks, and then I charge the Fortune five company 1,000 bucks. That's the drawbacks to pricing is there's no good price for everybody. You make the best of what ya can do. I think I've got something that works, but it certainly is not going to pay for a dozen different employees in a company of that size.
To your point, if you were to go the VC route and you were expected to create some sort of $200 million company, then you, for sure, would have to change everything about how you operate. You'd have to raise your prices. You'd probably have to hire dedicated salespeople to call the higher-ups in these companies and sell them on what it is that you're building and have an entire sales process dedicated to that. I'm curious what your sales process looks like now. Is it almost entirely inbound developers finding Sidekiq on their own? How did you make your first couple actual sales once you first released the Pro version?
Here's my secret. Here's Mike's secret to enterprise sales: Don't do it.
I don't do any sales. I work on the product. I try to document the product as best I can. I try to make the features as useful as possible. I try to make the product just stand on its own. 90% of my sales come without me saying a word to the person who's buying it. A lot of that, I wonder myself, and I have no idea, but I wonder myself about how many of my sales just come from people who've used it at previous jobs, who've used Sidekiq Pro and Sidekiq Enterprise at previous jobs, and just see it as one of the tools in their tool belt now. They go into a new company and they say, "We've gotta have this thing, it's great." They just buy it.
That really is 90% of my sales. I do get inbound emails every day saying, hey, we got questions about this, that or the other. Obviously, I answer as best as I can, but I don't do any outbound sales, I don't do any calls, I don't do any webinars. I don't even do really any advertising of any sort.
My market that I'm focused on is solely Sidekiq users, and convincing them that I'm a legit business and that I sell legit software for a valuable price or a reasonable price, and to get them to upgrade. Part of that has been to optimize my business as much as possible. When people come onboard, when they buy, it's completely automated to sign them up and give them access. When they don't pay and they churn out, that's also completely automated. I really don't spend much of any time on the actual admin part of my company. It's really just focused on support emails, dealing with issues and building new features and that sorta thing.
You're living every developer, founder's wet dream, which is I don't wanna worry about sales and marketing at all. I just wanna put my head down and build my product and have people come use it. It's funny because for a lotta businesses, that's terrible advice. They'll never get even their very first customer if they do it, and it works really well for you.
I think it's fun to think about what it is that makes that work well for Sidekiq. A huge part of it has to be the fact that you just have a product that is better than a lot of your competitors' and that's very niche. It targets people who don't have that many alternative solutions. Then I would guess another part of it is, and I would love to hear your thoughts on it, I would guess another part of it is the fact that you're in a place where there's already demand for that thing. Before Sidekiq existed, people knew that they needed a background job processor. They're going to search for that thing versus a lotta people who are building these totally new things that no one's ever heard of and have never searched for, have no demand. They have to drum up this demand and educate people as to what it is they're building.
It really is a better mousetrap. You're right. That is an aspect of my success, is that I don't have to educate people about why they want this thing. They are already using a background library, or they are already using Sidekiq for free, and so upgrading is just convincing them to part with a little bit of money in return for these features, which are also well known and they know they need those features.
Another aspect was when I first started, I had probably maybe 20 really heavy users of Sidekiq who loved it and who worked with me on the open source stuff. When I said I'm gonna start selling this Pro version, probably five to 10 almost immediately purchased it. I had that natural first round of customer interest just built in, just because I'd put six months of work into the open source version. People saw how well it was going. They saw how well it was taking off in the market. They saw my development process and the quality therein. The test coverage and that I was dotting all the I's and crossing all the T's. Therefore, putting a little money in. That I was somebody that was worthwhile and trustworthy to invest in, effectively, 'cause that's really what your early customers are doing, is they're investing in the growth of this new product, and that it will continue to be useful for them for the next few years.
That's such a great way to get your first customers. Like you said they already trust you and they already have been working with you. I think, again, that's something that's hard for a lotta people to start doing just because it's difficult for them to take the time to spend six months building a product. I think your story, in a lotta ways, is the story of taking these unfair advantages and using them to your advantage.
I don't say that in any way to take away from what you put into it. I say that more with a thought towards everybody should identify what their unique advantages are, and try to leverage those things. If you have got a big following on Twitter, you should leverage that. If you have an ability to build a product that your company can use, you should do that. If you've got friends in a particular industry and they could be your potential first users, you should talk to them. I think a lotta people can learn from how you started Sidekiq. Hopefully, those lessons will help them get over the difficult initial humps to getting a business off the ground.
Another thing that's really cool about Sidekiq, and I mentioned this early on, is that you're pretty much a single founder, if you accept the people who've helped out on the open source side of things. It's very uncommon to see one person doing so much in revenue. Generally, beyond a certain point, you see founders bringing in some help, bringing in salespeople, marketers, additional developers, et cetera. What has enabled you to stay solo, where other companies your size have had to hire?
Part of this whole I don't wanna start a business, and then deciding, eventually, to start a business was me saying I'm not gonna take anything as gospel. I'm not going to necessarily follow the well-trodden path that many other people do. Instead, ask why am I doing this or should I do something else? One of the first decisions I made was, I'd worked, like I said, previously in about a dizen different startups. I'd seen it fail so many different ways.
I said, you know what? If I'm gonna have a business, I don't wanna have other employees that are gonna depend on me. Either this thing's gonna work with just me, or it's not gonna work. I'm gonna be the only person who's gonna fail because of it. I just said I don't wanna hire anybody. A lot of my business decisions have come out of that. I also made the decision I don't wanna run a SaaS. I do have a server running 24/7 that I do have to monitor, but it's extremely simple. It's as simple as I could humanly make it. I don't have a large operation that requires other technical people to build it, to improve it, to monitor it. My customer side, my administration side, is simple enough where I don't need accounting people, I don't need legal people, I don't need bookkeepers or anything like that. I do all that myself.
I've purposely said, hey, I don't wanna hire anyone. Where possible, I'm gonna automate stuff. Where also possible, I'm just gonna make things as simple as humanly possible so that I can scale. So far, I've got something, like I said, 800 customers, and I'm scaling just fine with that number because I focused on, just on the product and maintaining the software. I'm not running a SaaS that has this complex operations overhead.
It strikes me that there are always a few constants that exist for pretty much any business that can take up your founder's time, or your time as a founder. There's development to improve the product itself and operations to keep things running, which it sounds like you've maxed, gone hard on development and minimized operational costs.
But then there are other things, like growth-related stuff, like sales and marketing and distribution, search engine optimization. There's always customer support, taxes, accounting that kinda stuff. At first, I think early on for any business, it's pretty manageable to wear all of these hats as a founder, but over time, you start to build up, at least I do, in my past endeavors, I started to build up a to-do list. Each one of these categories, it's absolutely humongous. At any given time, I feel like I've got all this stuff I could do on the SEO side of things and all these features that I could add and all these things that I could do to streamline customer support, et cetera, et cetera, et cetera. You just can't get to it because you're one guy.
What have been the hardest parts of scaling a business as a solo founder? Have there been any things that you've really wanted to get to, but you just couldn't?
I've always thought about how can I bring Sidekiq to other languages. I wrote a version for the Crystal programming language, which is sorta similar to Ruby. Then I also broadened out into another product category. I came out with a product called Inspeqtor, that just did not work as well as Sidekiq, didn't sell as well, so I've dropped that and don't really do much with that anymore.
My success is not 100%. The secret to my success is just time. I didn't quit my job and just say I gotta make this thing work in the next six months. Like I said, I was working full time for the first 18 months while this thing was growing. It wasn't until I was making good money where I went on my own and relied on that income. Then since then, I've been working for two, three years now on my own.
It's just a constant grind. Every day you're executing. You're working on your documentation, you're polishing your landing pages for customers. But because I'm not having to convince random people about the value of my commercial stuff, I'm solely focused on my Sidekiq open source users, I don't really need to do a lot of search engine optimization. I don't need to do a lot of the stuff that you might need to do if you have a more generic consumer SaaS. That's another, as you said, another natural advantage that my business has.
You mentioned Inspeqtor. I wanna kinda bookmark that and come back and talk about that for a second 'cause I think it'd be very interesting to explore the differences between Inspeqtor and Sidekiq, and talk about why one is so successful compared to the other.
Also, back on this topic of scaling your efforts as a single founder, I think another advantage that you have with Sidekiq is that retention is pretty great for the business that you're running. People probably don't switch around their background job processor willy nilly every other month, which means your churn is low. When you bring in a new customer, I'd imagine you're not just replacing old ones, you're just adding new customers. It allows your revenue to snowball, and also it gives you a break where you don't have to focus that much on growth, whereas by comparison, me selling ads with Indie Hackers, well, people don't buy ads for 10 years. They buy ads for a few weeks or a few months, and then they stop, and I have to find someone else to fill that ad slot. There's a ton of businesses out there like that.
For sure. A lot of the low churn and the recurring revenue means that I can just depend on organic growth over time. My business is growing generally anywhere from 50 to 100% a year, which is pretty darn good. But it's not the 100% a month that VC wants to see, but it's great for one person. Are you kidding me? I'm doing really well for one person. I'm very happy with my nice, easy growth that I'm seeing over time right now.
Another big aspect is, like I said, the automating of all the payments, infrastructure and customer management. Stripe is invaluable for that. I push as much as I possibly can into Stripe so that I don't have to do accounts receivable and badger people to pay their bills. It's only the largest of my customers that I allow to pay via invoice. Everybody else, I force to pay through Stripe so that everything is done in an automated fashion. That credit card is charged every year. The money just shows up in my bank account. I don't have to do anything. But there's no way I'd be able to scale to 800 customers if I didn't have the majority of my payment infrastructure all automated through Stripe.
Another thing that strikes me is you talk about having 800 customers. For a lotta people who just charge five bucks a month, 800 customers is what? Like $4,000 a month. You've got 800 customers, and you're doing I think over a million in revenue per year, which means you have a pretty high price point, a lot fewer customers paying you more money, which also means that you don't need that many wins in the sales department to build up your revenue.
You also don't need to spend nearly as much time on customer support, which, speaking from experience, can be a humongous time sink for a solo founder. By the way, for anybody listening, if you want to avoid a customer support nightmare, don't sell to cheap customers because for one, the cheaper it is, the more of them you get. Number two, cheap customers are super price sensitive. They're the ones who worry that their investment in whatever it is that you're building won't be worth it. That worry translates into all sorts of inane support requests and emails that, quite frankly, are gonna take up your time. How do you handle customer support with Sidekiq?
One of the best things I did with pricing was making a decisions that I would never, ever give a discount to anybody. That has proven to be such a great decision. The people that ask for discounts are, inevitably, gonna be your worst customers. I find that the people that are paying me the most money are the ones that treat me the nicest.
On the other hand, by my corollary, the ones who pay you the least are the ones who treat you the worst. Those are the ones you don't want as customers. I always said everybody pays the same price. I will not give any discounts ever. I have maybe one or two a month, people write in and say, "I've got a startup. "We don't have any money yet. "Could we pay you when we get our first round?" Or, "Can we just pay per month?" Always, always, always, I always say no. I'm not going to allow it. Sidekiq is free. You can use that all you want, but if you want my commercial stuff, you have to pay the same as everybody else.
Support is a tricky thing because, like you said, as the customers scale, the support burden increases. What I've tried to do, and this is another natural advantage that I have as part of my business, is that my users are used to open source and they're used to not having any support at all. They are used to reading through issues. They're used to reading through wikis and man pages. What I try to do is document my features as best as I can with all the caveats and everything like that. I also have four years of issues built up in GitHub so that when people do have problems, they will inevitably Google. They'll inevitably go into my wiki and read the docs so that I don't actually have to deal with a lot of emails all the time. I still do get half a dozen support emails a day, probably, but since I'm working on it full time, it's not an issue for me to keep up with it so far.
We'll see how that goes long term. But I also have a commercial support policy, which is pretty conservative, where I tell people technically you're only supposed to contact me once a quarter, or something like that. That gives me an out where if somebody's contacting me a lot, I can point to that and say, "I'm sorry, "but I need to keep a sane support policy" so that scales with me. That's sort of the way I run support.
The first half of your answer, where you were talking about the cheapest customers being the worst ones, again, I wanna talk about selling ads on Indie Hackers. I don't wanna disparage any of the people who bought ads on Indie Hackers. They were all great customers, but at the end of the day, there were companies that could afford to buy ads for two or three months at a time, and it was nothing to them. It was just a drop in the bucket.
You might think, oh, those are the people that you're gonna have to do high-touch sales with and it's gonna take forever. They're gonna be taking all of your time. Those were the customers who were the easiest to deal with. I could call them, they'd be like, "Yeah, yeah, yeah, we'll take two months." Then I wouldn't hear from them again.
Versus people who were running very small startups and didn't have an advertising budget and 100% of their marketing budget was spent on one newsletter ad for Indie Hackers, were, by far, the most fretful about whether or not it was going to work, and they would sent me the most emails and change things at the last second.
I think it's kind of just a universal constant that the lower priced customers are going to be much more of a headache. It actually affects your ability to run your business if you're spending more time dealing with those kinda emails.
Absolutely. You've gotta keep the business sane.
Yeah, for sure. Especially if you're a single developer. Running a business is a psychological thing. If you don't enjoy doing it, what's the point? You could just go get a job for somebody else. There's no point in starting a business that's going to have a whole bunch of aspects that you hate.
Make sure to keep an eye on your customer support requests and other aspects of your business that matter because, ultimately, I think most businesses fail because their founders quit. They quit before they get the business to work, or maybe they quit after they get the business to work. If you are not doing what you like, it's just gonna make it that much harder to justify continuing when the going gets tough.
Couldn't have said it better myself.
To end on, I wanted to say that you've been kind enough to share your story on Indie Hackers and other places. I seem to get a lotta people writing to you, asking for advice and stuff like that. Do you ever mentor other people? If so, I'd love to know what kind of challenges are people facing. What kinda questions do you get asked?
Most of the people that ping me asking for help are in my same area. They're open source developers who are frustrated with having to work for hundreds of hours building a project, and then find that their projects are being used by the largest companies in the world for zero dollars.
My advice, generally, is always the same. I think you've picked up on it very well in this interview, which is try and figure out what are your natural advantages. What are the points or the breakpoints where you can say I'm gonna give this away for free, but I'm going to charge money for this additional value. At the end of the day, Sidekiq itself, the free version, is still extremely valuable, but I give it away. I give it away because I need that market to upsell to. I get something of value out of Sidekiq, as well as the users that are using Sidekiq.
But for open source developers, every project's gonna be different. What works for me is not necessarily gonna work for every library and every framework out there. People really have to determine how can I find a way of making this work long term, of sustaining this project. Whether that's money or whether that's building expertise such that you can run a nice consulting business based on your knowledge from the projects, whether you're charging for support contracts. There's half a dozen different ways to make money off of open source, but you have to use your best judgment and experience to determine what's right for each project. That's really where I go with that.
I think you also said it well, which is if you're not happy doing something, don't do it. My business looks very different from so many other businesses because I said I don't wanna do something that doesn't make me happy. I don't wanna run a company with a dozen employees. I just chose not to hire anybody. That was a forcing function to design my business a little bit differently so that it scales with just me.
I think that is a great place to end the interview. We're kinda outta time. I wanted to get into the details of Inspeqtor. We're not gonna have time, but maybe I'll have to have you come back on the show another time and talk about that business, and the differences between that and Sidekiq 'cause I think it'd be really interesting for people to hear. I think we'd probably learn a lot, too. Thanks a ton for coming on, Mike. I really enjoyed talking to you. Can you let us know where we can go online to learn more about yourself and about Sidekiq?
Sure. The best way to pay attention to me is my Twitter account, which is @mperham, my first initial, last name. I also have a blog at mikeperham.com that I publish occasional interesting tidbits on technical and open source business stuff.
All right, thanks, Mike.
Thanks for having me.
If you enjoyed listening to this conversation, you should join me and a whole bunch of other indie hackers and entrepreneurs on the indiehackers.com forum, where we talk about things like how to come up with a good idea and how to find your first paying customers. Also, if you're working on a business or a product of your own, it's a great place to come and get feedback from the community on what you're working on. Again, that's www.indiehackers.com/forum. Thanks, and I'll see you guys next time.