← Previous · All Episodes · Next →
RailsConf recap with John Nunemaker S5E11

RailsConf recap with John Nunemaker

· 47:23


Intro: They may not have all the answers, but they have opinions. So of course they started a podcast. Grab your headphones and prepare to nod thoughtfully. It's FounderQuest.

Ben: So I got that, picture that you took of me on the people mover. And, it's like “Oh, that's a nice picture actually”. And so again, one of those, poses where I'm looking off into space. And so I sent that, put that on my mom's, picture frame. We bought this digital picture frame for my mom, so that we can send pictures and she can have that and not have to continually ask me for pictures all the time because I always forget to send them.

So yeah, I sent that to her. I haven't heard back yet if she actually likes that picture, but, I kind of like that. That was pretty

Josh: Well, I hope she does. Yeah, and also, you have a second picture now for your office.

Ben: Right, right. So yeah, you've almost convinced me to cover my whole wall here with pictures of myself. That's a pretty awesome idea. I like that.

Josh: Everyone has a cool YouTuber backdrop, so Ben's is going to just be like, pictures of Ben.Yeah. What is a people mover though? I didn't know… so we just got back from rails conf 2024 in Detroit, which was awesome, but they have this, it's like a train that goes around town, but I'd never heard the term people mover, I guess I haven't traveled enough, we don't call them that over here.

Ben: I think Disney World was the first time that I heard the term people mover because in Epcot they have that world of tomorrow or something. It's a people mover there. Or at least it was like 20, 30, 40 years ago, whenever it was that I went to

Josh: Been a while.

Ben: Been a while.

Josh: You know Disneyland pretty well. You've got like a family history of Disneyland. I know we haven't told that story yet. Maybe we'll save that for another time. Ben’s, his family's like Disney royalty. So you would know the people mover.

We have someone else. We have a guest, on the pod today, and that guest is John Nunemaker.

Ben: Welcome, John.

John: I did not expect applause. Yeah.

Josh: I feel like we've talked about you a little bit recently, John, and we're big fans of Flipper, but we all got to hang out a lot this past week at RailsConf. It was awesome. I don't think you and I had ever met in person, I had a lot of fun hanging out.

John: Yeah, and we all decided we were going through withdrawals because it had been like three days so we should definitely get back together and talk some

Josh: Yeah, it was like you're just back from summer camp and you want to hang out with your friends again

Ben: Right?

Josh: And yeah, we luckily we can do that.

John: I totally thought people mover was a big city thing. Like I just thought - cause I'm in a smaller city. So I assumed you both knew what a people mover was. And then, you know, we quickly realized, no, people movers are just for Detroit

Josh: Mhm. Hey, I'm out here in the country— I mean, I'm in the Portland area, but I'm out here in the the semi boondocks , so we don't have any people movers around these parts.

Ben: I thought the moving walkways at airports were called people movers. But, I could be wrong about that.

John: I think you’re right

Josh: Those sound cool, I like those.

John: That sounds familiar.

Ben: I always feel like a superhero when I'm on those things. When I'm walking on the people mover. It's yeah, I'm going super fast.

Josh: That's how fast I want to walk all the time, that would be cool. That would be like a superpower.

John: My wife does walk that fast. I have to run to keep up with her. She's very quick walker. And I'm very slow walker - it might just be that I'm a slow walker.

Ben: That's cool.

Josh: Mhm.

Ben: The PeopleMover was fun. So the first morning of RailsConf, so it was in Detroit and we were all - most everybody that was going to the conference stayed in the Renaissance Marriott, which is just about a 15 minute walk from the convention center where the conference was.

And the first morning, I decided I wanted to take the people mover instead because people movers are cool. And how often do you get to do that, right? And so I went downstairs to try and find it and it took me probably about 15 minutes just to get out of the building to find the stupid people mover.

Because I was going up and down and every, which is like a— because there's basically like a car museum and the bottom of this hotel and it's just really strange. So anyway,, I met someone at the bottom, at the elevators and who was also obviously going to the conference - backpack looks like a tech person, right? And so we started walking and then we ran into two more people. And eventually, 10, 15 minutes later, we actually found the people mover, which then of course only goes one direction and only goes counterclockwise. And so, since the hotel is two stops in that direction from the conference center, that meant that we went all the way around the long way on the people mover. So had I just walked, probably would've taken half the time to get there. And then there was no signage at the conference center for the way that we came in, because apparently they expected everybody to walk.

I think my street cred went way down with that, with the people I was hanging out with, because they were like, “Man, this guy doesn't know anything about where he's going and what he's doing”.

Josh: Well, you probably still got there before me the first day, and most of the other attendees, because my experience was basically trying to get through the same maze that you were to find the people mover. But I was trying to find the exit to get to the walkway towards the waterfront that takes you down to the conference area.

And so I also met up with a group of, like, two other people who were wandering around kind of lost and saying, “Do you know where it is? Like how to get out of here?” Because there was no signs. And then we would occasionally bump into another group of people that were from the conference, that had also found each other that were doing the same thing and then would go opposite directions, so you probably still got there before we did.

John: it was definitely the most confusing hotel that I've ever been in, maybe building that I've ever been in. Like there was parts that were circular ramps, like a corkscrew to go up and down, there were parts that were just wavy, there were parts that were open and you could see the floors down and up.

Josh: And you couldn't see how to get there.

John: Yeah.

Josh: It was kind of fun. Like, I'll look back on that fondly, I think, but it was perplexing, in the moment, but I think it'll be fun memories for sure.

And I’d never been to Detroit and Detroit, I gotta say, I wasn't sure when I got there, but it definitely grew on me and I think it was a cool place to have a conference.

John: Yeah. It was a blast. It was a blast. It was really good.

Ben: Super good food and good company. And sadly they announced that this would be the second to last RailsConf, although, I mean, to be perfectly honest, I was like, if you're going to end it, why don't you just end it now? Just get up there and be like, “Hey, everybody, this is the last one, party hard”, thanks John.

Josh: Smoke them, smoke them all. You got them

Ben: But yes, it's going to be the - it’s going to be the penultimate conference. And I mean, how often do you get to use that word every day? So I guess that's good that they did that.

Josh: Nicely done.

Ben: Thank you.

John: Heard someone say that if you like- you have to book two years in advance. So that could be why they might've like just let people know. I don't remember if I was talking with you all about that or if it was someone else, but I've heard that before. So it could be that that's why they're having one more just like they were booked ahead.

Josh: Well, it sounds like they don't know. Because they're doing a survey for like where it's going to be held that everyone should go fill out. I don't know where they link to it now, but probably on rails-conf-dot-org, but yeah, they said it was going to be less focused around talks and more focused on community and things. It sounds like it'll be a party kind of like a farewell, or maybe a reunion or something, I'm sure it'll be fun.

Ben: Like a panel discussion with those of us who were there at the first RailsConf in Chicago, 2006, although asterisk on that, I'll come back to that in a second, but like Robbie Russell and— because he was there this past time and we hung out a bit together. It's the first time I'd seen him in , I don't know, 10 years or something.

So we definitely get like the old caboose crowd to show up and do like a back in my day kind, you know.

Josh: Yeah.

Ben: Rocking chairs on the stage and talking about the good old days back in rails-dot-one-four, stuff like that.

Josh: Yeah.

John: Should definitely have a lawn and some chairs for that panel. And then it's just get off my lawn, you know, that would be ultimate.

Ben: Have some clouds in the background we can shake our fist at them.

John: Yes.

Ben: It's like, you never had to use Mongrel! Kids got it easy these days. But the asterisk is: there are some of us who were at the Vancouver First International RailsConf, which actually snuck in right before the first official RailsConf.

So some enterprising soul, can't remember who that was, decided to throw one in Vancouver, and that was fun. And that's where DHH had his very famous slide of the Death Star and he was talking about the WS star, whatever it was called, the spec that never really did anything back in the day.

Yeah. So that was fun. It was my first time in Canada, so good memories. But anyway, 2006, yeah, 2006 and then next year, 2025, pretty good run for a conference. You know, it's about 20 years.

Josh: Yeah It was, I think it’ll—I think it'll be good for Ruby central to focus on the Ruby ecosystem. And I know they're excited about supporting more of the regional conferences, which do seem to be coming back, which is cool. So I'm hoping some local regional Rails confs will also pop up. Which, I think they’ll be into supporting. So it'd be cool to get all those conferences back. It seems like in person events might be making a little bit of a comeback. So I'll be at Blue Ridge Ruby, later this month. And then we got Madison Ruby

John: I'm actually going to be in Asheville two days after that. I don't remember if—

Josh: Oh, really?

John: I didn't realize when we were there that it that the Blue Ridge is like May 30 and 31st. And the first, my wife and I are leaving and then we get there.

I think like this, we're staying the night. So we'll get there the second and we're going to be in Asheville for a week because we're hitting 20 years this—later in July. And so we're like, yeah, we'll just do a big long trip. We were like: we’re in Asheville. I love the Biltmore and stuff like that, so, and I was like, “Oh my gosh, if we had just planned it earlier”. And then I was like, “No, I can't hang out with Ruby people on my 20th 20 year wedding anniversary. That's just, that's a faux pas”.

Josh: I can't do it again. I can't do it again. She's still not over last time.

John: Yeah, yeah. Too soon. Too soon.

Ben: Oh, that's the reason I'm not there, because my anniversary is the 30th.

John: Oh, awesome. Congrats. that's right, well, I'm looking forward to it. That sounds like it'll be a cool conference.

Ben: So John, will you make it to Madison instead?

John: I'm thinking about it. I just realized, true to form, that I missed the RailsConf deadline for submissions, I missed the RailsWorld deadline, and then I just realized when I got back, I also missed the Madison Ruby. So, that's the trifecta. My goal right now is mostly just RailsConf, RailsWorld, and RubyConf is in Chicago.

But if I can work it out, I'm gonna try to make it to Madison also. Because it's really not that—it’s like six hours from where I'm at. So, I'm like, that's not a bad drive.

Josh: Yeah. And I've always heard really good things about Madison Ruby or the conference. I'm glad it's back.

Ben: Well, you have another opportunity to submit a proposal tomorrow, it opens for a Rocky Mountain Ruby in Boulder, Colorado.

John: That would be a good one.

Ben: Yeah, that’s—that was great. I really enjoyed that one back in the day, whenever it was. So I'm looking forward to that one.

John: I went to a Go conference there. Oh, sorry, go ahead Josh.

Josh: I was just saying, I don't remember what year I went. I think it was like 2016 or something or somewhere around there, good time.

John: Yeah, I don't want to give up too much information about this, but there was a time where I wrote some Go. So I went to a Go conference there and it was in Boulder. And that's when I learned, way back in the day, GitHub actually had a secret password at one of the coffee shops there.

And if you knew that password, you got free, whatever you ordered, it just got billed to GitHub. It was pretty cool.

I mean, that was a long time ago when they had—I don't know if they still have a Boulder office or not, but yeah, I've never felt more powerful in my life and I'm a programmer. So I've wielded things, but I walked in, said the secret word, which I don't even remember and received coffee for no payment.

And I mean, I did not walk out, I strutted. I was—I was feeling on top of the world. So yeah.

Josh: I love that. Yeah. It's like a real life cheat code.

John: Yeah. To think to do it, and just, and how do you, like, how do you make that actually work? Like, do they just leave a credit card there permanently? I don't know, but I love the idea. That's really cool. And especially if you're there, you feel so a part of it then, to experience that, to just walk in and be like, whatever it was. So I'm sure it involved an Octocat or something.

Josh: Yeah. Yeah. I was going to say GitHub always, they always did like really cool marketing and cultural, like, work culture things. I always loved how they operated. I think things have gotten a little bit more formal since Microsoft took over, maybe.

John: They wears suits now. Yep.

Ben: On the trend of conferences and GitHub, GitHub universe was the first conference that I went to that actually had a pet relief area. They had a little picket fence and a little plot of sod or I don't know, AstroTurf, whatever it was and a little fire hydrant and stuff. And I was like, “Oh, that's pretty clever”.

Josh: Nice. This is back—I remember pets in the workplace was like a really, like it was a big thing. I feel like it was pet friendly offices or whatever was like a thing for a period of time.

Ben: Well, I didn't take a job at Amazon because of pet friendliness. So, I was on an interview loop there. It was like, I don't know, 20 years ago or something. So I was on an interview loop there and the team I was going to interview with—I was walking around their offices and there were all these dogs, it seemed like everybody had their dog under their desk and stuff.

And I'm like, "What's with all the dogs?” And the person I was with, he was like, “Well, we're here so much that we just want to bring things from home here. And, you know, have our dogs here with us”. And I'm like, “Okay, I really don't want to be in a job where I'm at the office that much”.

Josh: That's another thing like Google gives you a bunk to sleep on or whatever at the Googleplex, that seems like much. It was definitely the pre remote era of companies trying to give you office perks and you could, you know, bring your pets and like never leave, we'll give you a full cafeteria and three squares a day.

Ben: Yeah.

Josh: Well, what do you guys think about Rails? What's the momentum? How was Rails conf for y'all? Do you like any talks that happened? I know we all did the hallway track for a lot of it, which was great, I thought. How are you feeling about Rails?

John: I'll let Ben go first, but I definitely have thoughts.

Ben: I thought it was great. I thought the energy was really good. I wasn't in Atlanta, so I can't compare, but it felt similar to Portland two years ago, which felt really good. And it hearkened back to pre COVID days, which I think is a win. It's a good sign. Talks were great, of course, I went to the logging talk, the structured logging one, and that was really good.

And that was a great start. And there were plenty of good ones to go to. So, I think the committee did a great job. Putting things together with the talk section. And yeah, the hallway track was awesome. Got to meet some new people and got to re-meet some old people. And it was a lot of fun.

Josh: Nice. Yeah.

John: I kept saying like 10 years and then I was like, I think it's longer than 10 years. It's just that time goes so fast now, you know? So I'm like, it's 2024. I don't think I went in 2010.

So my guess would be it's been, at least, 14, 12, 14, somewhere in that range, so a lot of the people that I remember meeting back then, I didn't really see now, like obviously I saw you Ben, but I was trying to think of some of the others. I remember Adam Keys and other people like that at previous ones.

And this was definitely different and I felt more like the old man, but I was okay with that. But I loved the creativity, like, that's what blew me away. Colin from Go Rails had golden tickets and not just golden tickets, like, he didn't just print on gold paper, they actually scratched off, I’m pretty sure.

Maybe someone was scratching for fun, but there was actually like foil to scratch off or whatever. And someone won the chance to take his commit to Rails that got reverted and put it in Rails 8 because they had to wait till Rails 8.

And I was like, that's just brilliant. Absolutely brilliant. And so there was—and everybody's on their hands and knees, looking under their chair. Because you'd feel—but then you're like, wait, was this the bottom of the chair? It's a little crinkly. Maybe that is a gold thing. And yeah, it was kind of like a gold rush.

That was, I thought that was brilliant and I thought, “Man, I'm glad I did not talk at this one”. Because I would not have brought that level of entertainment. And then, the other one that I really liked was, you know, Cody Norman started his truck. He like reverse engineered the API to his starter and then basically sent an email and the email processed and made an HTTP request. And the video of that at the very end was just, I mean, it was like a standing ovation. Everyone just went nuts. Cause that's the most ridiculous thing that anyone had seen at the conference so far, you know? And it's like those kinds of things win, and also is at the end.

So that's all you remember. I remember the beginning, I was like, I didn't know action mailbox was even really a thing. And you can start a truck, so that was really, those are the two that stood out.

Ben: I was so bummed. I missed that one. I was really looking forward to it and then I got in the hallway track. And it was good, but yeah, I'm bummed. I missed that one.

John: And I think I went to more than normal. Like, I think I went to five or six talks over three days and that's including keynotes. And that's more than normally, normally I would do.

Josh: That’s a lot for an old timer.

John: Yeah, hallway track the whole time. But yeah, there were good talks, lots of people, like you said, lots of new discussions, meeting new people, seeing people that you see online, you see their avatar and then see them in person.

I thought the vibe, the energy was very much “Let's go out, let's build the next generation of awesome stuff”, and that was exciting. I felt fired up and inspired when I left.

Josh: Yeah. I felt the same way. There was like a theme of: there's built, there's work to do—but we're excited about it and we want to build. And I really liked Irina’s keynote about what Rails can take from other ecosystems and the small companies that are still building on Rails and even new ones.

And I think highlighting the actual companies that can live the Rails dream of whatever—the one person framework or the small teams building, punching way above their weight, like Flipper and Honeybadger, for example. I’ve—we're the old timers in the room.

Because she was focused on some of the newer companies that are switching to Rails, which is really cool too. I think that was a great decision, to highlight the new companies that are coming over. So that was really awesome.

John: Especially flex car going live from 60 microservices to one Rails app, the night of that keynote, I was like, that's just that's baller level.

Josh: Yeah.

Ben: Yeah, I was really impressed by that switchover, from Java during the conference. Yeah, that's pretty awesome.

Josh: That'll be memorable, I'm sure, and hopefully an inflection point, but yeah, lots of energy, lots of “Let's, bring in the good ideas from like Laravel and some of the other communities that have come up and taken inspiration from Rails over the years.”

And I think now, Rails is in the position where we can take inspiration from others and keep building. And I think there's a little parallel, just of the last two or three years, it's been a little bit tough in the industry, I think, and coming out of the pandemic—I think there've been some downtimes for people , and now it just feels like there's some momentum building.

I don't know about you all, but I'm really excited to be in business , and , be working and—definitely still a little hungry, which I think is good. Like we got a little complacent, over the good years too, so I've just been having a lot of fun, yeah, just building,

John: Definitely.

Ben: Yeah, I'm loving the energy in the community. I love the call out to be loud, make some noise about what you're doing because, I know I'm guilty of just going in a hole and building stuff and focusing on the numbers and that sort of thing and not really talking about what I'm doing as much.

So, we recently made some changes to how we're doing content, trying to get more of our team to actually write blog posts about what we're doing and be more loud about what's going on and what we're learning and we're doing. So that’s—I think that was a good encouragement to me, to get off that blog post that I've been sitting on for several weeks now that I just need to finish off. But just get more stuff out there. John's like over there with glee.

John: It was rubbing the hands evilly together. I'm like, yes.

Josh: I've got all kinds of blog posts. I want to get from Ben.

Ben: We’re gonna have to have - I don't think it's on the agenda for today - we’re going to have John come back to talk about the follow up episode where we had him talking about writing blog posts and writing in general.

Josh: I'm always down to talk about writing and content marketing and all that. There's probably a whole episode there.

John: I love that idea that you guys have about—two things I think I've seen recently from you online of going deeper. Because you have a long history of intro to this intro to this, a lot of those kinds of things. And there's deeper articles too, but I love that idea of like really focusing on deeper.

Because I think that's the thing that a lot of people don't get into at all. Like, I’m not going to take us down the content path, but, I see that a lot—where people don't go deep. And I think that's part of why some of the stuff I've written in the past has resonated because I try to go deeper than the stuff that anyone could come out and write. Let’s write something that isn't getting started, isn’t beginner.

Not that that stuff's not good—but really go deep. And you guys have so much knowledge built up. I have the strong desire to just interview both of you for this entire podcast episode, because listening to you talk about serverless and then some of the dynamo and I was like, dang, you have a whole bunch of technology going on.

I just want to talk, “Okay, here comes a request through the API the whole way through. What's everything that gets hit?” Because I bet it's wild. People wouldn't even guess how many things are getting hit. so yeah. We can turn this into a multi parter.

Josh: Yeah. So like we will do a John Nunemaker interview series where we have you on to interview us over a series of topics. Like I'd love that, really cool.

Ben: So, we interviewed John about writing and John interviews us about the stack and tech and stuff. Love it.

Well, and also, , John, of course , I'm sure you have some things to talk about on the Flipper stack, it would be fun to hear about.

Josh: Yeah. I want to hear more about Flipper too, for sure.

John: Yeah. I'd be happy to, but I just—you guys have the auto scaling and like all this stuff again. Recently, it's a lot of Insights episodes—is what I was listening to while I was mowing the other day. And I was like, man, I didn't even think about all this stuff and I don't know anything about that stuff.

I'm like, “If it's not on Heroku, I'm too lazy”. So I love that idea. I would buy Ben's guide to AWS or Honeybadger’s guide to AWS.

Ben: It's funny you should mention that, because recently I told Josh, you know what? I think it's time for me to write a book about how to deploy your Rails app to AWS. Like all the things you need to know.

John: Yes!

Ben: I appreciate the vote there. Maybe I'll actually do that, or it could become a series of in depth blog posts on the Honeybadger blog. And maybe then I can wrap that up into a book, yeah.

Josh: Yeah, start with the blog, start blogging and then we can.

Ben: Speaking of books, and tangentially related to Flipper as well, Garrett's book on doing generators—he asked me to take a look at that when he was writing that.

And that was, I frankly, I was surprised - not that Garrett wrote a good book, because I mean, that's a given - uh, no, I was surprised in the subject matter that I was actually interested enough that made the book a compelling read, so Gary's book is fantastic.

We'll have to link it in the show notes and it's about Rails generators, which, to me, it was always like a “whatever” kind of topic.

Because, you know, you generate a model and then you're done, right? Like, I don't even generate scaffolds anymore. But no, I really appreciated his enthusiasm and going into the details of generators. I'm like, “Okay, maybe I should take another look at using generators”. So props to Garrett on that one.

John: Yeah. He is all about generators. Like, because he works on Box Out and Flipper. And so both of them have different generators and stuff. I keep telling him, you need to put those kinds of things in blog posts and books and more examples because really, I think the first pass is like, documenting all the things that you can do and how to write them and how to test them and all that kind of stuff.

Like, it's almost base level, because there's not the same level of documentation for those as other parts of Rails, and I think action mailbox or some of the other ones might be similarly in that boat. And that's a really great place going back to where Rails can get extremely, like, leveled up—I don't know if you've watched any of the Laravel videos and stuff, but these people have neon signs in the background, perfectly blurred out.

Like, they’re fire, they’re fire—I mean, I don't like PHP. That's what I started with. I don't like PHP. I will never write PHP, but I'm super inspired by Laravel right now. So Laravel generators, all the spots in Rails that don't get sunshine. Yeah, I agree. And Garrett's a just a fantastic writer and speaker and stuff.

Josh: I just love the PHP comeback, to be honest. Like, PHP has gotten so much hate over the years, but we all—well, I don't know about you all, but I started—well, not started—but I did PHP for a decade. And yeah, it's just—it’s great that Laravel has made it so hip now.

Like who would have thought that PHP would be the hip crowd in the short shorts or whatever.

John: Yeah. They had like flat bill hats on and everything. I was like "Whoa, man, I am out of date”. It was awesome. I was really impressed. And if you just go to their site and look at all the different products they have for development experience and for production experience, it's impressive.

I think you could build an entire—I don't think it, I'm trying to do it: build an entire company that's just rebuilding a lot of the Laravel stuff for Rails. Like, obviously, it's harder cause it's not as standardized, but yeah, they're crushing it right now. I'm super impressed. I've watched a couple of Laravel videos and I obviously throw up a little bit in my mouth when I see the syntax, but the—what the end result is amazing.

It's so good. I'm really impressed. And that's syntax is just taste. So who cares? I like shrimp. You like whitefish. It doesn't matter.

Josh: Yeah, for sure. I know Chris Oliver and GoRails has taken some inspiration from the Laravel ecosystem as well. They're just really good at building those community supported tools—although Laravel I think takes a little bit more of a centralized approach.

Like Taylor, you know, runs an actual company that like builds some of those things and Rails is a little bit more like community—the community provides the tooling things, which I actually like. I think we could get better at supporting each other and actually making those things de facto—the things we use, as Rails developers, for example.

Ben: Well, I think we owe some listeners an update since we haven't recorded since mid March. So, we had a goal for insights by the end of March. And we jokingly said that if you didn't hear about the goal again, then don't ask us about it because, you know, but I thought I should be honest and here's what happened.

So we did not meet our goal. Unfortunately, we did not, I can't even remember what the goal was. A hundred customers paying a hundred bucks a month. That was the goal.

Yeah. And we did not hit that goal, but we did have some number of customers paying some amount of dollars per month. Not gonna reveal our exact revenue details, but I'm happy.

I'm happy with where we got. I'm happy that it actually happened.

Josh: Well, and the big news is that we shipped the thing and we did the marketing, and now we're into dev cycles of improvement, and features and things. I think it definitely served its purpose, which was to keep us on track and it's good to have something to shoot for. Probably good that we set a high target as well.

So, I'm happy that we did.

Ben: Yeah, the point of the goal really was to make sure that we shipped to get it out there and not just let it drag on because, as software developers, we can often just choose to refine and refine and refine and we're kind of embarrassed, we don't release it. So just getting it out there was good.

And, now, yeah, it was really nice to go to people and say, “Hey, it's launched. You should start paying us”. That was really helpful. And then actually being able to have a target to say, okay, going back to a customer who's using it today and not paying us yet, okay. But tell me why.

So going through that process, it's not all about the launch. It's really about what do you do after the launch.

Josh: Yeah, that’s, I think, one of the things, I feel like we're gradually starting to hear more about the fact that people are aware that Insights and logging and observability is something that Honeybadger does now. And, my theory is that it takes a while to get that into people's heads.

Like, because we’ve— Honeybadger has been around for so long and we've been in the error tracking category and people's brains for so long that it's not going to be an overnight change that, “Oh, we launched this thing now, of course, you're going to use Honeybadger for, like, all of your monitoring.”

So I think that's a change we need to gradually make, as we have podcast ads and we write about it and I think it's a long term project. And even now there's so much work we can do—we have to do, and we can do, like the documentation, for instance. We still have a lot of areas where it doesn't mention Insights yet and still talks about error tracking or some other, more specific things.

So I think there's a lot of opportunity there, but I think we are dealing—we’ve had a positioning problem that we're trying to resolve, or we're shifting positioning a little bit in people's minds. I think, it's not—I don't know that it's necessarily bad news.

I would have loved like a hundred people or more just to jump on the bandwagon. But we're seeing some, slow and gradual progress and that's encouraging to me.

Ben: Same.

John: And the more you talk about it, the more people are going to start—it’s just going to happen because it's a great addition to what you have. One thing I thought was super fascinating is: I heard this thing recently that was like, make your second product way bigger than your first—like make your second product something that could devour your first.

And I feel like that's exactly what you did, yeah. Error tracking is a subset of logging.

Josh: It's a type of event. It's just a fancy event.

John: It's a complete subset. And I'm like, how great for you guys to be “I'm just going to chomp off the biggest, the biggest problem, which is , okay, let's just get all this data”. And then you can do more things with it. and make that second one. There's no reason that second one can't be dramatically larger than the first one. I think that's really cool.

Josh: That's the direction I think it's going to—is that it's gradually starting to take over. And it's really cool when that starts to click

Ben: Yeah. And when we write the history of Honeybadger, we can actually say that we intended to do that, as opposed to just stumbling into that.

Josh: Yeah, I think it's worked out pretty well, in that regard, yeah And we have all kinds of ideas of things , deeper integrations with the error tracking side of things.

Because I know that there's companies that have started the other way around, like they built an APM and then they added error tracking as an afterthought. Like, new relic was like that, for example, and others.

People really like a first class error tracker though that is not sampling and extracting errors from the logs or something, but it is actually sending the errors when they happen so that you can get the immediate notification and all the other cool things we can do with those.

And we provide the real, like, issue tracker and de-duping and everything on top of that. So, I think it's cool that we started with the errors as the first piece. But yeah, I think there's a lot more we can do now that we have the logs and hopefully we can—in the future we want to build more APM style, tracing and things like that on top of it.

With, I don't know how, with some Honeybadger flare, hopefully not just a run of the mill APM. So I'm excited about the possibilities there.

John: I got really excited to listen to your guys podcast from a couple of months ago, because it's fresh in my head. I just listened to it like a couple of days ago, but where you were talking about Honeybadger-dot-event. And how that sends stuff and the Ruby library having it. And then, some of the other bits of the APM stuff, because I've been doing a bunch of open telemetry stuff on the side for fun; over Christmas break and stuff I did.

And I was like, just subscribe to all these active support notifications, ship them to the logs. And then you can totally build a APM style stuff on top of it. Like, I thought that makes total sense, yeah. But first you got to get the pipeline to receive all the data and not fall over and that kind of stuff, which you guys have a lot of experience with.

So, it was cool. I wanted to start sending a bunch of my data to you and then allow me to query it as well. Cause I was like, “Oh, building these pipelines of like. You know, send all this data and then extract it into reports and stuff like that is kind of painful”. I just want to be able to say: show me all the times this person looked at this feature or that kind of stuff for like flags.

And I'm going to have to look a little deeper. I don't think that's your use case. Your use case is more like a different, .but as an API, almost as a storage mechanism and reporting mechanism.

Josh: A Flipper integration is on my list of things I want to do because we have this plugin system in the gem that, if you have a certain library installed, it can install some extra instrumentation— and so, yeah, we've talked about this internally, because we use Flipper and it would be really cool to just have that automatically report information about your feature flags and usage, even things like that.

Yeah, and I think that's totally in the use case of what we've intended Insights for, because, yeah, it is like the more technical logs and data type tool— but because we're so like, you know, the bootstrapper, we really want to support small companies that are doing a lot with a small team.

And, I'm sure you've, Used other marketing analytics and other types of tools and they’re not built for developers. So, if you're a developer led company, you can do some cool things with Insights there's all kinds of data from your business that you could— having Insights and it's useful, like, for customer support or for the financial stuff.

So, I don't know if you saw my blog post about sending Ahoy analytics data to Insights, but that sort of thing, you can get your user events. So, you can see: what are your users doing in your app? So, I think all that's great to send.

John: Got me really fired up to try it out. I was picturing it more as just, get logs over there. But then when you started talking about the event stuff and the other stuff, I was like, “Oh, okay, well, yeah, we use Ahoy and like other things”. So I was like, yeah. I started getting a little more fun.

Maybe I can just send everything there. And if I learned how they store their data, I can efficiently pull it out and then I don't have to store it.

Josh: Yeah, for sure. yeah. Actually my next blog post is about a little bit more a deeper dive into the whole event, like customer behavior tracking, how to structure your events and that sort of thing. so get that done at some point.

Ben: We do definitely want to support those development teams who are trying to track that product usage information, trying to track all those events that are happening in their apps. Yeah, it's not just a dev thing, it’s not just an ops thing, but it's also a customer success thing, it’s also a marketing thing.

We definitely built it with the idea that it would support all these use cases. That's not— that’s just beyond logging. And that's why, like, we try very hard to— in the API inside the gym and in the API that we document, we not use the word log a whole lot.

We try to use the word event instead because really it is about all those events that happen, not just log files.

Josh: Yeah. Yeah. I try to say logs a little bit on the marketing site more just because that's the category in people's heads and you want to connect with that. But hopefully then we can draw them— draw you in and then, level you up, take you a little bit deeper into the whole structured, logging and event paradigm.

Ben: We haven't really talked about this. Maybe not even at all, but one of our goals then is also to make this backend that we developed available as a separate self hosted standalone thing. So, you could have this kind of engine behind Flipper, and then you could have all this advanced querying and stuff available for your customers, look at their data inside of your SAS. .

John: Pushing all my money over to you. It's really only a penny, but it's yours now.

Josh: Yeah, I hope we get to that point. It would be pretty cool. I think that this is a tool that a lot of apps could benefit from.

John: I will need an AWS book though. I'll need a book on note to know how to host it.

Ben: Oh, yeah. Good. Good point. I like that. Yeah.

So we just wrapped up a dev cycle , on Insights. We're doing that six week work cycle thing in two weeks of downtime or so, and so we're just wrapping one up and what we're adding and we have available, as an alpha today. If you go to the GitHub hash, you can get the Honeybadger gem that actually does a bunch of automatic instrumentation for you.

We already had Honeybadger-dot-event that you could call manually, but now we have an update to our gem that it subscribes those active support notifications callbacks, and it does things like puts in a Sidekiq middleware and subscribes those Puma metrics and things like that, and automatically reports that stuff to Insights.

So basically it's a just add the gem, flip on one configuration option, and now you've got your Rails app instrumented automatically. So that's becoming probably the next week or two. For those that are brave enough to try an alpha level of the gem.

Josh: And along with that, we have some additional dashboard templates that will be coming as well. That's the other side of the cycle that Kevin's been worked on working on. So, we’ll have more pre made templates, template dashboards, if you're using Sidekiq or if you want just a Rails performance dashboard, for example, the idea is that we'll have a library of these things, you can choose from that are just done for you and we know the structure of the events that you're sending.

And we can basically just give you the queries and the dashboard for free. So, we're hoping to have a large— a wide variety of these kinds of dashboards that for different stacks and things people are using. And then I think Kevin's been working on some charts, making the charts a little bit nicer to use, fixing some edge cases, when you have like lots of data points or whatever, the labels overlap sometimes, that sort of thing. And that's a tough problem. Charts are hard.

John: This is near and dear to my heart in that I hate charts so much. It's really brutal. I'm just about at the point where I'm like, “Okay, I'm just going to learn all of D3 and go all in and just, somehow magically”, which is not the right answer, but yeah, for Flipper analytics, I spent a bunch of time in charts and that is definitely— that’s the Lord's work, man.

Ben: What charting library did you end up going with if you didn't use D3?

John: I was using ChartKick, which I don't remember what it uses as its source. It's a ChartKick JS, and king-slash-ChartKick is the Ruby gem. But there's not like a perfect translation. From the Ruby helper to the JavaScript. And some of the things I was trying to pass through weren't quite working.

And I just could not get it to do what I wanted. I wanted to do something that's felt simple, it's the typical programmer problem where you think: we did it not because it was easy, but because we thought it would be. And I was like, I just want this one specific graph.

That's the percentage of enabledness over time that's the main graph, and then there's another y axis that's like the number of checks, just on the same graph. So it's on the one graph, you can see this is how often it's getting hit, and this is how often it's returning true and false, and, I mean, that just did not want to do— granted, I’m like shaving milliseconds and I've been backend for like, 10 years, but still, I felt like I was capable and found out quickly I was not. So, it's two graphs for now.

Josh: Yeah.

John: But someday.

Josh: It's great when you get humbled like that after so many years of doing this. It feels like it's a regular occurrence for me.

Ben: Yeah I know that story. When we started on Insights, we're like, “Yeah, let's just use D3 because then we have ultimate power. We can do whatever we want”. And I'm like, whoa, whoa, whoa, wait a second. That's a lot of work. Let's just find a library. And like every library has compromises, you know?

And yeah, it's always tough. How do I do this thing? Oh, I can't do that thing. Well, all right. Never mind. Yeah.

Josh: Yeah, we’ll get it done though. So, John, what are you all working on, at the moment, for Flipper? What's next for you guys?

John: So I think the biggest thing we're working on is a pricing change. We're going to be putting that out pretty soon. And, I'm sure we'll write about it too. That's one of the things that struck me when you guys were talking is— Ben's talking about writing about how things are built and then you're talking about like how other people can use those things that were built.

And I feel like that's the killer combo for devs, because devs, it’s like trust. And you want to see how it was built to know if you should trust someone. And then once you know that, then you're like, “I want to see how it works so that I can actually see if I'm going to like, you know”, and there's some mix of that and the order might not be perfect, but I really liked that go back and forth that you guys were talking about.

I think we'll end up writing about it as well because Ben and I talked about it the one night at Rails conf, might’ve been the first night for quite a while about generational pricing and stuff like that. So, that you have generations— It’s “Here’s our first iteration with these three tiers.And here's our second generation with these tiers and they're different.”

And which one is the current generation that people see, and leaving people on the old one, and letting them move to new ones, and all that kind of stuff, entitlements, et cetera., it's really a pain and it's not that hard to write, but you never write it from the beginning.

And so then morphing it is what becomes hard. Garrett's been working on a lot of that stuff. So, I think he's hoping to get that shipped and then get it written up. And then hopefully that's helpful to other people.

He's talking about maybe even making it some kind of generator kind of a thing where you could type in a command and then it would - shocking, generator, who would have thought he'd go after that after writing the book on it - but where you could type a generator thing and then it would just spit out, “Here's entitlements, pricing, generation, and how they all work together”, and docs on how to use them and stuff so that people could use them in their own apps, as not only a guide written form, but also here's the actual code that works and it's functional, which I think is kind of cool.

So, we've been thinking, yeah, about some of those kinds of things. So pricing is probably the next thing that's going to go out just because it feels like the most important thing to get right. And then there's some analytics are really close as well, which is just, how often are things true and false— like I was talking about before, and then when were they last checked is this, flag safe to delete or not.

Like, that’s I would say the number one thing people ask me about, and I don't know how it hits you guys, but I would like to delete this flag or which flags are safe to delete, and some kind of algorithm to figure that out. And without having client side, like, in the app instrumentation, it's very impossible to say that because “enabled” might just be a circuit.

Or “disabled” might just be— it's a circuit and you want a way to turn it on and off. So those are the two things that are the closest to going out right now on, on Flipper.

Josh: Nice.

Ben: Yeah, our process for removing old flags is just crazy. Going to that UI that you have in the gem, and okay, which ones are fully enabled? Okay, those we can go and delete from the code. And we do that, I don't know, once a quarter or whatever. But there are those ones that you never want to delete, right?

You want to be able to shut off that circuit, right? So yeah, that's, well, do we want to keep this one even though it's fully enabled? Yes, we do because we want to be able to turn it off at a moment's notice.

Yeah, so I was thinking, I guess in your UI you could probably have notes around that, right? Be like, “Okay, , don't delete this flag. We're using it for X, y, or Z”, or whatever.

John: Yeah. And we do. And we've also talked about having types. So actually allowing you to say: this is temporary, or this is permanent or some things like that. And then if it's temporary, put in a date of expiration, not where it will actually shut off, but where it will remind you. Obviously, you could use your own reminders and stuff like that, but something more into the product, I think makes more sense.

So, we’ve talked about that, as it looks like a nice option right now we have tagging and we do tagging and descriptions and stuff to do that internally. And we've seen some processes that work. So now we're like, “Okay, let's extract those processes from generic, little tag bubbles and wide open text to specific processes that can be in the app and have workflow.”

Josh: I think it was Justin Searls, maybe, who had a gem that— how did the— like it was a to-do gem? But it blew up with an exception in development, if it was past the date that it should have happened.

Ben: To do or die, I think is what it was.

John: Yep.

Josh: To do or die

John: That's so good, yep. Same idea, just, at, like, a different level. And we've done that a little bit of that too, with strictness of names. So if you type a name wrong, like in a Flipper-dot-enable-check, it'll raise an error in dev mode now, but it won't in production. Stuff like that, we've been trying to add those into the open source side, just to make it more convenient.

We're not typing, we're Rubyists. We're not— I mean, I guess now if you're a Rubyist, you do type, but just a little more safety of if you mess something up. .

Josh: Yeah, those little DX things are really important, to make it nice to use.

Ben: One thing you could do in your UI, for removing a flags, you could, if they— someone connects their GitHub project, you could actually open an issue for them in their project: “Hey, go disable this flag”.

John: That's a really good idea. I feel like integrations are the most obvious thing that we should be doing that we're just not right now, even just Slack, like almost everybody out there, that starts using Flipper, they built their own, “When this instrumentation from Flipper runs, it says enabled or disabled, post a Slack message”.

That's a very common thing. So I was like, we should just make that easy, one way or the other, that, it just makes sense. Yeah, you guys have really nice stuff for that. And we use the Slack integration to put the errors in and I even click resolve, and mark them as when they're gone and stuff like that.

And there's some other ones we use too, for like, deploys from Heroku and stuff like that. And it's just nice having it. We have— we always do like, an ops channel and just shove them in there.

So yeah, that, I think that kind of stuff would be really nice. It's just— it’s hard, you know how it is when small team priorities and you're like, “What's the thing that can make a huge difference”, and versus the other thing.

And then, yeah. And who to focus on, which target customer and all that. Yeah. So it's all very difficult. But yeah, good points.

Josh: One of the last things I just did with Flipper, I think it was within the last couple of weeks, we have this free t shirt offer when, say, enter your payment info early and we'll give you a free t shirt and we've done this— we’ve had— this has been like a long running thing that we've talked about before, even back with Starr on the podcast, but we finally ran out of shirts.

So, I need to order some new shirts, and I want to do like, a new design as we've had the same one for a while, so I'm going to do that. But, I got to turn these emails off. So people aren't asking us for shirts that we don't have.

And we use Heya my gem for sending drip style emails. We use that for our onboarding emails. So that's what sends out these things. I have this like, segment block that you can pass to a campaign, which is just like a Ruby class. And if the segment returns false or whatever, it doesn't, , , it's going to skip the email— that email to the user.

That was really convenient. I just dropped like, a Flipper check into a segment which is why I built Heya on the first place, because I wanted to be able to compose different Ruby tools to use with it. So, it worked really well, just like, you know, check the feature flag.

So, when we do have more shirts, I can flip it back on. And there were like, a couple of emails that I had to do. One was not sending the email at all, but there was another email where it was like, an email that gets sent, but it also mentions the T-shirt as a follow up.

And so, I use Flipper, in the actual template in that case, just to hide that part of the email. So, it’s kind of cool that you can use all these different— all this different Rails tooling, like in your marketing stack, basically.

John: I've been super close to using that. I've been so close— we use like, Mail Jet or something for Box Out just because that's the person that we work with that does marketing, that that's what they had used before, but you were talking about dev friendly tooling and things like that.

I had a kind of a rough time getting their API working, and found some bugs and fixed them and things like that. And I was really close to just being like, “All right, I'm just gonna throw Heya in", but then I was like, I don't know, is Josh going to keep this up to date.

Josh: There's definitely trade offs. And, even I still sometimes think, “Maybe we should have a proper email”, like, we use User List for sending broadcast email. So I've considered, maybe I'll move some drip campaigns over there.

Because, it would be nice to have some open statistics and other— be able to do AB tests and things. And the trade off is that you have to build that stuff if you want it. Like, there are gems for whatever the, um, I forget envelope, I forget what the one is for tracking opens, but you can do it with Action Mail. But you have to build all these things, so.

John: Yeah, and we ended up using User List because they allow you to have companies, which is so nice, because like everything else, it's like you're shoehorning into a flat structure or some— when someone could have one to many and it's been rough. So with Flipper, we use user list and I— but I'm like, “Ah, I'm not going to go back right now.”

And then switch Box Out over probably. Someday down the road, but yeah, they're super slick for that kind of stuff. And the event and the new workflow engines. Really cool too. I don't know if you've used that yet or not, but yeah.

Josh: I've looked at it. I haven't had a— had the opportunity to actually use it, but it— yeah, it seems like it'll be helpful.

John: We use it for a couple of things right now. And we even use just for random forms submission, like the program that we've been working on. We just put like, a bar across the top and you can click on it and it goes to a form page and that just submits to a user list. And so then we know these are people that are interested in that.

They go into a segment there and all that kind of stuff. And we don't do anything with it right now. Someday, we'll say, “Hey, it exists and you can do something with it”. But yeah, it’s— they make it really easy to do that stuff. So.

Josh: Yeah. That's cool. Well, shout out to UserList.

Ben: Link in the show

Josh: Yeah, Ben's always on top of the show notes.

John: That’s—

Josh: Yeah. So, we’re approaching an hour here— we can't go over an hour for an episode, because you know, people love the short episodes. So, what do you guys think? Is it a time to wrap it up?

Ben: I think it's a good time. Any, yeah, any parting thoughts for us, John?

John: , this was really fun. I enjoyed this and yeah, if you go over, you can just throw me under the bus. It's fine. Like, “Well, normally we stick to a routine, but this new guy was really chatty.”

Josh: No, this is a great, we just had a lot to talk about. And, I think people really appreciate hearing about having another developer tool, or business, to talk about in addition to Honeybadgers. So it's fun to compare notes and I've enjoyed it.

Ben: So next time content, more into content.

Josh: I do the marketing. We'll have to balance between like business marketing and, uh, and like the tech stuff, give a— have a nice balance. Cool. Well, I'll wrap it up here. So this has been FounderQuest, FounderQuest podcast-dot-com is where you can find us and all the socials and everything, John, what's your Twitter handle you want to share where people can find you online real quick?

John: J Nuna-maker N U N E M A K E R. It's really long, but it's just like, it sounds so.

Josh: Cool. You can go on Twitter or X or whatever and find John. I'm sure you've got your links there to find all your other things. Use Flipper of course, in your Rails apps. And yeah, so go on the podcast platform that you listen to FounderQuest on and give us a review and a rating, if you have the time and we'll really appreciate that and we'll catch you next time.

View episode details


Listen to FounderQuest using one of many popular podcasting apps or directories.

Apple Podcasts Spotify Overcast Pocket Casts Amazon Music YouTube
← Previous · All Episodes · Next →