Give a summary of Sidekiq. What does it do? When was it launched? How much monthly revenue is it currently generating?
My name is Mike Perham and I built Sidekiq.
Sidekiq is an open source tool for running background jobs with the Ruby programming language. My business provides more capable, commercial versions of Sidekiq with additional features.
I launched the initial commercial version six years ago and I’m seeing about $120,000 average monthly revenue right now.
How did you get the idea for Sidekiq? Did you do anything to validate the idea before building the product?
There were similar tools but they were more complex and less efficient. I wanted a tool that provided all basic functionality in one package.
I built Sidekiq’s core as open source from day one. The “validation” was seeing people start to use and love Sidekiq. I got glowing emails from well-known Rubyists telling me how much money Sidekiq was saving them over their previous solution (thousands per month!). Once I knew how well the open source was received, I realized that a commercial version could see good uptake if executed well.
Talk about the MVP for Sidekiq.
Sidekiq included all the basic functionality that the other solutions on the market already provided: basic jobs, scheduled jobs, a web UI, etc. These features were “table stakes” so they are open source and free for all.
Sidekiq Pro is a simple, inexpensive upgrade which provides a few features and sustains the Sidekiq project. Sidekiq Enterprise is a more expensive upgrade for businesses that want it all -- every feature, all designed to work well together.
Most of my features can also be found as OSS plugins but they are all built and maintained by different people with different designs, skill levels, and support policies. In this sense, you can get all that I offer for free -- if you want to spend months integrating, debugging and supporting it yourself.
Sidekiq Pro’s first major feature, Batches, was one that I didn’t see any other system provide and I built it because my employer at the time needed it. If one company needs it, odds are good that many other companies need it too. Batches, it turns out, were extremely complex and it took me 3-4 years to build what turned out to be a fast, flexible, infinitely nestable, dynamic job workflow engine.
Talk about the tech stack for the MVP.
I kept my business very simple from day one, after all this was a side gig and I still had a full-time job! I knew that I wanted to avoid hiring anyone for as long as possible and stay lean to minimize risk and maximize my potential for profitability. I outsourced my billing to Plasso.com and Stripe. My 24/7 server runs only Apache, believe it or not, as I’ve eschewed all modern, dynamic technologies to keep everything as simple and reliable as humanly possible. The most reliable software is the stack or framework you don’t run.
I run 2-3 servers at all times for reliability. All servers can handle all roles (billing, gem serving, webhooks, etc) and I use different hostnames in DNS to spread the load. The one nifty piece of software that I rely on is Resilio Sync aka Bittorrent Sync. I use it to keep a directory of static files synchronized across servers. This way, when I release a new gem version or add a customer, any file changes are synchronized immediately to all servers. It’s been very reliable, running 24/7 without issue for years.
What were the total expenses for the MVP?
I think I was paying $10/mo for the gem server and $49/mo plus merchant fees for billing. The product cost me nothing but my spare time to build, albeit at my family’s expense since it took two years of nights and weekends to build, iterate and polish. I started selling in Fall 2012 and started Contributed Systems as my full-time job in Summer 2014.
Talk about the founding team. How many founders? Who are they? Who was responsible for what?
Just me. I had a dozen people who significantly contributed code and features to Sidekiq in the first few years, they are immortalized on https://sidekiq.org/about.html, but I am the only one who supports the project daily.
Talk about the MVP launch. What exactly did you do? How did it go?
I had 15 sales in the first three months, or $7500 in revenue. This is more financial support than 95% of all open source projects will ever see so I was pretty proud at that point.
Since launch, how are you getting users for Sidekiq?
Blogging and word of mouth from developers. I have well over 1000 customers now and every developer at those companies knows Sidekiq and how useful its functionality is. I hope that they love Sidekiq and buy it at every new job.
How has the product evolved since launch? What features have you added? What features do you plan to add?
I launched Sidekiq Pro with three major features, I launched Sidekiq Enterprise three years later with an additional half-dozen features, based on user demand and feedback. I literally had customers telling me that Sidekiq Pro was too cheap; I added an Enterprise level with more features and a higher price.
How has the team changed since launch?
It started at 1 and remains at 1.
How has the tech stack changed since launch?
I’ve recently brought in-house all my billing so that I don’t rely on anyone besides Stripe. They continue to provide an indispensible API. Billing uses CGI plus some Ruby scripts to handle the Stripe API. Using CGI means I don’t have to run and maintain an app server and app stack.
How have the expenses changed since launch?
My biggest expenses are my own salary and Stripe merchant fees. My day-to-day expenses are <$1000/mo. I usually attend a few technical conferences per year, which I consider advertising and marketing. Outside of salary and merchant fees, my total expenses were roughly $25,000 last year.
What’s your business model? How is revenue growing over time?
Sidekiq is open source, the commercial versions are closed source. Customers purchase a subscription to gain access to Sidekiq Pro or Sidekiq Enterprise.
Revenue growth is still healthy but slowing as the Ruby ecosystem matures. I’m working on new product, Faktory, which is not tied to the Ruby ecosystem and expect to launch that by 2019.
Give a description of what you do, on a day-to-day basis, to run Sidekiq.
Support, support, support. I live in my Inbox and fast response to emails is something I strive for. I generally have 5-10 emails from customers asking for help every single day when I wake up and more during business hours.
What are the things that most helped you build Sidekiq into a successful business?
I had been blogging about Ruby for years before which gave me an audience to promote Sidekiq and Sidekiq Pro. I blogged about my concerns about open source sustainability. I blogged openly about my “financial experiments” with Sidekiq to solve this. These experiments started me down this path.
What were your biggest challenges to date? How did you overcome them?
Selling software to open source developers is like selling ice to the Inuit. It’s very unusual and took some time before the community understood why this was reasonable and feasible. My blogging in the early days of Sidekiq was an attempt to explain and educate people about the long-term benefits of project stability and support.
Knowing what you know now, what would you change about Sidekiq’s journey to date?
I initially sold Sidekiq Pro for a one-time fee. As I mentioned before, some of the features took many years to stabilize. Selling enterprise software means you have a more stable but smaller user base. An easy solution is to sell subscriptions to ensure steady, long-term revenue. Once I switched to a subscription model, I was in a much better position to start and run a sustainable business.
How has your life changed because of Sidekiq? Has it improved? Or gotten worse? Overall, are you happier?
It’s a mixed bag; I’m more successful but I also work alone so I don’t have the camaraderie of the office water cooler. I have the freedom to go anywhere and take a day off any time but my family still require a daily routine. When you are middle-aged with partner and kid(s), no amount of money can buy the freedom that every 20-something with no dependents enjoys.
One thing that gives me pride: I feel like my work is far more leveraged now. Every line of code or bug I fix in Sidekiq will filter down to thousands of users and customers. Previously, working at startups, every chapter 11 filing meant that my work there was thrown away. There is much happiness in helping the entire Ruby ecosystem improve and being well paid for that work at the same time.
How can one learn more about Sidekiq?
Share this interview on: