FounderQuest
Kickin It With Mike Perham, Author Of Faktory & Sidekiq
Show Notes:
Links:
Mike Perham
Full United Flight
Sidekiq
Faktory
Heya
Patrick McKenzie
Techstars
TinySeed
Roy/SAC
Honeybadger
Full Transcript:
Starr:
What's on your wall behind you? You've got like a autographed jersey like a hockey jersey.
Mike:
Yeah, I'm I'm a soccer fan.
Starr:
Oh, a soccer jersey. I'm sorry.
Mike:
It's the Portland Timbers. Yes.
Josh:
The timbers, yeah.
Mike:
And it's not looking good for us playing in 2020.
Josh:
Yeah.
Starr:
It's looking good for anybody?
Mike:
Some people more than others. Yeah.
Josh:
I never... I thought it'd be cool to make it to one of those games I've never been. I've never been to any sporting event in Portland, even though like...
Mike:
Well, I'm a season ticket holder. So Josh, if you ever want to come on down and we can go to a game together, I'm in.
Josh:
That would be awesome.
Starr:
Oh my gosh, this is great. I'm glad we're recording this. This is like networking. This is like stuff happening. This is like deals happening.
Josh:
This is actually like, when people are like seeing each other going to events.
Mike:
When you invite guests onto your show magic happens.
Starr:
I know, right?
Josh:
Yeah. Yeah, Ben and I have been talking about snowboarding too someday. And Mike and I have been talking about snowboarding as well. So that's another networking opportunity. Maybe for next winter.
Mike:
Yeah, in fact, I had a pass to meadows and they said that they're closed down so you can't use the pass and so people were freaking out.
Josh:
Yeah, they didn't refund any anything, did they?
Mike:
They say that you can use your punches in the first three weeks of next season.
Josh:
First three weeks.
Mike:
Yeah.
Ben:
Sounds kind of bogus. I mean, that's like the-
Mike:
So if it doesn't snow, well, your out of luck.
Josh:
Yeah.
Ben:
It sounds a lot like the airlines policy to get a credit rather than a refund.
Josh:
By the way the season is starting three weeks early.
Ben:
Starting the season in July.
Mike:
It starts in August.
Ben:
That reminds me of a tweet that I saw this week. I think it was and someone was they tweeted picture of themselves on an airplane and the airplane was full.
Josh:
Oh, I saw that one.
Ben:
Three by three.
Josh:
Where they're in the middle seat or something or?
Ben:
I don't remember but. But they were on a United flight. And I'm thinking what do you expect? Like it's United of course you're going to have every seat full on a United flight. They're not going to care about Coronavirus.
Starr:
Okay, so I feel like I should do like a record scratch now. And we should stop and actually say to our loyal listeners, I'm sure you're thinking, well, what's going on? There seems to be like one more person. And that's because there is. We have a special guest today, Mike Perham. And if you don't know Mike, he is very well known in the open source community for such projects as Sidekiq and Faktory. Are there any other projects?
Mike:
That's about it.
Starr:
That's about it?
Mike:
I've only got so many hours in the day Starr.
Starr:
What's the matter? I thought you hustled, I thought you knew how to hustle.
Josh:
That you're a hustler.
Mike:
I'm getting old. In my old age. I'm getting old so I'm slowing down.
Starr:
I mean, that's fair.
Mike:
Yeah.
Josh:
What is Sidekiq anyway, Mike?
Mike:
Sidekiq is the number one universal way of doing background jobs on Ruby. Except no competition.
Starr:
There you go.
Josh:
Nice.
Mike:
And Faktory is taking my background job knowledge and patterns and bringing it to every programming language. So you can use Faktory with JavaScript, with Python, PHP, Elixir, those sorts of languages.
Ben:
Yeah, naturally, we're big fans of Sidekiq here at Honeybadger, we use it quite a lot.
Josh:
Yes, Sidekiq since the beginning.
Mike:
Y'all were, yeah, one of my first pro customers along with TravisCI was also a very early pro customer. So thank you very much.
Josh:
Yeah.
Starr:
Yeah, so Mike is a... Mike knows a lot about making a living from open source. And so we're having him on to talk about that about little bootstrap life because he's a fellow bootstrapper. And, I don't know, we have palled around with Mike throughout the history of our company. And yes, we're just going to have an open discussion but vaguely generally centered around open source, bootstrappy stuff.
Josh:
And we're also just all losing our minds being stuck at home and it's nice to see another human face or three of them.
Mike:
Yeah, the listeners probably don't know, but I generally go up to Honeybadger HQ, well, in Vancouver, like once a quarter or so, I'll go out there and have lunch with you guys. So since we're about 20 miles apart, I'll generally go up there and say hi and hang out with the gang and have lunch together. But we had to cancel our last meeting because it happened right as the virus was picking up.
Josh:
Yeah, this was pre virus life.
Mike:
Right. So it's good to catch up remotely now.
Starr:
Mike I'm sure the question that all of our listeners are wanting to have answered is how do you manage to create an open source project that basically is a required piece of infrastructure for every Rails project, and then monetize that.
Mike:
Well, you start off by scratching your own itch, so to speak. And then it turns out, everybody in the Ruby world has that exact same itch.
Starr:
Okay. That's sounds easy I should do that.
Mike:
Well, I'm a big believer in eating your own dog food is the common expression. But you solve your own problem first. And if that problem and your solution deliver a lot of value, and you can productize it, then boom, all of a sudden, you've got something which could potentially have some income around it. And of course Heya is your guys's latest thing. But the opportunities there for people to solve their own problem, and if they think outside the box and want to make it more of a sustainable long term thing, they can build a business around it, and that's exactly what I did with Sidekiq when I started it.
Mike:
I said to myself, this is going to be popular if I do it well. And it's going to require a lot of my time to support people. And so I almost immediately started doing financial experiments around how can I make money off of this thing so that I can, money, I still believe money is the best way to incentivize people to do something. So if this is my full time job, then I'm going to do it and I'm going to support people.
Ben:
Can we just rewind just a little bit? Because I want to talk about that scratching your itch thing. I want you to talk about like because yours wasn't the first background job system that came out for the Ruby world, right? There was at the time there was Delayed Job and there was Resque, those I think were the popular ones at a time.
Ben:
So can you tell us about what prompted you to say, "You know what, I gotta build Sidekiq."
Mike:
Yeah. So I think the major thing that Sidekiq brought to bear in the Ruby world was multi threading. There was no piece of Ruby infrastructure before Sidekiq that was multi threaded. If you think back, you had Mongrel, you had Unicorn, you had Delay Job, you had Resque. All these things are single threaded processes. And so when I started Sidekiq, I wanted to get the memory benefits of running multi threaded.
Mike:
So instead of running 10 gigabyte processes, you could just run one, two gigabyte process and save all that RAM. And so the caveat here is, of course, your code needs to be thread safe. And when Sidekiq started, there were a fair number of gems and application code that was not thread safe. And so Sidekiq started from a place of, if you have a greenfield app, and you're just starting out, you can make your code thread safe, you can use Sidekiq, and it'll work a lot faster than the existing solutions.
Mike:
And so for the first six months to a year of Sidekiqs history, the Ruby community had to step up and fix those thread safety bugs in gems that were very popular, there was a number of thread safety bugs that I recall.
Josh:
I think like Rails Gem even, right?
Mike:
Oh, yeah.
Josh:
I remember going through that even when we first started using Sidekiq, and some of the other like multi threaded Ruby servers and stuff, yeah.
Mike:
Yeah, I remember very well, a thread safety issue in Rails 3.2 which caused us to have to upgrade the point release from 3.2.2 to 3.2.5 or something like that, because Active Record had a thread safety issue.
Mike:
But yeah, since Rails 4 the thread safety of the entire ecosystem has been really good. And it's because of Sidekiq and Passenger and Puma bringing threads to everywhere. Almost every Gem these days is safe to use.
Josh:
Yeah.
Starr:
Correct me if I'm wrong, but my understanding like the real benefit that people got from switching to Sidekiq was that like in the old way of doing things like you mentioned, everything was single threaded, and that meant that you ended up, you would use up the RAM and your server a lot quicker than you would use up the CPU. So the RAM became this limiting factor. And so what you let people do is actually use the CPUs that they're already paying for.
Starr:
More and basically use a whole computer more efficiently and get more work done with your computers. Is that right?
Mike:
Yeah, I mean, it's a little more complex than that. But if you remember, a Ruby process can only use one core. So what it turns out is if you're single threaded, you may only be using 10% of that core. And so if you fire up four Ruby processes, you may be using all four cores, but you're only using 10% of each core. So by using threads, and multiple processes, you can both use all of one core, and then use all four, use 100% of all four of those cores.
Starr:
Okay.
Mike:
So you need to mix and match threads and processes too. Yeah.
Starr:
That makes sense. So, yeah, so the threads are useful for things where it's like, you might do a call to the database that has to wait or something. So then your other threads can be doing work while that one's waiting.
Mike:
Exactly. Yep, IO concurrency.
Ben:
The thing I like about how you got started is sometimes people say, they'll poopoo on the idea that you should rebuild something like, "Oh, you know, you don't have to reinvent that wheel, it's already been done. Just use what's out there."
Ben:
And I think that the thing that I like about what you've done is you saw a problem, and you could have said, "Well, it's fine. Like, I'll just deal." But instead, you're like, "No this is something that should be fixed. No, this is something that's wrong in the world, and I'm the one that can fix it." So I just like the taking the initiative and striking out and doing it.
Mike:
Yeah, I saw a dramatic inefficiency. And wherever you see dramatic inefficiency, there is possibility for you to charge money. Because if I can sell someone on $1,000 piece of software that will save them $10,000 a year, that's a no brainer. I mean, that thing sells itself. And that's exactly what Sidekiq brought to the table. Is by moving from Delay Job, or Resque to Sidekiq you could cut your cost by 10x.
Ben:
That's a compelling argument.
Josh:
Here's a question. In the beginning how much work did you put into Sidekiq before you realized this is financially viable, this is something that is going to be big, like widespread?
Mike:
I mean, almost immediately when I started Sidekiq, I had three dreams or goals for the project that I never articulated publicly. But my first goal was to make a million dollars off of the life of the project. My second goal was to get one of the big three Ruby companies as a customer. So you had GitHub, you had Basecamp and who was the third one? Maybe Shopify or New Relic? One of those two. But I think I have three of those four now as customers.
Josh:
I think it was, I think the third was Honeybadger if I recall.
Mike:
Let's put you in the Big Five. You're the fifth.
Josh:
All right, I'll take that. So you have three, you have two, you said two of those three as customers or?
Mike:
Three of those four.
Josh:
Three of those, nice, yeah.
Starr:
That makes me wonder does Sidekiq predate Honeybadger. I seem to remember like, didn't we use it from the beginning or did we use something else?
Mike:
I started Sidekiq in February 12.
Ben:
Ours started May of 12. So yeah, we started with Sidekiq.
Josh:
Yeah.
Starr:
Wasn't there some cue system that store the jobs in Postgres or something?
Josh:
Yeah.
Mike:
There's a number of job systems that use sorts of backing stores, but there's cue and cue classic.
Starr:
Yeah, like, didn't we use that in Honeybadger at some point?
Ben:
We did, yeah. At the very beginning, we used the I can't remember if it's cue, but yeah, it was definitely one of the Postgres based ones until we got to the point that couldn't keep up with our traffic.
Starr:
Okay.
Ben:
Yeah, I had done enough work with Delayed Job and Resque before that point that I knew I didn't want to deal with any one of those. So it was an easy choice.
Mike:
Yeah, and it took me about, I'd say 10 months, nine months before I launched the pro version.
Josh:
Okay.
Mike:
But I knew almost within a month or two of starting the project that I wanted to have some sort of commercial variance. That was my second financial experiment was I was selling licenses. Those weren't selling very well. So I said I'm going to maybe the open core model will do the trick.
Josh:
Sure, okay. Oh, that's interesting. So you did try selling licenses in the beginning before open sourcing? Is that correct?
Mike:
Yeah, I decided to... Because Sidekiq is LGPL, and I thought, "Oh, maybe there's some companies that want to avoid the new licenses. And so I sold a commercial license. But that kind of legalese doesn't sell very well. A developer doesn't care, and the developer is the one who's actually making the choice to upgrade because Sidekiq ultimately is developer tool.
Josh:
Yeah, and you want like a feature or something.
Mike:
Bingo.
Ben:
So the pro version is that the same license then? Or is that a custom commercial license?
Mike:
It comes with a commercial license as one of its features that it offers.
Ben:
Yeah. As you had bigger and bigger companies, as you've been doing this for a number of years now. Have you seen a difference in the licensing concern, like you said that developers don't care, they just want the features. But have you seen, as you've had bigger buyers come in, are they more interested in that aspect as well?
Mike:
Not per se. They never necessarily articulate that they're specifically buying due to the commercial license. But I do get a small subset of my customers that have a whole legal team that go over the commercial license with a fine tooth comb. And they usually highlight the same one or two issues every time.
Ben:
Yeah.
Mike:
And so yeah my mantra is, I'm willing to give you custom terms if you're willing to pay for them. And so like any feature, I just make the customer pay.
Ben:
Yeah, that's one of my favorite things that Patrick McKenzie goes on about is if someone wants something that you don't offer, and you're willing to offer it at some price point, well, then you say, "Okay, yeah, I can do that for you, and here's the price point in which I'm willing to do that." And it really works.
Mike:
Yeah, I mean custom license terms probably makes me five figures a year, which certainly keeps my lawyer fed and adds a little bit of lift to me. I mean, it's not a huge source of income, but it's nice.
Ben:
Yeah.
Starr:
I'm curious have we ever done that? I know we've offered it several times, but have we ever actually done it?
Ben:
Yes. Yep. We've had customers who have come to us and want a custom agreement. And that's when I take the conversation. And I'm like, "Sure, we can do a custom agreement, send it over, and then I'll let you know what the price will be." And yeah, we've had a few take us up on that.
Starr:
Oh, cool.
Mike:
Great minds think alike.
Ben:
Yeah, I remember, you know, back when I launched RailsKits back in the day, because that was what 2008, 2009 time period. A lot of people thought, "Well, you can't make money selling code because like developers don't buy things." And all you have to do is actually try to sell something and you'll find that quickly false, right?
Josh:
Yeah.
Ben:
It doesn't take much time to sell a developer something if you can show them that it does save them time, saves them effort, saves them resources, like you said.
Josh:
That's still something people say, like I've been hearing people say that there's been arguments on Twitter about that over the last couple years too. Like that's not going away.
Mike:
Oh, really.
Josh:
Like people don't think developers won't buy things. And it's like, we buy everything, we just don't buy dumb things.
Ben:
Maybe professional developers buy things.
Mike:
How much did that laptop cost them?
Josh:
Right.
Mike:
You know?
Josh:
Yeah.
Mike:
And there's that there's a certain set of people that are only developers or only engineers, and those are the people who say, "Yeah, I don't buy anything." Well, because they have the skills to build it. But there's also a huge set of entrepreneurs, who are also a little technical. And you'd be surprised at the number of these people that run their own small business and they write the code, and they're not great at it. Like they're not rock star developers, but they cobble it together and they have specific niche or vertical information or connections to where they make a living off of this business.
Mike:
I'm thinking specifically of one of my customers who has a business selling car fit information to people that sell parts on eBay. So like if you have an air hose, you use his service to determine which cars this air hose will fit on, so that you can put it in your eBay description.
Josh:
Well, that's wild.
Mike:
This may only cost a penny, but he scales it to millions of parts on eBay. And so he can make hundreds of thousands of dollars a year by selling a penny per posting or whatever and it'll give you car fit specs.
Mike:
It's one of these things where he just scrapes all this data. And I don't know that his business is more than him and maybe one or two other people. But he's been using Sidekiq Enterprise for years and he just emails me once or twice a year with a particular problem he may be having.
Josh:
Yeah.
Mike:
But the world is full of these entrepreneurs who could use professional tools which help them and provide additional features which then they don't have to cobble together and that's valuable to them.
Josh:
When you say Sidekiq and web scraping, I can just picture his error dashboard.
Mike:
He may be a Honeybadger customer, man.
Josh:
Yeah.
Mike:
I mean, anytime someone says, "What kind of error service should I be using?" I say, "Well, something like Honeybadger right?"
Ben:
Yeah, maybe we're getting one tenth of every one of those pennies that he's making.
Mike:
I really wish I had some referral code I could give people.
Ben:
We actually do have-
Josh:
We might have to get you one.
Ben:
Yeah.
Starr:
It's like that scene in The Matrix where the guy's looking at all these green numbers scrolling on the screen, he's like, you just see some numbers I see like, brunette blonde. So it's like normal people might just see a bunch of errors, but Josh is like, "This guy's selling part fit information."
Josh:
Obviously. No, it doesn't go that direction. It's only like, you can tell me about the business, and then I can picture the errors that it's generating. I can't infer the business from the errors, it's just the errors from the business.
Mike:
Now, let me toss a question back to y'all. What were the discussions like when you were first starting Honeybadger around funding and which direction you wanted to go in terms of the business? With regards like bootstrapping versus VC versus taking investors, that sort of thing. Tell me, give me some insight into me some insight into those conversations.
Josh:
I was not there at the very beginning, but in the first couple of months, I think it was just the two of you talking about that stuff. But I don't recall us ever talking about going out and securing major funding. Did that discussion happen?
Ben:
That discussion did happen.
Josh:
Yeah?
Ben:
Yeah.
Starr:
Didn't we like think about applying to TechStars or something like that?
Ben:
Yeah.
Josh:
Oh, wait. I kind of vaguely remember that.
Ben:
Yeah. Starr and I definitely had some discussions around that at the beginning.
Starr:
Yeah.
Ben:
And we were firmly, I think, part of our eventual decision, which spoiler alert was to not take any money and not do the incubator thing. But a big part of that came from being freelancers before we started Honeybadger. We were used to being in control, and doing our own thing, and not having a boss per se. And, frankly, when we thought about it, it's like, "Well, if you take someone's money, now they're calling the shots." They'll say that they're not but really I mean and maybe you have some, of course you have some opening to do what you want but within bounds that your investor sets. Because there's an expectation.
Ben:
Once they give you money now you have an obligation to try to return that money and then some, right? And so you basically have to do things that they think will help bring that money back. And so we just decided that that's not the business we want to be in. We want to do our own thing.
Josh:
I totally forgot about the TechStars thing but I remember that now and I remember like not being super stoked about it either because I think I was going to have to move to Seattle or something. Because it was in Seattle, right?
Ben:
Yep.
Starr:
Oh, that's right, yeah.
Josh:
Yeah, I was in the Portland area and I was like, I don't want to like go to Seattle.
Ben:
Yeah, well that-
Josh:
I just want to start something from here.
Ben:
I had totally forgotten about the TechStar thing but that was actually a separate conversation from the do take money. Because the do take money thing came up first. And then the incubation thing came up later and within a few months, but I remember now, now that Starr has reminded me that we thought about it, because we could use the mentoring and we could use the resources. And we didn't really need the money per se. But sure, we'll take some money.
Ben:
But the thing that really convinced us not to do it, as I recall, was that we came to the conclusion that if you sign up for an incubator, what you're signing up for is the rest of the VC track, like the incubator will fund you and expect you to take on additional rounds of funding. And then you're basically on this path and you can't get off that path without the business going to zero, or hitting the home run or going home basically.
Ben:
So, and we thought you know what, that's not the path that we want to be on. So there's no point in even starting down that path.
Starr:
Yeah, like with that path there's really no option of just like making some money and like, having a business that grows and is nice. Yeah, and also just like, I don't know, Honeybadgers are just too... like you can't housebreak a Honeybadger right? Like they're feral. You can't do any of that.
Mike:
Staying on brand star, I love it.
Josh:
You probably would have been the odd ducks on the pitch. What do they call the pitch week or whatever?
Josh:
Yeah.
Ben:
I think it's interesting though, today, the calculus has changed a little bit. There's still that option, you can still do the incubation VC route, you can still do the bootstrap option where you do it all yourself, but now there's also a middle ground that didn't exist when we started. So now there's places like TinySeed, or Earnest Capital. I think there are a couple others that are more geared towards helping a boot strapper kind of founder or founders get started with a little bit of capital without the expectation that you're going to reach for the stars and that you have to have this 10x return. I think the more sustainable options.
Ben:
So if we had, would have had that option back then I think we would have seriously considered that because I think that's pretty attractive.
Mike:
Yeah, it almost makes you wonder why small business loans from banks aren't as big as they were in the past. I mean, why do investors and funds need to step up to do this kind of stuff? Why aren't banks just giving small loans for businesses to start in their area?
Josh:
Yeah.
Mike:
Maybe it's the rise of the nationwide bank everywhere, where small banks just aren't around as much anymore, and so they don't have as much skin in the local game, so to speak.
Josh:
Yeah.
Ben:
Yeah. And I think also because it's hard, at least 10 years ago was hard for an individual at a bank to wrap their brain around the idea of you build this online business, you have no assets, you have really no expectation of, there's no proforma that you can do that says, "Oh, yes, by year three, we'll be making this kind of money based on the comparables of like a hotdog stands," right?
Mike:
Good point. Yeah, there was kind of this shift and around the turn of the century, where businesses are starting to get more and more online. It's a whole wild west out here, I guess.
Ben:
Right.
Mike:
Which I mean, speaks to our businesses, right? I mean, our businesses are not anything like what my grandfather knew. So yeah, that's a good point, Ben.
Josh:
Yeah, I wonder like the bank loan or more traditional capital thing could come back around as that becomes more normalized, it becomes easier to prove like a market online versus... Because back then, you can't go walk around the neighborhood and get the demographics and stuff and give that to the bank. But these days, it's techniques are being developed for that sort of thing to prove markets.
Mike:
Yeah, I mean, the problem with an online business is by virtue of it being online, there is no locality to it, right?
Josh:
Right.
Mike:
You're not selling, you're not opening up a small dry goods store to sell to the 5000 people around you.
Josh:
There is no street traffic.
Mike:
Right, exactly.
Josh:
Or foot traffic or whatever.
Starr:
Yeah, and it's different because I imagine like in the '50s, which is when I imagine all this stuff happening, like a bank could be like, "Okay, you're gonna open a laundry mat. Okay, there's no laundry mats in this area. Okay, we're gonna open our book to the page for L. We're going to look up laundry mats and see all the facts and figures for how much they make. Here you go, here's some money." But now it's like winner take all. So it's like-
Mike:
Yeah, a little bit.
Starr:
"Oh, you're gonna start like your neighborhood Twitter. That's cool."
Mike:
Exactly.
Starr:
Like how do you...? I don't know, they're not replicable. Like every success is a success in its own weird way.
Ben:
Yeah. Well, speaking of uniqueness, so I have a question for you, Mike. That is you're a solo business, you're a solo owner, founder.
Mike:
Yes.
Josh:
Single threaded, if you will.
Ben:
You're single threaded. And I'm sure-
Starr:
That's a deep irony, that cuts deep.
Josh:
Not to cut Ben off too much, but the flip side of that is that you're also multi threaded and distributed in your open source model. So you have many hands helping you.
Ben:
That's true.
Mike:
That is true.
Josh:
Sorry, Ben, go ahead.
Ben:
Yeah, no worries. So-
Starr:
Is Mike the hypervisor then, like how does that work?
Mike:
I've lost the analogy.
Ben:
So my question, I'm sure you've had the conversation with some of your customers where they come to you and say, "Okay, but what happens if Mike gets hit by a bus?" Like, you're just one person what's our insurance policy?" So how do you have, what conversations do you have around that? Because I'm thinking in terms of like, if I'm thinking about starting something today, I might have to think about, "Okay, well then how do I answer that question to someone who comes to me and says, 'What are you going to do? You're the only person in the business?'"
Mike:
Yeah. So I've talked to my wife about this. Of course, this doesn't solve the problem of what happens if a meteorite hits my house and destroys the entire family. But let's not get too bleak, all right. But yeah, I mean, continuity and sustainability long term is something that I've been thinking about more and more.
Mike:
I've told my wife to contact Evan Phoenix and some other luminaries in the Ruby community that would probably be well positioned to take over support and long term maintenance. So there's that. We've also discussed briefly, setting up maybe a Foundation, a nonprofit to run Sidekiq, if necessary like Ruby Together. In fact, that was another thing I suggested is she could possibly talk with the Ruby Together, folks about bringing Sidekiq under their umbrella also.
Mike:
So yeah, there's a couple options. Money makes everything more complex and a little more difficult. But yeah, I want to do the right thing for the community. And I certainly don't want to leave the community in lurch if I disappear. So that is something I'm thinking about and something I do need to work out.
Josh:
Yeah. It's interesting, it's a little different, like when you have an open source project versus like a software as a service or closed source business. Because like there is a community around it and a lot of the source code is already out there. The people are working on and maintaining. So it seems in that sense, like it's a little bit better of a model for like a solo person to be pursuing. At least-
Mike:
And I try to keep my business as open as possible. I try to do as much support through GitHub issues so that there is a search history and people can go through and look for solutions for issues that they may also be having. I hate private email support, just because it locks away information into my inbox and another person's inbox.
Josh:
One you probably get more emails then too because people can't just go search for the answer.
Mike:
Yeah, and if I disappear for a day, I'm on vacation and away from my phone or computer, if someone opens an issue, then another community member could possibly answer the question or give them advice. So yeah, I try to direct people to Github so that if they want to guarantee a response as fast as possible, that's still the best option.
Josh:
Do you put the link to your GitHub wiki and your autoresponder, your vacation autoresponder?
Mike:
You'd be surprised at the number of responses that I give that are just links to wiki, areas of the wiki. "Have you read this paragraph?" Because it answers your question precisely.
Josh:
Yeah, us too. We've talked about that, it's like just, yeah.
Mike:
I try to be kind about it, but yeah,
Starr:
I'm never sure like am I being rude, how much fluff do I need to put around this to make it polite?
Mike:
Yeah. And that's a common sentiment for myself, too, is I don't want to be too... I mean, what glib? Is that the right word?
Ben:
Yeah.
Mike:
I don't want to be too offhand and hint that maybe RTFM is the correct response here.
Mike:
Yeah, I mean, I've had customers that just emailed me over and over and over questions that are literally answered in the wiki, and I keep sending them wiki links hoping that they will get the hint, "Hey, take 20 minutes to read through the wiki. And it'll solve you two hours of writing emails back and forth."
Josh:
Yeah, that's something I'm constantly thinking about and working on at Honeybadger is like how you make that information more discoverable to people or because no one, like all best intentions, very few people are going to sit down and actually just read through your documentation. They hit it in different ways. And it's like figuring out where those entry points are, and the best presentation for it because no one wants to read like a wall of text or something.
Mike:
Yeah. Well, I do admit that I'm a fan of the wall of text, but I'm also a fan of examples. So like, too many people try to explain how something works rather than actually giving you examples of sample code, and that sort of thing, and there's always places where Sidekiq's documentation can be improved. But I also take pride in the fact that the wiki is pretty good. And there are examples everywhere so people understand the types of things you can do with the various API's.
Josh:
Yeah, I like providing a lot of deep information too. Lately, I've been trying to figure out how do you like... because I think you can, there's a way to start with the simple information that most people want.
Josh:
And also if you're new to something you don't want to deep dive into the internal threading, how threading works in Sidekiq or something. But I think for the people like us, for instance, who have been using Sidekiq for eight years and also like, maintain integrations with it, that's super useful if the creator has written a document specifically for an integrator, for instance, that goes through all of those deep internals and explains them.
Mike:
Yeah.
Josh:
So I think progressively getting more advanced as people get into the product or whatever?
Mike:
I mean, at some point, it's a losing proposition, and you're just better off diving into the code, frankly.
Josh:
Sure.
Mike:
If you really want to know what this API can do, and how it works, oftentimes diving into the code is faster and more reliable. Because Wiki pages and documentation can get out of date.
Josh:
They're out of date, yeah. Totally.
Mike:
Yeah, and people give me a... have said pretty nice things about the Sidekiq code base since I've been able to maintain it as a full time job I've been able to keep it clean and refactor where necessary. So I try to...
Josh:
Yeah.
Mike:
And then I try to, and then there's four Easter eggs peppered through the-
Josh:
I was going to say my favorite thing about the Sidekiq code bases is that you have... Don't you have a flip the tables one in there or something? That's my favorite.
Mike:
That's one of them, yeah. There's a couple more.
Starr:
No spoiling, Josh.
Josh:
I won't mention the other ones. You can go experience them for yourself.
Mike:
But yeah, I've had people just literally spelunk through the code for half an hour, an hour just looking for the Easter eggs which is nice.
Josh:
Yeah. Well, I have to say even just randomly on the internet, like I think probably I've been exposed to the Sidekiq codebase more than a few times just with people sharing those Easter eggs. Because they'll drop them on Twitter or make an issue or something.
Mike:
Yeah, exactly.
Starr:
That's hilariously clever from a marketing standpoint, I think, especially around developers. Developers can't stand a mystery, right? So just give them a little bit of a mystery and you'll have them hooked forever.
Mike:
I mean, it's about bringing joy in a product, right? I mean, people, all too often entrepreneurs talk about building little bits of joy to make someone smile, because it makes them feel good that they're using your product, right? And that's worth its weight in gold. It gives you goodwill from your users, keeps them happy and presumably keeps them paying for it.
Mike:
So I'm doing things like the splash screen which shows the Sidekiq Pro and the old school BBS ANSI.
Starr:
Oh, I love that.
Josh:
Yeah, love it.
Mike:
That's another thing that I added, and people love it. But I found a guy on DeviantArt to do that, and he had a bunch of ANSI art in his portfolio and I said, "Hey, would you... can I pay you like $100, $200 to do me a splash screen that just says Sidekiq Pro." And he's like, "Well, I don't charge money for my art. But here I did it for you." And so he just gave it to me. And it turns out this guy is like, he's like the Picasso of ANSI art. Like he's well known around the world before this. I had no idea who he was, but he just did it for me for free. So it was great.
Starr:
That's amazing.
Josh:
Nice.
Starr:
The Picasso.
Mike:
Shout out to Roy Sack.
Starr:
All right.
Josh:
I thought it would be cool to do a ANSI Honeybadger. Yeah, it's on my bucket list.
Mike:
Put it in your Gem install, man.
Josh:
Yeah.
Starr:
Yeah, that'd be a lot of fun.
Josh:
Yeah, it's tough. Did you all see, was it Twitter that announced that were going to allow employees to work from home indefinitely now? Like they're just switching to the remote first model.
Ben:
Oh, yeah.
Josh:
That's cool.
Mike:
It should have been done years ago.
Josh:
You're right. Yeah, totally.
Mike:
Why are you buying a million square foot of downtown San Francisco office space? I mean, what a waste of money. When everybody can do their job in front of a computer screen anywhere. It makes no sense.
Josh:
Yeah. Well, I wonder if other companies will follow them.
Mike:
I just signed a contract in March for a desk at a co-working facility.
Ben:
Good timing.
Mike:
That's probably not happening anytime soon.
Josh:
Yeah.
Mike:
They haven't even opened yet, because they keep delaying their opening.
Josh:
Was it a WeWork?
Mike:
It was a Central Office, which is a local Portland co-working facility.
Mike:
So bringing that back to the topic at hand. Have you all enumerated any policy around COVID in pricing? If a customer says, "Hey, we're struggling to make ends meet," do you have a policy around what kind of pricing you... what kind of deals you're willing to work, that sort of thing?
Josh:
Mm-hmm (affirmative). We've got deals.
Ben:
We decided to give six months of service free to anyone that has impact due to COVID. So we've had a few customers reach out to us and say, all my revenue just has disappeared. And so yeah, we're happy to help accommodate that. We've had, I would say, less than 10 people take us up on that.
Starr:
So do we have one implemented in our app to...?
Ben:
Yeah, we actually added a thing to our app that if you went to cancel, you would see this message saying hey, if you need some relief from COVID, just pop us an email, we'll take care of that for you.
Mike:
Nice.
Josh:
Nice. Yeah, we also added a parking account parking feature, right? So that if people need to pause their billing or whatever, they can do that.
Mike:
Yeah, I don't have anything that mechanical yet, but I've definitely had some customers contact me and ask if they can delay, or pause, or get a couple of months relief. And I've certainly accommodated those requests. But usually on an ad hoc basis, right? I don't necessarily have a pure policy. Someone who contacts me about Sidekiq Pro, for instance, is very different from a customer that's paying me tens of thousands of dollars a year for instance. All that's based on my own feeling as to what is this customers, the details of the customers plate, and that sort of thing. But yeah, I'm right there with you.
Josh:
Yeah. It's also, I think, we always jump to automate that stuff. But I think in that case, it's a little bit of a premature optimization too, because you've got to think like, if 10 people have taken us up on it, yeah, we might have saved, it might have broken even or something, but then there's the cost of maintaining those little bits of code that do things like that into the future, which I often forget about and that always adds up. So like, yeah.
Starr:
Yeah, and like knock on wood, like we had a little blip. But churn isn't really different from what it usually is for the passing month or so. So I don't really know what's up with that, we're just sailing along, it's weird, but I'm grateful for it. And hopefully it'll continue.
Ben:
It was really interesting, Mike ProfitWell put out a chart and they showed because they do a lot of... they have a lot of data on SaaS billing because they provide bare metrics. They provide analytics for Stripe, people who are using Stripe to do the recurring billing. So they have a lot of data and they had showed a chart that is up and to the right, for all our customers.
Ben:
And then COVID happens and there's this dip. And then if you keep going the chart it starts to come back up again. And that's exactly what our chart look like. So we're like we're pretty much-
Josh:
Like the stock market.
Ben:
Yeah, it looks a lot like the stock market actually.
Starr:
Oh, my gosh now I want to overlay a chart of a growth to the stock market.
Ben:
That's interesting.
Josh:
It's all connected Starr.
Starr:
The VTSAX index or something.
Josh:
I'm going to write a book.
Starr:
Yeah, and get some of those flag pins and pieces of thread and stuff and connect them.
Josh:
I'm forecasting the stock market based on our revenue numbers.
Starr:
I was thinking the other way around, but I guess you could do that.
Mike:
When you lose money, you really lose money.
Starr:
There you go. It's like that, what was it that the octopus that people say could like predict the World Cup or something?
Mike:
Yeah, that's right. Yeah, that was a thing.
Josh:
That one.
Starr:
Yeah, we have a SaaS business that predicts the stock market.
Josh:
Yeah.
Starr:
That would be a really good...
Mike:
It seems like there's been a lot of businesses that are starting to come online. And due to them having to shut down a physical presence. And it seems like y'all could get some piece of that, but we'll see. I'm glad to hear that you're mostly weathering the storm though.
Starr:
Yeah, me too. Well, we are getting up there on time. We're having a lot of fun talking.
Starr:
Should we put this one in the books?
Ben:
Wrapity wrap.
Starr:
Okay, so, this has been a special episode of FounderQuest with Mike Perham. Thank you Mike for joining us.
Mike:
Thank you for having me, Starr.
Starr:
Yes. And yeah, the other guys had you too, it's okay.
Josh:
Do we want to mention where to find Mike online.
Starr:
That's a great idea.
Josh:
Friendster friends with him or something, Mike's best friends.
Starr:
What's your Friendster ID?
Josh:
What's your ICQ number?
Mike:
So my Twitter handle is @getajobmike. It's a funny joke trust me. It's a funny joke more than anything. But yeah, @getajobmike and sidekiq.org is my website.
Starr:
Well, awesome. Yeah, and we are Founder Quest. If you want to review us on Apple podcast, go for it and we'd appreciate that. If you are interested in writing for our blog, Honeybadger, go to the honeybadger.io website and click on blog and then there's a link to write for us. So just check that out. And are you going there, Mike? You're pointing, you're doing something. Oh, you're petting your cat. I thought you were going to check out our write for us page. I was getting excited.
Starr:
Okay, well see y'all later and have a great Friday.