In episode 661, Rob Walling chats with Mike Perham, the founder of Sidekiq, who is a solo founder doing millions in revenue as a one-person business.
If this isn’t unique enough, Sidekiq originally started as an open-source project before he later monetized it by selling features that aren’t available in the core product. You’ll also hear how it took him ten years to become “an overnight success” because of all the things Mike tried before launching Sidekiq.
Find your perfect developer or a team at Lemon.io/startups
The competition for incredible engineers and developers has never been more fierce. Lemon.io helps you cut through the noise and find great talent through its network of engineers in Europe and Latin America.
They take care of the vetting, interviewing, and testing of candidates to make sure that you are working with someone who can hit the ground running.
When it comes to hiring, the time it takes to write your job description, list the position, review resumes, schedule interviews, and make an offer can take weeks, if not months. With Lemon.io, you can cut down on a lot of that time by tapping into their wide network of developers who can get started in as early as a week.
And for subscribers of Startups For the Rest of Us, you can get 15% off your first 4 week contract with a developer by visiting lemon.io/startups
Topics we cover:
- 2:51 – Sidekiq’s unique business model
- 5:24 – Running a multimillion-dollar software company with no employees
- 6:41 – How did Mike get here?
- 8:23 – Mike’s approach to monetizing Sidekiq
- 12:58- The 10-year overnight success story
- 14:13 – Did Mike ever have any doubts about this not working?
- 16:54- Mike’s thoughts around building on top of the Ruby ecosystem
- 19:26 – Why doesn’t Mike hire any employees?
- 23:31- Mike’s approach to competitors
- 26:08 – Mike’s response to open-source purists on Hacker News
Links from the Show:
- Mike Perham (@getajobmike) I Twitter
- Code Code Ship: Mike Perham
- Hacker News Discussion about Sidekiq
- MicroConf Youtube Channel
If you have questions about starting or scaling a software business that you’d like for us to cover, please submit your question for an upcoming episode. We’d love to hear from you.
Welcome back to Startups For the Rest of Us. I’m Rob Walling. This week I talk with Mike Perham, the founder of Sidekiq, the solo founder with no employees who is doing single digit millions in revenue as a one person software company.
Mike’s story is pretty unique and that he started an open-source project and later monetized it by selling features that aren’t available in the core product.
As you listen to the interview, you’ll hear me ask Mike about how much luck factored into this. We talk about how he’s had this amazing success and then we talk about how it was 10 years to overnight success because he launched a bunch of different open-source projects and none of them succeeded. And then finally, Sidekiq did. And Sidekiq is a tool we used at Drip. I know a lot of folks in the Rails community use it as their queuing mechanism, but realistically, if Mike hadn’t had this amazingly successful opensource project, then none of the rest of this works.
So it’s an interesting and I think a pretty unique story on today’s episode. But before we dive into our conversation, I want to let you know that we have several open podcast sponsorship slots on this here very show. We’ve run a few ads on this show over the last couple years, and our sponsors have received amazing results from being in front of this audience of ambitious, bootstrapped, and mostly bootstrapped SaaS founders. If you’re interested in learning more, send an email to firstname.lastname@example.org and ask about the podcast sponsorship options. And with that, let’s dive into our conversation. Mike Perham, welcome to Startups For the Rest of Us.
Thanks for having me. Rob.
What an incredible story, sir. You started Sidekiq 11 years ago and it’s an open-source project that you have monetized through premium support. And I knew of Sidekiq because my last startup Drip, when we went to start building it, my developer who later became a co-founder said, “We’re going to use a queuing mechanism,” a queue, a thing, a job thing that does jobs, a worker thing. And he’s like, it’s called Sidekiq. And I was like, “Huh, never heard of that. Is it like Rabbit MQ?” I had these older references, and he is like, “Exactly.” And this is 20, so it was, it was probably January of 2013, December, 2012.
So it was not like he’d been around for a decade, but we were building it in Rails and he said, “This is what we’re going to do.” And so we were on your free plan or I guess just the open-source plan for quite a while. And then eventually when we started sending tens of millions of emails a month, it became obvious we want whatever paying money got us, which I think was maybe escalated support is that it, I don’t even know. We were paying a thousands dollars a month and I felt like the value we got was tremendous.
I think the business model that I have, I think is typically called Open-Core, which is to say that the core of the system is open-source and freely available. And then what I sell are packages on top of that core, that wrap around that core, which is the Pro package and the Enterprise package. Those add additional features that people can build on their own if they wanted to. But what I do is I collect a dozen of these features together and support that package so that people can either build it themselves or they can pay me for my batteries included type commercial package.
Right, and obviously if you’re building some free tool somewhere, then you might build it your own if you’re hacking it on the weekend. And we were doing about half a million or a million a year in revenue at this point, team of six or seven. And my co-founder came to me and said, “I think we need to start paying for Sidekiq.” And I think it was like you have grouping into jobs, and there was some visibility into the queue. I don’t remember exactly what it was, but I’m like, how much is it? And he said, “A thousand dollars.” And I said, “A month?” And he said, “No, a year.” I think that’s what it was. Is that, am I remembering that, that eight or 10 years ago? And I was like, really? That’s it?
Yeah, that’s still the price too. The pricing I have, like I said, I have two packages, the Pro and the Enterprise. The point of the Pro package is to bring together a couple of features and provide a pretty low price that the majority of the community can afford.
So I have to try and walk that fine line between making it too cheap so that no one really values it and making it too expensive that only 1% of the companies can afford. So I settled on a thousand dollars a year only because so many companies have the credit card policy where anything over a thousand dollars requires a VP sign off or something like that. So I was just like, “Well, let’s get it under the VP sign offline, and hopefully the vast majority of corporate customers can afford this and won’t have an issue paying for it.”
And so yeah, Sidekiq Powers, is that layer, is designed to get me as many customers as possible, and so to spread the load across lots of different customers. So I never have to worry about one giant customer churning out and my business going bankrupt because of it. Instead, I’ve got a thousand small customers all which provide this very predictable, steady income that I can always depend on.
And that’s the beauty product income rather than consulting where you have a one big client. And the reason you got on my radar, again, I knew of Sidekiq, but I didn’t know your story as someone who started this open-source project and is now in the single digit millions, I want to say that again. Multi-millions in revenue.
You recently did an interview with Code, Code Ship codecodeship.com. We’ll link it up in the show notes, and then there was a hacker news thread around that, and it was cool. You were chiming in, people were kind of guessing at your revenue. You said, I’m closer to 10 million than 1 million in annual revenue right now I have 2000 customers. And you were generally just chiming in and you’re a single founder, no employees, is that right? Do you have any contractors?
The company’s just me. I have no contractors. I have a designer that I contact maybe once a year to help me out with a graphic here and there. I have a lawyer, which I contact once a year with any red lines I need to discuss or custom licenses that customers request. But 99% of the time is just me.
And that for many developers, especially developers who want to be entrepreneurs, is the Cinderella story. It’s the dream of I just want to be me. I don’t want to manage people. I don’t want to deal with people. So how did you get here? How did this happen when you started Sidekiq in 2012, I believe, were you planning to monetize it long term or did you start it and it caught on and then you realized, “Oh, I should make money from this?”
I had been doing open-source for 10 years before I even got involved with Sidekiq or started the Sidekiq project. So I had been around the open-source world and I knew how the typical open-source project works. You start it with lots of excitement. You get your first couple users and you’re super enthused, and then the bug reports come in. You start fixing those in your nights and evenings. And if you’re successful, you get more and more and more bug reports and more and more support requests, and you find yourself devoting more and more free time to supporting this community that you’ve built, but you are not making any money from it. You are just giving free support to the world, and the end result is always the same. It’s burnout. And so I’d seen open-source project after project burnout and the developer’s rage, quit, and I knew that Sidekiq would follow that exact same path if I didn’t do something different.
So that was it. I just pledged to do something different. I thought that no matter what, you’re always going to have to support your project. And so I thought, well, if I can make money somehow off offered the support, then I could just make it into a job and I can work 40 hours a week on it. No problem. I mean, it’s a project that I create. It’s technology that I love. And so as a developer, why not turn this into my dream job? And so that’s what I set about doing is turning it into my dream job.
And how quickly after releasing it into the wild did you start charging for something?
Let’s see, I started Sidekiq in February ’12 or January ’12, and then by August or so I knew that I had something happening. I knew that Sidekiq was looking like it was going to be successful, and I had a lot of people telling me, “This is a lot better than the previous thing and it’s valuable.” And that’s when I knew I could charge for it, right? If you’ve got value, you can charge for it.
So the only question was how do I charge money for it? I originally licensed Sidekiq as, it is licensed, I should say as LGPL, and the GNU licenses are famous for being somewhat corporate unfriendly. And I thought, well, maybe I can sell a commercial license that would allow the corporations to get out of having to use the GNU license with Sidekiq that didn’t sell very well.
The reality is most of the people making these technology decisions are developers, and developers don’t care about the licensing as long as it allows them to do what they want to do. And so what I then said was, “Okay, well maybe I can charge for additional features?” And that’s when I started planning Sidekiq Pro and thinking, “Okay, what features haven’t I built yet? What can I build and package separately and how do I sell that thing?” So that’s really where it became, okay, how do I this? Because I think there was maybe one other person who was selling Ruby Code at the time, and that was the Passenger team, the people that built the Passenger app server, they introduced Passenger Enterprise a couple months before I did. And so I saw them trying it and I said, well, I’ll try it too. And so I created Sidekiq Pro, I figured out how to distribute it. I signed up for a payment service, which provided it a checkout shopping cart kind of on top of Stripe, and just started using that and opened for business, so to speak.
And for folks listening to this who think they may want to go down this path, I believe that the hardest part of your journey of becoming the success you are today is not everything that’s happened over the past 3, 4, 5 years, but it’s that very first step of you built something people wanted. That’s hard to do. You and I could collaborate and build 10 open-source projects and throw them up on GitHub or wherever else, crickets. But finding something that people want and building it and having it catch on and having that momentum. And as you said, I knew I was onto something right from January to August already I’m imagining downloads or accelerating, I’m imagining five-star ratings or reviews or whatever it is in the ecosystem. And then once you have that, it’s not easy, but it is, okay, figure out a way to monetize it. You tried to license, didn’t work, tried features. Oh, that works.
If features hadn’t worked, you’d have tried something else. I think you could have eventually monetized it with a big enough audience that while that is a challenge, that’s not the hardest part of it. It’s the initial, how do I build something that just a bunch of people are using starts to becoming a little ubiquitous in the default. And then you can piggyback on that to create a revenue stream.
I mean, what I left out in that history lesson, there was the previous five years where I had been blogging about Ruby. So I was consistently blogging every month about various Ruby topics, and my blog was getting popular. Fellow Ruby developers were reading my blog and where I was talking about various really arcane, really technical topics. And so they grew to trust me as someone who was really technical and sort of knew how this tech worked and had a vision for where I wanted it to go. And in doing that, I built up my audience, and once I started Sidekiq, I was blogging every week about the Sidekiq project and what I was going to do, and here’s the various things I’m going to try.
And so you build up this audience and that audience starts to trust you and they see the logic of what you’re trying to do, and all of a sudden they’re saying, “Well, I want to check this out. I want to try it. And I love what he’s doing here. Everything makes sense.” And “Yeah, let me throw some money his way to buy this tool because we need it too.”
I mean, over the next few years, I think you were making a full-time income within a couple of years of either launching or monetizing, I mean, they’re so close together it almost doesn’t matter.
Yeah, it was about 18 months.
18 months, okay. So I mean, that’s obviously relatively quick. And again, I think that ties into the popularity, the fast popularity. You had overnight success. So we might say it was 10 years to your overnight success. That’s how I think about it. Because a lot of the stuff that you did prior, all the open-source projects and all the blogging and all that, would you agree with that, that you kind of needed all that to make it work?
Well, if you think about it in the term sense of a band, that’s an overnight success after touring for 10 years, I would certainly say that was true of me also. I mean, I was doing open-source work. I was blogging regularly. And so it was only after those five, 10 years of industry experience and know-how that I started this project and said, “I’m going to take it up a notch and start charging for this thing.” So yeah, and to your point, it was maybe six months until I monetized it. It was another 18 months after that to where I got to a full-time salary. And then a few months after that, I started, I incorporated, and started my own business, I quit my job, and just started doing it full time. I mean, I think I probably reached my success point once I was making five X my previous annual salary because that just becomes life changing money at that point.
Right, especially when it’s going to continue, right, when it’s like, “Oh, this is actually building and I can count on this for the foreseeable future.”
So over this journey then, this decade long journey, have you had a point where you were like, “This isn’t going to work?” The example I always use is when I ran an email service provider and Russian hackers sent a bunch of phishing emails one night, they kind of broke in and sent them overnight, blacklisted all our IPs, and I showed up Monday morning, I was like, “Well, that’s it. We had a good run. We’re done.” And turns out we weren’t done.
We figured it out. But there were a few moments like that along the way that were just, “Oh my gosh, I don’t know if I can keep doing this.” Did you ever have a moment like that?
I consider myself pretty lucky. My business has just sort of skyrocketed up. The Sidekiq business has for sure. I’ve spun off new products as I’ve tried to diversify my business. I created a product called Inspector, which just didn’t sell well and didn’t have the demand, and so I shut it down.
I’ve created another background job system, which is not based on Ruby because the one thing your audience may not know is that Sidekiq is specific to Ruby. You can only use it with Ruby. Whereas I created a new background job system called Factory, and that can be used by any language. And so I’m also selling that as a product in my company. It’s not as successful as Sidekiq. I mean, Sidekiq was a rocket ship up. Factory is growing nicely, but it’s not the sort of exponential growth that Sidekiq has really seen.
So that’s kind of where my less successful aspects of my business would be is in the very different products that you launch that don’t quite become that big hit. And it’s kind of like a band with their first album is a huge success, and then their follow-up is a huge dud, but such as life.
And those are the risks you take to try to diversify your just risking time at that point, right? Because your main business is already so lucrative.
One question I did have about that, piggybacking on that is all technology has a life cycle. We look at programming languages, classic ASP, and even Pearl for use on the web, CGI scripts, whatever. I’m going way back here, I’m going back 23 years. And they come up and then they get replaced with a .net or Rails. Ruby had been around for a long time, but Rails became a dominant framework. And then even Django and Node, I would say are newer in the life cycle.
As an entrepreneur who makes, is generating incredible wealth from essentially the Ruby ecosystem. Do you have concerns that Rails, Ruby and Rails have been around now for, what is it 15 years, however long they’ve been popular, but that there could be a decline in the ecosystem that would cause your business to shrink? Have you seen any of that? Just curious about your thoughts?
Yeah, I mean that’s a concern, but at the same time, I always fight back against the need to have a venture capital need for growth at all costs, right? I’m happy with the lifecycle, whatever lifecycle Ruby has, I’m making more than enough money. I don’t need to make any more money. You know what I mean? I very much believe in sort of the Buddhist mindset where desire is a root of pain and wanting more and I don’t need more. I’m happy to support my customers.
I also look at tech like FORTRAN or Cobalt that have been in existence for going on 60, 70 years now, and they’re still out there. There’s still people making money off of it. You just don’t hear about it. And to me, what I’ve always pledged is that I’m here to support Sidekiq for the long term. And so if Sidekiq’s around 10, 20 years from now, hopefully I’ll still be around supporting it too. I don’t have hundreds of employees and venture capital backing that demand, endless growth in profits and margins. I’m doing great and I’m lucky enough to where if I need to, I can hire other people to help me support it. But at this point, that has proven not to be necessary.
That was actually leading to my next question is I feel like if I were in your shoes, there would be some things about my job, your entrepreneurial job that you’ve created that I wouldn’t like, probably support would be my thing that I would want to hire someone to do. You obviously have budget for that. You haven’t hired anyone. I know that your support must be incredibly technical, but look, you could hire someone for a quarter million dollars, some amazing senior developer or some amazing, I mean, if we go to Eastern Europe, you could hire an amazing senior developer for 150, you know, have budget for that. Why haven’t you done it so far?
Well, if I take myself out of the trenches, the technical trenches, so to speak, then I lose that sense of pain that customers might be feeling that would then go into the next version of the product. I need to have that boots on the ground knowledge so that I know, “Okay, what are the customers asking for? What are they suffering with right now? What features are painful and what features do they love?”
And so I don’t want to put a layer of abstraction between myself and that sort of feedback. You’re right, support’s not necessarily the funnest thing. I constantly get emails from lesser technical customers, customers who aren’t quite as savvy, technically asking, “Oh, the memory on our psychic process is going crazy. How do we solve this?” So I do have these constant support pains that I do my best to document to people and to the community. How do we overcome these issues?
So I am incentivized to make my Wiki documentation as good as possible and to make error messages as clear as possible and that sort of thing, because that literally makes my day-to-day life better because I get less and less of these emails asking the same questions over and over. So I do my best to document things thoroughly to make the code as smooth as possible and to sand down any rough edges so that I have as little support as possible. But at the end of the day, that support does inform a heavy part of the changes that go into Sidekiq.
Yeah, I could see that being close to your customers is an incredible advantage. One thing I’ll say, so I used to be in your boat too, and I was like, I did all the support for my products. What I eventually did was I hired it out and I realized I could read through all the tickets at the end of the day, and I didn’t have to respond to them myself, but I still felt the pain of the customers. And then we got to the point we were at what, 10 employees and then we got acquired and we were a hundred employees eventually. And I know that’s not the path you’re going, but then I had someone really smart who would read through the tickets, who would then create a brief for me that here’s all the major issues coming up. So it was a summary.
I wasn’t right on the front lines, but I felt like it was important to me that I too, as a product maker, didn’t lose that familiarity and that the pain, as you said, the frontline feel. So there are ways around it if you decide to do it, but it’s your business. You can do whatever you want. If you want to keep doing support, you can.
Yeah, I mean, Rob, at the end of the day, one of the decisions I made when starting my business was that I didn’t want to hire people, period. I don’t want to be a manager. I don’t want to deal with the administrative overhead. And so I said, “Well, what is a developer business like Sidekiq look like if you can’t hire anybody?” And so all of my business policies, all of my support policies all are based on the fact that how do we treat Mike’s time as valuable and not allow the customer to take too much of my time.
And so some of my policies are rather harsh. You can’t pay for Sidekiq Pro with anything but a credit card. And that’s because I don’t want to deal with the billing and the invoicing. Everything is all automated for Sidekiq Pro, and that’s how I keep the price low. But yeah, at the end of the day, it’s what policies and what’s the type of business that you want to build, and what I decided isn’t necessarily right for you or anybody else.
Yeah, it’s a great way to think about it as you own your own destiny as someone who has bootstrapped it right, and own all of the IP.
Question about competition. See, I’m imagining in this decade that you, 11 years you’ve been building this, has no one come along and tried to build a better Sidekiq, a competitor that would take market share for me. That’s what normally happens. And if they have, why have you won? Why continued to succeed in the fashion that you are?
There have been a few what you might style as competitors to Sidekiq competing projects. They all use different technology. Some of them use technology like Kafka, which is a lot more complex than Redis. So Sidekiq is based on Redis. Redis is quite simple to start and to manage, at least I think it is. Maybe others disagree, but Kafka is a order of magnitude more complex to manage. Another one used MongoDB as it’s backing store, and MongoDB of course, is this kind of niche data store that never really is, it’s kind of out of fashion now.
The current, what you might call a competitor to Sidekiq is another project called GoodJob, and it uses Postgres as its store. So other competing projects have come out. The thing to note is that they usually don’t have a commercial side. They usually are just open-source. And that goes, leads you right back to what I said earlier, which is every successful open-source project either grows to a team that can survive it or that the founder burns out over time. So yeah, I think I have competition, so to speak, but I don’t have any commercial competition, so to speak. Well, I think my commercial competition would be like SQS.
Amazon, which is it?
Right? It’s an Amazon web service that does queuing. It doesn’t have anywhere near the breadth of features that Sidekiq offers, especially the commercial packages. But it does have the Amazon name, and if you’re going all in on on AWS, it makes sense that you’d use that instead. It’s like pay per use though. So as you scale up, the price just keeps going up. Whereas that’s not true in Sidekiq. So you can pay a thousand dollars for Sidekiq Pro and then you can process a trillion jobs through it for that same thousand dollars. So there’s various different competitors and different offerings out there, but the Ruby community and the Rails community seem to trust Sidekiq as the best choice right now, at least.
As we wrap up, I want to ask you a question. I don’t know that I’ve ever asked anyone on this show before, but it’s about the fact that you’re open-source.
I’m curious, there are open-source purists who think no one should ever pay for software. It should all be free, more the, I don’t know there, it’s an extreme-ish viewpoint, but I’m wondering if you’ve had any run-ins with folks where your success story appears on Hacker News or you do an article and interview and basically haters come in and are shocked and appalled that you are monetizing an open-source project in this fashion?
That’s a constant worry of every open-source developer I’ve ever met. And the reality is that I hit very few, I mean one or two occasionally, but the vast majority of people that chime in on these threads are usually saying, “We’ve been a customer of Mike’s for five years now, and the product’s been amazing. He’s answered issues and questions within 20 minutes.” Someone had filed a security issue a couple of weeks ago with Sidekiq and I had it fixed within two hours of the report coming in.
So individual people who are maybe hobbyists and don’t have any budget, they may be a little bit upset that they do not have access to the commercial features and that I don’t just give it away, but a lot of businesses understand that if you’re in business, you have insurance, you have insurance, you pay your vendors because you want that support, you want that dependability of always being there. And this is no different. You’re buying a tool, you’re buying the commercial insurance to ensure that that tool is going to be around forever.
And at a thousand dollars. It is, and was, a no-brainer for business that’s doing well.
Enterprise is a little more expensive.
I’m sure it is. Yeah, no doubt. No doubt. Well, Mike, thanks so much for coming on the show. If folks want to keep up with you, your Twitter handle is getajobMike, which I think is hilarious, and of course Sidekiq, S-I-D-E-K-I-Q.org if they want to check it out.
Yeah, I don’t use Twitter anymore. I’m on Mastodon with the majority of the Ruby community now.
But it is, it’s GetajobMike@Ruby.Social.
My Mastodon handle is on my Twitter pro.
People can find you there. Amazing. Well, thanks again for coming on the show.
Of course, thanks Rob.
Thanks again for joining me this week, and thanks to Mike for joining me on the show and taking a half hour out of his busy day. Another reminder that we have sponsor slots open for the podcast email@example.com. If you want to learn more, I’ll be back in your ears next Tuesday. This is Rob Walling signing off from episode 661.