COSS Community 🌱

Cover image for OCS 2020 Breakout: Mike Perham
Joseph (JJ) Jacks for COSS Community

Posted on • Updated on

OCS 2020 Breakout: Mike Perham

Mike Perham is an independent open source software developer based in Portland, OR where he lives with a beautiful wife and energetic little boy

Relevant Links

Mike Perham, creator of Sidekiq, shares his indie-hacker story of growing a COSS business around Sidekiq to $3M+ revenue scale, with ONE employee: himself!

Tell me about the origin story of Sidekiq, and how did you get into software development and open source, and what motivated the creation of Sidekiq? — 0:32

Mike describes creating his first open-source project in 1995, “before SouceForge, when CDS ruled the land.”

He made the project free for noncommercial use, and enabled companies to purchase a lifetime commercial license for $100. Sold 1 license, and as a college student, was incredibly proud of it. So, has a long history with COSS.

“I love open source as a way for people to explore how something is built and as a way to solve their own problems. But I also recognize, open-source doesn’t go away. To provide adequate support and bug fixes over time, you need to have something which will sustain you over time.”

Mike also describes getting into Ruby, and building and maintaining projects within the Ruby community.

Working with companies with Ruby, saw consistent problems with the background job architecture. So built Sidekiq as a better background job system.

He knew it would be successful, and if so, he’d need a way to sustain himself. So the plan from Day 1 was to have a way of the project supporting itself.

Decided quickly to create a commercial extension to Sidekiq, which became Sidekiq Pro. Within 18 months of that project, it was making as much as his full-time salary. So Mike realized he could quit his job and switch to Sidekiq and still make money.

So in summer of 2014, Mike incorporated and started down the path on his own, to see where it would go.

(JJ shares own reflections from the summer of 2014.) I want to dig into a few things here. Sidekiq is an incredibly successful open-source project. You’re the solo creator, but over time, you’ve seen hundreds of contributions from the community. (JJ walks through the usage, contributions, and metrics.) What does sustainability really mean for you, in terms of open-source sustainability? — 3:37

Mike describes the initial scenario that went through his head. “How can I make sure I’m going to be answering support emails 10 years from now for this project?”

Describes how Sidekiq represents the intersection of many of Mike’s interests with computing, and his interest in building it long-term. Knew as long as he had a salary, he wouldn’t burn out, and could continue maintaining it for years to come.

At the bottom of the README in your Sidekiq repository, in the problems section, you say “Please do not directly email any Sidekiq committers with questions or problems. A community is best served when discussions are held in public.” I found that so concise and clear. What made you put that in there, and how does it reflect your belief system? — 7:23

“Anybody who learns something, very quickly learns that people will ask the same questions over and over and over. If they email you privately, you will write the same answers over and over and over.”

“I’m trying to get people to search for the answer to their problem. For the benefit of the entire project, I’m trying to get people to self-serve. Support, and answering the same questions over and over like a parrot, is painful.”

“I often create facts and point people to the facts page, and provide context to answer the same questions over and over and over.”

I want to shift to Sidekiq the company. Describe over the last three, four, five years, how this evolved? How this went from the starting commercialization, to a much more structured tiered approach? — 10:06

“The first tough problem I had to solve is, how do you charge for Ruby code? Nobody does this in the Ruby world -- Ruby is 99.9% open-source.”

Mike describes how Sidekiq and Passenger were the first two companies to commercialize Ruby.

“Once I realized the Ruby gem distribution actually supported doing a commercial distribution, I realized I can do this.”

Mike talks about the Sidekiq Pro pricing model, and moving from a one-time fee to a subscription model. Customers are “paying insurance on the Sidekiq stack,” which gives Mike the ability to build more features and provide support, knowing customers are bought in.

To be clear, Sideqik Pro is basically giving people the right to fork and modify Sidekiq for commercial purposes (along with some additional features. — 13:00

“Well, no, not exactly. The main thing that Sidekiq Pro is give you a couple features. That’s the ethos behind it. It gives you commercial features, it gives you a commercial license (so that you’re not using the LGPL), and it gives you guaranteed support. So you’ll get a response from me within 48 hours to any emails you send. … The commercial license does not give the customer the right to take Sidekiq Pro and distribute it themselves. But they can use the features themselves internally without needing to worry about any GNU licensing.”

To dig into the dedicated email support element, you’re giving people the right to email with you with a guaranteed response time window, but you’re also providing this capability which is the opposite of your strong guidance on the open-source project (discouraging private emails). For people who pay for Sidekiq Pro, they do have the ability to email you privately. I’m curious how you think through this. How do you think about the value that someone receives from a specific, nuanced technical Sidekiq conversation with you in private, that could potentially benefit the entire Sidekiq community? Do you have an honor system about posting those conversations back in public? — 14:10

Mike clarifies that he still tries to deflect customers to the open, and explains how he instructs that. Typically, customers don’t have a problem with that approach. They just want their problem dealt with the best way possible, and the more eyes you get on an issue, to get various angles covered, leads to the best outcome for everybody involved.

If email looks like it’s a long conversation, Mike tries to deflect to the open. If it’s a short/easy answer, Mike tries to reply directly and answer in the thread.

How do people decide between Pro and Enterprise? Is it companies, is it individuals? What are the personas like? — 18:08

Pro and Enterprise have the same non-software features (guaranteed support, commercial license). Enterprise adds more code features (more APIs to work with).

Those using Sidekiq heavily will upgrade straight to Enterprise, because they want the whole kit. They’re on Rails stack long-term, often all-in on the Sidekiq tech, and they want the insurance policy of having Mike on email and all the features that Mike ships.

“Almost every feature I have, there’s an open-source version of it. What they don’t have, is have them all combined into one distribution. I take all these features and make sure they all work together well. There’s nobody stopping someone from taking the open-source Sidekiq and adding on 5 different extensions to add various features. The problem is the development team then needs to maintain that distribution.”

I want to segway into your wiki. You’ve created a section of the repo for your Sidekiq project, and you can go into the Wiki to see best practices and technical aspects, as well as commercial collaborations. You’ve spelled out things why something is commercial and why something is open-source. I want to compliment you on your thorough FAQ here. I’ll ask a question or two that isn’t listed here which could be relevant. How do you actually manage the codebases? You have proprietary features, and then you have open-source license? How do you organize this code? — 20:06

Mike has different repos for Sidekiq Pro and Sidekiq Enterprise. Each repo builds a different gem. Sidekiq Pro is a gem which depends on Sidekiq. Sidekiq Enterprise is a gem which depends on Sidekiq Pro and Sidekiq.

Each repo builds a gem, which pushes to Mike’s private gem server, and all of Mike’s customers access his private gem server through credentials which are linked to their subscription.

Are you comfortable talking about number of customers and rough ranges of revenue? — 22:43

“Sure. I’ve got about 1500 customers, about 2/3rds Pro and 1/3rd Enterprise. I’m approaching $3 million in revenue this year. And I’m approaching $10 million all-time for the project, over the last 8 years.”

I don’t want to make any assumptions here, but it seems you haven’t spent a lot of money on marketing, and it’s all inbound. Is that correct? How has that evolved? — 23:23

“I’m not a marketer, I’m an engineer, so I put all my time into the product itself. I do sponsor RubyConf, RailsConf, but I don’t do any sales or marketing. I’ve done some newsletter stuff, but I’m not good at it and I don’t enjoy it, so I tend not to do it much. So I just assume the products are going to sell themselves. And they seem to be doing that pretty decently.”

I just remembered another company commercializing a Ruby project that you may know about called Fluentd. It was created by a company founded in Japan called Treasure Data, and Treasure Data was recently acquired by ARM for north of $600 million. They basically commercialized the Fluentd project. It was venture funded, they grew to 300-500 people over the last few years. Have you ever thought about forming a bigger company to scale things more? If so, what were the considerations? — 24:30

“I’ve never thought of myself as a manager or someone who wants to build a giant business. I’ve instead wanted to keep the project that I maintain small and sustainable for the long-term. I don’t want to get in a situation where I hire 100 people, I build a product, and I’m so removed from the product … That’s not something that gets me out of bed every day. So I’ve tried to keep things simple and just focus on the product. In fact, I’m a bit of an odd bird, because one of my goals has been to never hire anybody. I’ve designed my business to run myself with nobody else’s help. I try to write really good documentation so I have to do as little support as possible. Because you only have so many hours in the day. … So I’ve tried to run Sidekiq as a sort of mom-and-pop commercial open-source project. If it’s successful and it grows, great. But as long as I can get by, I’m happy.”

Seeing Sidekiq in so many applications, and the success and reach and adoption, you’ve created a piece of technology that has created maybe hundreds of millions (maybe even billions) in value for the world. You’ve been very humble in recognizing this sustainability mechanism, which is capitalism, which can service maintaining the development. So for my final question, what advice would give people who are wondering if they can make money from their open-source project? — 27:40

No easy answer. Every project is different, and the perceived value of every project will be different. Mike describes how the Ruby infrastructure makes it possible for him to sell a commercial variant of it, because it is a core piece of infrastructure.

“Every project has its own traits, which make it more or less possible to commercialize. It’s going to be different for each project. The context is so important, that there isn’t one easy answer you can give.”

Share your questions and comments below!

Top comments (0)