Skip to content

John Nunemaker: Why AI rewards people who already have taste

I’ve long been an admirer of John Nunemaker, who’s software I’ve been using (and sometimes abusing) for most of my career as a Rubyist.

It’s one reason I was so excited to get him on the podcast to chat through how an already prolific creator is using today’s tools to produce even more – and sometimes to accomplish things he couldn’t do before.

Nunemaker co-founded Box Out Sports and Very Good Software (Fireside), and created the open source gems HTTParty and Flipper, tools quietly running inside a huge share of Ruby applications, including this show’s own.

John put it plainly: “Everyone who has taste, those are the people I’m seeing explode with AI the most.”

We get into why John gave up on focus years ago and gets more done because of it, the scaling crisis that accidentally created Flipper, and why knowing what to build has always mattered more than writing the code.

I also drop one of my favorite sayings from my newspaper days – “Demos over memos” – that seems even more relevant for today’s AI age.

Highlights

(00:00) Why taste is the real AI advantage
(01:15) John’s companies and twenty years of HTTParty and Flipper
(04:13) Why John gave up on focus and still gets more done
(09:10) How big Box Out Sports actually is
(13:54) The two ways AI changed how Box Out builds
(16:43) The scaling crisis at Words With Friends that created Flipper
(19:27) Turning an open source project into a real feature flag business
(22:17) Why feature flags change how you build, not just what you ship
(27:46) What’s next for Flipper: multivariate flags and safer runtime control
(30:48) Using AI to triage pull requests and chase CVEs on HTTParty
(38:48) Why people with taste are the ones exploding with AI
(40:33) Teaching his son to build multiplayer games with AI

Connect with John on LinkedIn
Connect with Chris on LinkedIn
Check out Axiomatic on LinkedIn

Transcript

JOHN NUNEMAKER
(00:00)
Everyone who has taste, those are the people that I’m seeing explode with AI the most. I feel like the people that I’ve seen that really have excelled with it so far are the people who excelled without it and who had ideas, but they just were constrained on time and brainstorming and research and all these other things unrelated to the actual ability of creating products.

CHRIS VANNOY
(00:24)
Welcome to The Hallway Track. I’m Chris Vannoy. This week I’m talking with John Nunemaker, a programmer who somehow runs three companies at once, Box Out Sports, Fireside, and Flipper, while maintaining open source projects like HTTParty and Flipper that half of the ruby world installs without thinking twice about it. We get into why you gave up on Focus years ago and gets more done because of it, how feature flags quietly changed the way you build software and why AI hasn’t made the hard part any easier. It’s just made the easy part faster. The building was never the bottleneck. The taste was. If your team just got a lot more capable and you’re realizing the constraint moved from writing code to knowing what’s worth building, this one’s for you. Howdy, welcome in folks. My guest today is John Nunemaker. I already know him, but could you introduce yourself to everybody else? Who you are, what you do?

JOHN NUNEMAKER
(01:15)
Yeah, sure. I’m John Nunemaker. It’s software. I just call myself programmer, but wear a lot of different hats. I’ve got two different companies, Box Out Sports, which is like social media, graphics and marketing and all kinds of stuff that anyone who has events and needs to promote them or people and needs to promote them. And then I also have very good software, which is like Fireside and Flipper. So Fireside’s a podcast host that we bought maybe two years ago. And then Flipper is a dev tool and I’ve got some more dev tools in the works too.

CHRIS VANNOY
(01:45)
Well, in addition to that, you’re also a pretty prolific, this is how I originally knew you, pretty prolific open source developer. I think when we first actually met, I’d already known your work for like 20 years now because HTTParty and Flipper, which we’ll talk more about later, are almost initial installs into gym files of Ruby projects I work on and always have been. So thank you for that very much. You’ve been a big influence on my career, believe it or not, just from those two things. And again, in the past, you also used to run an app called Gauges that did web analytics and that sort of stuff. And I was a long time customer of that as well back in the day.

JOHN NUNEMAKER
(02:25)
That’s awesome. Yeah. Gauges is a really cool one because that was my hernia project. I had three hernias in one year and were surgeries and all that. And I was not good enough to do client work because that takes some willpower, but I was good enough to hack on something. So I built that. And every time I hear somebody, there’s a warm spot in my heart for gauges.

CHRIS VANNOY
(02:44)
That’s good. And it is, sorry, this isn’t on the agenda at all, but that is kind of the funny, the projects that come out of when you’re laid up for a little while one way or the other, right? Or just low energy and I’ll do something on the side and you don’t expect it to do anything necessarily. Sometimes those end up being the things that we’re most proud of in a lot of ways.

JOHN NUNEMAKER
(03:03)
I actually think what would be my ideal way to work would be just that kind of stuff. And I think I would do better. I think I’d have a better career, more success, all that kind of stuff if I somehow figured out how to just do whatever I felt like when I had no energy. Because usually if you have the energy to do that, then imagine when you actually get your energy back, what you would do with it.

CHRIS VANNOY
(03:23)
Well, that’s why I have a business of one at this point. I don’t have any employees or anything. If I have a low energy day, it’s just like, well, just answer some emails today. It’ll be fine. Doesn’t work for everybody. It doesn’t always work for me, but when it does, it’s nice. Yeah.

JOHN NUNEMAKER
(03:38)
I actually have a business of more than one only because of the same reason because then if I have low energy one day, somebody else is still getting stuff done.

CHRIS VANNOY
(03:45)
That is the downside of running a business of one. It’s like if I have a bad day, there’s nobody else there. But you are managing a lot. You just rattle off a whole bunch of stuff. You got two companies, multiple open source projects, even older companies that aren’t there anymore. You also didn’t mention in the past you’ve worked at GitHub, for instance. You’ve worked at Notre Dame here locally inside of Indiana. It’s a large volume of stuff and it’s all good stuff. So how do you manage all that?

JOHN NUNEMAKER
(04:13)
I don’t know. So I think the easy answer for me that I’ve kind of come to is two things. One, the more you put on your plate and if you can come up with coping mechanisms for that stuff of handling the fact that there’s just always a delugion of things to do and you just prioritize and whatever and do the most important thing and move on or the most immediate thing that needs to be done, even if it’s not important. So that’s one thing. I think just over time I’ve gotten better. I didn’t do a bunch of things at first. At first it was like I just did my work at Notre Dame or at smaller companies. And then sometimes I would do a side project or sometimes I would do an open source project on the side. And so I got used to that.

And then it was like I just kept adding more things because I’ve been described sometimes by myself and others as a little chihuahua. When I get excited about stuff, I just don’t shut up and I go hard on it. So I think that’s part of it. But simultaneously, that’s a lot of effort and everybody always tells you to focus. They always say focus.That’s how you do something big and great and all that kind of stuff. And I always felt like I was kind of honestly broken for quite a while because I couldn’t focus on one thing. And then I think it just eventually I realized I get more done because there’s more things to do. A lot of times you get jammed on something or you have to process something in the background. And then if you only have one thing, you go to zero.

There’s nothing else. Or maybe you go to a little half or quarter or something where you’re just kind of checking email like we were talking about or doing other things. But if you always have a very next most important thing on three different projects, if you get stuck on one, you just go to the other. And then when you get inspiration, go back to the first. So I think in all, what I look at it is like, I don’t push one thing forward as far or as fast, but I push lots of things forward on a pretty regular basis. I’ve got a lot of coping mechanisms and stuff in place for how to handle the pressure when they all go bad at the same time, which occasionally happens. Yeah, I imagine. Yeah, and stuff like that. So that’s what’s I think helped me a lot is just those two things.

So one, I feel like I get more done because I always have something I can switch to that’s interesting. And two, I can kind of. I gave up on trying to focus maybe three years ago because I was just like, you know what? That’s just not me. I can’t do it. I sold speaker deck to a friend and I mean, honestly, I kind of regret it. I still help him on it now because I like working on it. I just do it on the side and he pays me. And it’s just because I thought I needed fewer apps. And then it was like, no, I just like having a big variety. So yeah, there’s no specific thing I can point to. It’s just like they say that the dumb quote is pressure makes diamonds or whatever. The more you get used to a certain amount of things and I liken it to an ER doc, like compartmentalizing.

I just compartmentalize each thing and it can be completely on fire over here and I can just focus on this thing and that’s okay. I just gotten better at doing that. So that’s kind of how I manage with it.

CHRIS VANNOY
(07:23)
Yeah. One of the things I’ve discovered is speaking of coping mechanisms. If I don’t have something to do, my brain will conduct with stuff to do, right? Yes.

JOHN NUNEMAKER
(07:31)
Oh yeah, you stay busy.

CHRIS VANNOY
(07:33):
And sometimes that stuff is not all that useful. You seem to fill it with useful stuff, which is interesting sort of productive coping mechanisms, probably better than mine.

JOHN NUNEMAKER
(07:43)
It does kind of come from a spot of brokenness though, I think, because I’ve done a lot of open source, but even the open source and stuff, I feel like inevitably a lot of that, the only point of it was to, and I don’t know if I’ve ever said this out loud, and so maybe it makes me a horrible person, but I’m like, the point of doing the open source, the point of all the blogging was I wanted to create a reputation so that eventually, because I just saw other people do that, they create a reputation, eventually they turn it into money. So it’s like make reputation, question mark, question mark, question mark, and then profit at the end. So that was why I did it originally. And then part of it was not as enjoyable. And we could talk about it later, the valleys in the mountains of doing open source and free things and stuff.

But yeah, overall, I think when I do something, I want to see the result. And the results usually someone gives me money for it just because it proves that it was, I don’t know, that there was something interesting about it, that somebody else got interested. And I don’t know. So that’s where a lot of times it ties back to and it feels dumb sometimes. But yeah, so that’s the only reason why I focus on certain things instead of others.

CHRIS VANNOY
(08:47)
Well, keep in mind, you’re talking to someone who’s doing a podcast for no reason other than talk to cool people like you. And maybe there’s a reputation of money you added sometime. I don’t know. There

JOHN NUNEMAKER
(08:55)
Will be. Yeah. If you do it for long enough, I think. Obviously you take it very serious and you do a good job on it. So I feel like if you do that for long enough, it’s just time.

CHRIS VANNOY
(09:04)
Yeah, just time and effort always is. It’s a shame stuff doesn’t happen quicker. Anyway, so of all the stuff you’re doing right now, is BoxOut the primary thing?

JOHN NUNEMAKER
(09:13)
Yep. Yeah. So I joke that I have seven, six and five figure businesses. So BoxOut’s seven, Fireside six, and then Flippers five, but pretty close to six. So then it’ll ruin that. So it’s the biggest, and I appropriately split up my time based on that.

CHRIS VANNOY
(09:31)
Yeah. How big of a team do you have working on BoxOut these days?

JOHN NUNEMAKER
(09:35)
It varies a lot. So employees, I would say it’s like the four owners. And then we probably have another three or four at least employees maybe. I’d have to think about it and count. Don’t do public math, so I won’t do that here. And then we generally have another four to six contractors. So it varies, fluctuates at any given time in between 10, 15, 16 people. When we have our Christmas parties in January, there’s typically 15 or 20 people plus extras.

CHRIS VANNOY
(10:03)
Yeah. And how long has that app been around at

JOHN NUNEMAKER
(10:07)
This point? It’s old. I think this, we always call it seasons because everything with BoxOut is sports because it’s Box Out Sports to start. And so I think we’re on, I want to say 13, season 13 or something like that. I joined it at about 2019, so about six, seven years ago. So about season six or something, I think. So yeah, it’s been around for quite a while. It’s funny when people sometimes call it a startup because they don’t know it. And having 10 people seems small, so it must be a startup. And it’s like, no, actually, we even had a private equity guy that we were talking to at one point. He was like, “You broke our frame for companies.” Because they basically, they saw us, ignored us and went to a competitor. They were trying to buy them. And then they went to the competitor.

The competitor was like, “No, they’re kind of delusional about amount.” So they kind of dropped it because they’re like, “Well, those are the only two people in the space. And the one seems too small because they only have one or two people on LinkedIn. There’s no way they can have enough revenue that they would be worth buying.” And then we had randomly put a one-pager out at one point in our time, and the private equity person saw it and was like, “I know who that is.” And immediately reached out to us and they were like, “How big are you?” And so then we told them and whatever. They’re like, “We totally changed the way we look at companies now on LinkedIn and other places because we realized we can’t just assume they’re small just because the presence is small. If they’re focused on automation or other things, it’s possible.”

CHRIS VANNOY
(11:32)
Yeah. What is the trick to being able to, like you said, build sort of a company that’s bigger than its team size? What were some of the key points along the way that allowed you to be able to do that and sort of break that frame?

JOHN NUNEMAKER
(11:44)
I think it just comes back to laziness, honestly. I mean, Steve and I in particular are both, we’re programmers, developers, designers, whatever you want to call it, app people. And we’ve done it for a long time and we’re just lazy. We just have no patience for needles and for painful and tiny little things. And so everything that got painful, we would just automate it. So on one side, I think it’s laziness. And then on the other side, we have Robbie and Robbie sales and stuff like that. And he’s the opposite of that. He’s just like hard work, hours grind. And so I think the two of those sides together of someone who wants to grind all the time, and then other people who are like, “Well, what if we leveraged some of that so you weren’t working?” We had problems with checks for a while.

Schools want to write checks. And so then nonpayment and tracking nonpayment started to become a big deal when I started. And so thankfully we got in the pay by check beta for Stripe, which now is coming to an end, but it helped a lot. And we got stuff like that going and automated that. And then we locked down people when they hadn’t paid. And so then they started reaching out and then we could keep track of it a little better. I remember one of the first things I did, I don’t remember what it was, like 50 or $70,000. I just shut off a bunch of people because they hadn’t paid in two, three years. And I did some reports and caught it. And I just wrote some stuff that was automatic. They would just be shut off if they hadn’t paid. And literally the first day, I think it was 20 grand of people who were just like, “Oh, we haven’t paid?

Okay.” They didn’t even know. So it’s just automate all the things, I think. And then you also need to grind at times. And Steve and I do, we’ll grind really hard when we’re on something new, like some new product or feature or something like that. And then once it’s out, then it’s like, okay, now let’s relax a little bit and not go as hard and be lazy. But I think it’s just kind of that juxtaposition probably. Good balance.

CHRIS VANNOY
(13:39)
No, it’s always good to have salespeople who want to grind by the way. That’s generally what you want to hire for. Lazy salespeople you don’t want.

JOHN NUNEMAKER
(13:47)
Yeah, I could totally see that. Yeah.

CHRIS VANNOY
(13:49)
Yeah. It’s also interesting that the app is old enough that it’s pre-AI and post-AI. Has AI-powered workflows changed how you work together or how box out works these days?

JOHN NUNEMAKER
(14:01)
Yes. I would say the biggest change is amplification. So number one, we get a lot more done, a lot more done. So we have shipped so much in the last six months. So I think that’s probably the biggest change is amplification. The other change is doing things we would not have done before. So things our customers were asking for, but we were like, “You know what? We’re in our niche. Doing what they’re asking for is totally different and very difficult. So we’re just going to tell them, sorry, we’re built for speed. We’re not built for customization. If you want to get your job done fast and you don’t want to worry about the size of a font or a logo or things like that, use us. If you want to tweak things, then use somebody else. So now we’re like, what if we did both?

What if we actually just, because the blocker is not building this really complex, but recreating Photoshop in the browser, it’s not hard anymore. So we’re just like, okay, let’s just do it. And so we’re going to be releasing that pretty soon where you can basically do Figma Photoshop style stuff in the browser to make box out templates and then on repeat, connect them to data and ship that out really fast. So I think those are the two most obvious AI differences are amplification. So we’re getting way more done. And then two, we’re doing things that we said no to before because it seemed too hard and too daunting and now we did them in a month or two.

CHRIS VANNOY
(15:28)
That’s the interesting AI use cases. Lots of times I’ve looked at are what things were out of reach before. Or you’d have to hire an army of mechanical terks or something, which is generally what I think of AI sometimes. And what sort of stuff for that is now pulled down into reach? I was in a similar space where I was working in MarTech, like marketing technology, where we were doing account-based marketing sort of stuff. So you’d want to do personalized advertising based on the account you’re actually reaching. And it’s like we can’t really scale that across, back in the day, 2000 different companies or something. It’s going to be a pain in the butt. If I were still at that job today, AI makes that really pretty easy or straightforward. Sorry. I coach people all the time never to say things are easy. You just say they’re straightforward.

We know how to do that. Cool. The other sort of axises that you mentioned are the things that are either open source or have an origin in open source. The one that’s been about probably the most impactful to my own career is Flipper. Can you talk a little bit about the history of that and how you grew that from a very successful, to my mind at least, open source program that I abused the living hell out of into an actual business?

JOHN NUNEMAKER
(16:43)
Yeah. So I mean, it goes back even to how did it start, I think. Because how it started was I was working on Words with Friends at the time, like an old iPhone game, and we were having all kinds of scaling issues because people just played it like crazy. A bunch of celebrities got on it and just caused problems. And so we were trying to roll out a new caching system that would be a lot more effective, but then you have a cold cache. And so I kept rolling it out and having to roll it back because the whole site would just go down because you have the cold cache. And so I was talking with my buddy who I was working on, Jesse Newlin. He was like, “Well, what about this thing called rollout? It’s like feature flags and we can do a percentage rollout.” I was like, “Okay.” So I threw it in and it worked.

And then I was like, “Okay, future flags are amazing. I just went 1%, 5% until the cache is warm enough and then let it rip.” And I think because of that, I was like, “This is awesome.” But then on our particular infrastructure at the time, Redis was the smallest bit and rollout was only Redis. And I was reading these whatever gangs of four and all these pattern books and things like that. And they were like, “Adapter pattern.” And I was like, “Yeah, that makes total sense. You should be able to have your future flags in ActiveRecord or environment variables or file on disk, Jason, whatever you want to do should be fine.” So that’s what it started as. I was at GitHub at the time. I had moved on from Words with Friends to GitHub. And then again, I just always hacked on the weekends and I was like, “Let’s just see what happens.” And so I started working on it and it came out just, I really liked the code a lot.

It felt right, good, clean, all those kinds of things. I was like, “This is awesome.” So I was like, “I love this, but I just made it.” And I was like, “Well, what you do when you make something is you just releases it as open source so people can enjoy it if they want to.” And so I did, and I never used it. I never actually had it in an application at all. And two years in, it’s, I don’t know, back then a lot, hundreds or thousands of stars and tons of people are using it. And I still have never used it in a single application for myself. I just was like, “I know the problem. I know what needs to be built and I built it.” So that was the start of it, which I think was kind of cool and different. And it also was juxtaposed against HTTParty, which got to be super popular.

And it kind of drug me down and I hated it. And so then I gave it away to other people and they maintained it and they did a fine job. And then eventually they get tired of it. So then it’d go back to me. And there was all this kind of like. And I got burned out because people just expected you to do things. So I was like, Flipper, I’m going to do differently. And so Flipper, I very intentionally was like, I want to make it more of a community so that it’s not just me and so more people are involved. So every time somebody shipped a couple good PRs, I asked them if they wanted to be a maintainer. And if they said yes, which I think everybody always did, then I’d add them as a maintainer, put them in the repo, all that kind of stuff, give them access everywhere.

And I still lead it as, I don’t know, like a dictator or whatever. I still said what got in and what didn’t. But other people could help and get involved more quickly. And I was like, oh, this is really cool. Seeing other people take ownership over it was actually awesome. And then I was at GitHub and I was done with big companies. I’d been there five years, six years, I don’t know. And I was like, “Well, what if I turn this into a business? I bet somebody would pay for some of the stuff, the tooling we’ve built in GitHub around the open source project to make it audits and stats and all this kind of stuff.” And so I was like, I saw Sidekick and Mike Perham and I was like, “Well, I’ll just do that.” So I started working on it a little bit.

Not the ProJam, but more like a commercially hosted thing because building all of those features for every database backed adapter seemed not fun. I was like, “Maybe something should just be shared in one space.” So I was like, okay, well how can. First problem is you don’t want to build HTDP in a request.That’s too slow. So I’m like, okay, how can I make me disconnected from their application? So their application works and it can get sync and stuff like that. And that’s when I started thinking, okay, sync, import, whatever. So I was like, “All right, let’s just throw some plans on it and kind of see what happens.” And then I ended up Microsoft bought GitHub in the meantime before I had even fully released it. And so then I started on Box Out with those guys because Steve was my partner in Ordlist before GitHub, and we live close to each other.

So the origin is basically just this really organic thing. It was like I was just tired of working at GitHub and I was like, “I need to have a backup.” And then randomly, I remember when I first decided I was going to build it, I saw LaunchDarkly and it announced eight million in funding. And I was like, “Ding, I’m onto it.” I

Don’t mean that much. Yeah. Yeah. I was like, “I could do this with way less than that.” And then the week after Split announced that they had, I don’t know, seven million in funding. And I was like, okay, now we’re talking a lot of money. So that’s when I started, I was like, okay, I can make this work. I’ll do something. And again, if I had just released it, I think it would be much bigger now than it is. I controlled it too much and like, well, it’s not good enough because of this. It’s not good enough because the product side of me was like the MVP kept getting bigger. And then eventually I was just like, this is stupid. We’ve been using this for two years on BoxOut. We need to just slap a plan on it and let people pay us. And so we did and people started paying.

And so then we were like, well, what if we change, do things differently, et cetera. And so that’s kind of the metamorphosis over time from per se pricing to just fixed plans and all that kind of stuff.

CHRIS VANNOY
(22:17)
Yeah. And I think what that story helps illustrate is the power of feature flags, generally speaking. Flipper was very early, an easy way for me to build it in the applications. And I mentioned earlier, I abused living crap out of it. So because this was when I was at Sigster where we were doing email signature management,

Which again, it’s a pretty dumb idea. But it had lots of interesting clients and interesting data to sort of play around with. And we used Flipper to change how we worked more than anything else so that I could hire relatively early career folks and give them sort of a sandbox to play in where they could just push the production anytime they wanted. We were deploying dozens of times per day. And then they’d all be right behind a feature flag in Flipper that then they could go in and turn back off if it broke something. Something like that. Or we could do user acceptance testing where we could have a whole page of the application behind a feature flag, be working on that for weeks at a time and then hand it over to add in customer success or the CEO or the marketing team to go figure out how it all works and that sort of thing.

We built our entire way of working around Flipper to a degree. Not even to a degree actually. I wouldn’t have been able to do the things we did without it. In addition to that, the abuse part, and this is why people have to be careful with feature flags. This isn’t a problem with Flipper, it’s just feature flags generally. It’s like we also stored a lot of licensing information and things like that in there. This customer has access to this thing. And it’s like that got painful after a while, but that’s not the software’s fault. Yeah,

JOHN NUNEMAKER
(23:56)
I can see that. But flags are very close to authorization and entitlements. They’re very intertwined. When you start out, you can have them be what, it can just be that layer. It can initially. But as it grows, you need a new layer that’s like authorization. Then you use the flag inside of that. That’s what we typically do at BoxOut and other places. But it can totally be that entitlement bit for a little while because the whole point, and I think what’s so powerful about it, and I don’t understand how people build without it. Hearing what you’re saying, I totally agree. I do the same thing. I can’t function without them. And even as one person on a solo project, I have five, 10 flags always. Turn JavaScripts off, make someone an administrator, all these random things. And I’m like, I can’t fathom. I tried a tagline for a long time that was like control things at runtime or something like that because I kept thinking, what is the reason that everyone who starts to use flags, you have to pry them out of their cold dead fingers.

And it gives you so much control at runtime. The

CHRIS VANNOY
(25:01)
Thing I’m pointing at is not even the technical aspect. It changes how you think about building software. It changes the way you work. It’s not necessarily the technical end of it because at the end of the day, it’s just a quick check. Is something on or off? Yeah. I’m not disparaging your work. You did fantastic work so that I don’t have to think about it, which is great. It’s the best software is the one I don’t have to think about. Conceptually, it’s relatively straightforward. But if you really absorb it in, you change how you think about how to build software, right? Yes.

JOHN NUNEMAKER
(25:33)
And

CHRIS VANNOY
(25:33)
You end up adapting everything to, can we wrap this in a flag so that it gets you into, this is a phrase from back when I worked in newspapers, somebody told me one time. Is preferred demos over memos? How can we quickly just get something on a screen that somebody can react to? And if it’s behind a feature flag, who cares? Nobody sees it. Yo didn’t break anything. It’s fine. Just get it live, get it into production and start getting feedback. I

JOHN NUNEMAKER
(25:58)
Love demos over memos. I’m writing that down.

CHRIS VANNOY
(26:01)
Yeah. That is a very old newspaper phrase that I’ve carried with me for 20 years now. I can’t remember who told it to me. It’s just one of those things that’s just lodged in the back of my head. I mean,

JOHN NUNEMAKER
(26:12)
I saw the same thing at GitHub. At GitHub, we could deploy from chat and you’d go to deploy. And eventually it got to be there were so many people trying to deploy at once because all our things were turned on and off with environment variables. So you had to deploy to reset. And so it started getting so long, we had to create a train, a deploy train in chat. So you have to say, “Cue me to deploy this.” And then chat would ping you and say, “You’re up.” And if you didn’t start deploying in five minutes, it would kick you out, go to the next person, and you had to get back on the train because we could only do one thing at a time. And then you had to deploy, you had to wait 15 minutes to make sure the site wasn’t down. So it started getting really hard to actually get code deployed.

And so that’s when I was on paternity leave actually. And then a couple of the guys there were like, “We need future flags. That way we can get the train to be shorter and get people’s code in and have the testing changed from separated and isolated from the deploy, the actual mechanism of getting the code out.” And so they were like, “Let’s just use Flipper because John’s here.” And so they did, they just used it. They did a couple of upstream contributions, threw it in. And I came back from paternity leave and bam, it was there and it was working. And when I left in, I mean 18 or 19, they were doing billions of checks a day through Flipper. I mean, it was just like we had several hundred flags at any given point in time and everybody used it. It didn’t kill the deploy train, but it dramatically shortened it for, I mean, good three, four years probably.

And then eventually we had thousands of developers and it started becoming a thing again. But yeah, it does. It changes the way you work because if you can change something at runtime instead of at boot, everything gets easier, less stressful, less scary. It’s this really cool thing. And I think that’s the next stage of Flipper is I’m going to start adding more of those kinds of controls and things to give you safety because I think you need that even more with AI. In my head, I’m like, we need controls at runtime that are not just true/false, that are multivariate. So they should be able to be strings or integers. You should be able to set Chris’s limit. The default limit is 20, but Chris’s is like 30. And it should be the same process as Flipper. And so you have all this stuff that’s just dynamic at runtime.

And then eventually it can go even farther and you can do GitHub scientist style stuff where you can actually run two code paths, return the one, measure both and measure the mismatches and know if your new code is actually safe and accurate. I think those are the next stages of things I want to build for it. Yeah.

CHRIS VANNOY
(28:54)
I’m trying to think if I abused it in a way similar to that because you could probably bend it to get it something similar today. I probably did it.

JOHN NUNEMAKER
(29:02)
Well, now there’s expressions and they make it really possible. They’re basically like lisp at runtime. It’s like a JSON structure that allows you to make any and/or groups. And then it allows you to do. I was working on include, exclude, contains, all that kind of stuff. But full on programming of if this property equals this and this other property’s greater than this and the date is now or it’s a Monday or all that kind of stuff, you can do that now with expressions. Yeah, it’s basically programming at runtime now. So that’s when I was like, well, now all I need is instead of just being true/false, I just need to return a type and have an early return. So if you’re in a certain branch, you should be able to return two and have it stop evaluating the rest. There’s two small programming concepts and all of a sudden you can literally program anything at runtime, which is really cool.

Yeah.

CHRIS VANNOY
(29:53)
Which is the interesting thing. We’re circling around AI a little bit. Anytime I look at new AI for Features, it’s some bit of AI that just has a tiny bit of programming baked on top of it or underneath it. I looked up loops and I’m like, oh, you’re inventing cron jobs. Cool.

JOHN NUNEMAKER
(30:11)
Yeah.

CHRIS VANNOY
(30:12)
Every time I look under the hood, it’s like, oh, okay, cool. I get what that is. Speaking of open source and sort of AI, your other major project you mentioned earlier is HTTP already, which is one I use constantly also because I think you mentioned this when we talked earlier is why it exists in the first place is I got tired of. I don’t like looking up how net HTTP works and having to write that down every time. So I just slap that in the gym file and go on about my merry way. So how is maintaining that going right now and how is AI impacting how you maintain open source software like that generally?

JOHN NUNEMAKER
(30:48)
Yeah, it’s going really well. I mean, I think a couple things I mentioned on X recently and some other places is one, when I get a PR, I tend to get a better PR now from somebody else in the community because it’s like Claude Fable or something like that. You’re getting an actual pretty close to ready to ship PR and it’ll have tests, it’ll have. Whereas before it’s like, well, I don’t have a lot of time. So they just throw the code in there of like, here’s what I tweaked and it works. And it’s like, use it if you want. Then I got to research, I got to do all this stuff. Now it’s like I get a PR that’s pretty fully shipped. And on top of that, I can triage it really fast because I can just say, I can pop it in Codex or Claude and be like, review this and let me know if anything’s missing.

And it’ll do it and it’ll say, no, it looks solid and I can merge it. And it passes my eye test and we have a test suite because obviously I’ve done that over time. So I think that’s the first thing I’ve noticed is the quality of submissions are much higher. And then again, I guess I’m lucky in that it’s not insanely popular. It’s not like OpenClaw or things like that where they’re writing whole things just to triage the triage.

I don’t even get a PR every week, so it’s pretty maintainable from that standpoint. The other thing that’s helpful is Claude gave me, I applied and I got a 20X for free. I was already paying for a 20X, but I applied for HTTParty and Flipper and they were like, sure. So I got free 20X for six months and I was like, okay, that’s cool. So I was like, well, I can’t have that and not actually use it for that. But I was like, you know what? HTTParty hasn’t gotten a new feature in a long time. It prides itself on reliability and on backwards compatibility and that kind of stuff. All my projects, I typically never go 1.0 because. And people are always like, how can you not be 1.0? And I’m like, because I never break backwards compatibility anyways. Yeah. Yeah. And it’s never done.

And so I can never decide I want to put this in here, this line in the sand. So for Flipper, honestly, again, I only did it for marketing. I was like, I’ve never had a 1.0. If I make this 1.0, people will notice. And that was right when we came out with paid plans. So I made it 1.0 just for that.

CHRIS VANNOY
(33:02)
Yeah. When you ask people to pay for it, you kind of have to say it’s done too.

JOHN NUNEMAKER
(33:05)
Yeah. Yeah. And I’m going to do the same thing for HTTParty. So it’s going to go 1.0. It’s probably going to be soon and I’m going to have t-shirts. And it’s not going to say 1.0. It’s just going to when you party, you must party hard or Gem Install HTTParty or we’ll see what I end up. Chris Oliver recommended a party animal, HTTParty Animal, which I think is a good one.

CHRIS VANNOY
(33:30)
I suddenly wonder if Andrew W.K. Does cameo or something.

JOHN NUNEMAKER
(33:34)
Oh, that’s a good idea. That’s a really good idea. I’m going to jump on that. I haven’t looked at it.

CHRIS VANNOY
(33:39)
Yeah. Yeah. Or maybe somebody who knows him will be listening to this and could put him in touch

JOHN NUNEMAKER
(33:45)
Because

CHRIS VANNOY
(33:46
That’d be pretty cool. Anyway.

JOHN NUNEMAKER
(33:48)
That would be very cool. And it’s funny because I don’t even know him and I’ve never even listened to. I don’t even know that I’ve listened to the song or anything. But I knew of it and it stuck in my head and it was fun. Now it’s affected every

CHRIS VANNOY
(34:04)
Rubyist in the world.

JOHN NUNEMAKER
(34:06)
That’s right. Yeah. And that’s another thing with open source too, totally digressing, is just like there’s not enough fun. People don’t put enough fun in it. And I feel like even Flipper has an option that’s called config.fun equals true or false. It defaults to true. And if you turn it off, we take away all the fun parts. So we take away the blank slate of the Flipper UI for a long time was Taylor Swift’s video blank slate. And it’s just stuff like that. They’re fun. And I remember at one point somebody was like, “Can we turn this off? This is a professional thing.” And I was like, “Sure.” And I was like, “Config.fun equals false.” I’m like, “There, suck it. If you’re going to turn it off, you’re going to turn off all the fun. You’re not going to enjoy this at all.” So it’s made a big difference, I think, in one, the level of contributions.

Two, my interest in just maintaining it because I’m like, you know what? Flipper out AIM, because it’s commercial and so it’s making money. And so I’m like, yeah, I’m going to add new things to it. I’ve got ideas. It’s always been my favorite project no matter what anyways. HTTParty, I was like, well, maybe it needs some new features. Like what if I just, and not that this is the right attitude and not that I’m actually going to do it, but I was like, what if I just crush every other HDP library? Everybody who switched because HDPX has a better API or Faraday allows persistent connections or something else does streaming better. I was like, what if I just made it so that HTTParty was the most fun and the most features and the most performant? And that’s a doable thing now. It wasn’t before.

And so I started, basically had fable research every other HDP library to be like, what do they do better than HTTParty? And get their signature thing. I put that into a doc. I ranked it based on whatever it could research to find of what people are asking for in HTTParty and other libraries. And I went to other languages as well. And I was like, just make me a doc ranked by your interpretation of importance of what we should start adding to HTTParty. And so persistent connections are pretty close to done because that seemed to be the number one thing that came up. There’s instrumentation ideas to hook in active support instrumentation so you can more easily send that instrumentation somewhere for HTTParty, the calls that are happening. There’s some retry stuff. There’s a whole bunch of things on a list now that I’m starting to work through.

Security, I did the same thing for that. I was like, make a list of all the security issues. It helps for triaging reports and stuff like that because most of the time when someone sends me a report, I’m like, bro, I don’t even know what language this is. You’re using words and bugs and hackery to recreate this that I don’t even understand. But Fable does, Soul does. And so I can actually triage and release CVE updates, which is cool. So it’s made a huge difference from all that standpoint of A, making it easier to maintain, B, getting better contributions, and C, giving me ideas for what to do next and helping me implement them.

CHRIS VANNOY
(37:11)
Yeah. Which again, ties into that earlier sort of thing of what things does AI let us do that we couldn’t, not couldn’t do before, but wouldn’t do before? You were going to spend –

JOHN NUNEMAKER
(37:20)
We take too much time.

JOHN NUNEMAKER
(37:21)
Yeah. It’s too much time. It’s two weeks of time of searching around the internet and looking at competitors and trying to figure this stuff out. And you could just throw it at that and it’s back really quick. So you end up building a library. It’s like having a research assistant in a lot of ways handy.

JOHN NUNEMAKER
(37:36)
Yeah.

CHRIS VANNOY
(37:37)
And it’s also your story, sorry, connecting weird topics. Reminded me, are you aware of there’s a luxury clothing retailer called Quince that essentially the way they work is that they look at what are heritage legacy clothing luxury goods? And then it uses AI to go figure out what do people complain about it? What do people like about it? And then they make a version of it that fixes all the stuff that’s wrong, except it’s like a quarter of the cost or something.

JOHN NUNEMAKER
(38:02)
That’s all a business.

CHRIS VANNOY
(38:04)
Yeah. And again, it’s this whole universe of what are things that weren’t in reach before that are now?

JOHN NUNEMAKER
(38:12)
Yeah.

CHRIS VANNOY
(38:13)
And then it’s to your point, what it increases I think are, like you mentioned with Flipper, safety. How can you make sure what we’re doing is safe? And the other thing is it brings back in taste and judgment. You mentioned product hat before. That becomes more important as a developer and an engineer because you have to be able to figure out which of these things actually matter and are actually important and which things are good to do. You still have to say no sometimes, even though AI makes it very easy to say yes in a lot of cases.

JOHN NUNEMAKER
(38:48)
I actually think even maybe going farther, everyone who has taste, those are the people that I’m seeing explode with AI the most. It’s almost like if you have the taste, then it amplifies you and it amplifies you by a different multiplier. And if you don’t, then it’s the same thing. You’ll create more of the stuff that doesn’t have taste or something. But I feel like the people that I’ve seen that really have excelled with it so far are the people who excelled without it and who had a taste and who had ideas, but they just were constrained on time and brainstorming and research and all these other things unrelated to the actual ability of creating products. It’s been really cool to see.

CHRIS VANNOY
(39:33)
Yeah. And it also fits in that general theme of an accelerant in a lot of ways. And it’ll accelerate both the good and it’ll also accelerate the bad. So for a lot for my business outside of appearing on podcasts is when you insert AI into a dysfunctional engineering org, it explodes the thing. Oh, I bet. Yeah, it makes an absolute mess. It just enhances and accelerates both function, like the good stuff and the dysfunction. Whatever’s broken, if it starts going at breakneck speed, it’s going to explode all over the place and you’re going to see all the parts that were broken to begin with. That you were just slow enough that nobody ever noticed or it didn’t hurt all that bad. Suddenly it starts hurting a lot,

Which hey, I’m available for hire. Anyway, John, thanks so much for joining me today. I really appreciate it. One note we didn’t get to, both of us are dads. We have kids that are also growing up in an AI age. I think mine are a little bit older than yours, but you had shared a really interesting story about how you’re working with your kid to kind of learn how to follow in your footsteps maybe a little bit tiny bit and just how to navigate this world of AI being everywhere. And I wonder if you could share that with us.

JOHN NUNEMAKER
(40:48)
Yeah, sure. So I mean, I think where it started is I saw somebody who was like, there’s a couple different approaches for AI. One is keep your kids from it, protect them, blah, blah, all that kind of stuff. The other one is teach them how to use it and how to understand it. And I’m like, I just feel like that’s your job as a parent no matter what is like here’s the world, here’s what’s in the world. Here’s a lens to look through and how to think about it when it’s beneficial, when it’s not, how to find that line for yourself, all those kinds of things. So with us, it started as pictures to color. So that was the very beginning. So it was like creating AI pictures to color. So my kids never really colored in coloring books. But once in a while they would do it, but they’d get bored really fast on it.

And then one day I was like, well, let’s make something with. It was when Bing got GPT whatever. Yo could use the image gen from ChatGPT in Bing for free within certain limits. So I was like, let’s just make some stuff there. So we made a bunch of fruits, riding vehicles and with Mohawks. And so it was like a banana on a motorcycle with a Mohawk and a strawberry on a motorcycle with a Mohawk and just that kind of stuff. And he just colored pictures forever. This was years ago. And I was like, okay. I’m like, that’s interesting. And same with my daughter. They started to hear me make the prompt or see me make the prompt. And then they’re learning how to recreate the prompt. So then they’re wanting me to just let them make the prompt. So they’re starting to learn this prompting and stuff.

So then I was like, well, I bet AI could make a bedtime story. That’s another thing we always do. So we started doing AI bedtime stories and completely unique stories. And we would do long threads of hamsters in the evil dark space and all this kind of stuff. And then from there, it was maybe a year ago. So he’s like 11 now. Maybe a year ago we started getting more complex. He wanted to prompt more, he wanted to do more of that. And then maybe three, six, probably six months ago, he said something about, oh, he wanted a Nintendo account, I think. And I was like, nah, I don’t want to figure out parental controls and all that. Just play offline. It’s fine. I played offline my whole life. Uphill both ways in the snow.

CHRIS VANNOY
(43:12)
Yeah, yeah. You want to play online, you had to go to someone’s house.

JOHN NUNEMAKER
(43:15)
Exactly. It was a LAN party. And I was like, “Well, what if we just recreated it and we made it so you could play with your friends that way?” And he was like, “Well, we can do that.” And I was like, “I don’t know, let’s find out.” I went into Claude and was like, “I want to make a game, blah, blah, blah.” And he’s just watching. And then I was like, “All right, do you have ideas?” And he’s like, “Well, yeah, I got some ideas.” I was like, “Here.” I let him, I use Whisper Flow, I hit the button, he starts talking and we generate this version that was playable. And I was like, “Well, can we make it 3D?” So then we made it 3D and then we had chickens versus zombies. And the chickens shoot eggs out their butts to kill the zombies or whatever.

And it was kind of Minecraft-like, and it was cool. And he’s like, “Okay, well now I want to recreate Minecraft and I want to be able to play in my friend’s world and they play in our world and we can portal to each other and we can chat back and forth.” And I was like, “Okay.” Again, I’m like, “I’ve never made a game in my life. Never done 3D programming.” And we did, we made it. And it was actually like I dropped it in this dev chat that I have and all of us, three or four of my friends are playing this game that we made that’s like Minecraft. And we’re all like, “Oh my gosh, do this, do this.” And it reminded me of Minecraft back in the day where you had Campfire open and then you had Minecraft open and you’d be chatting with your buddies and we are on the same shared server.

And I was like, “There’s just something cool about multiplayer like that.” And I was like, “Well, how do we make multiplayer without me having to set up all these servers and whatever?” And they’re like, “We’ll just use Cloudflare and Durable Objects.” And I was like, “Oh, this is actually the most cool use of Durable Objects ever.” So every world is a durable object and everybody connects to that world. And then you can create portals and jump between the worlds. They’re named and you have chat inside of the worlds. And so we go camping in the summers. We were gone almost two months this summer, all the way out to Washington and back. And he and his friend could occasionally get together and play. And if they weren’t timed up, if we were in Pacific and he’s in Eastern, they would leave chat messages for each other.

And so then they could converse back and forth and they’re not constantly using our phones to do so and stuff like that. And it was just really cool. And now he’s learning. He used to always say he wanted to be an inventor. That was what he would put on his first day of school thing. And now the last six months, he’s like, “I’m going to be a programmer.”

That’s very cool. Yeah, it’s cool. And so he’s able to build what’s in his imagination. He’s learned that in small steps. He’s learned ask me questions or prove to me that it works or all the things that I would do when I build software. And I remember even talking with my wife and she’s like, “Well, he’s not learning. Is he learning the program or is he not?” And I’m like, “He is.This is what programming’s going to be. Programming, it’s software development. It’s just totally different now. You don’t have to actually understand the code. You just have to have taste and know how to get the LLM to build what you want with the right taste as well. The right technical requirements so that it functions for what you need to, and also the product taste or the game taste that you want to apply.” So yeah, we’ve built a ton now.

So we built Chickens for Zombies, BlockCraft Realms, which is the chat durable objects and all that. We built a kitten catcher. So you go around this 2D island and you shoot yarn balls at cats to catch them and you have to collect all the species.

Yeah, that’s how you win the game. Yeah, exactly. There’s no ads or anything. We’re not doing anything commercial.

CHRIS VANNOY
(46:37)
It’s legally distinct. It’s fine.

JOHN NUNEMAKER
(46:39)
Yeah. I

CHRIS VANNOY
(46:40)
Think generally that’s sort of, because I work a lot, my kids are a little bit older. They’re both in high school at this point. And so it’s trying to teach them to be curious about it. We’re in this stage where we don’t know necessarily where this is going. We both have theories. Everybody has theories, but we don’t know. And ultimately, you and I are old enough that we’re not going to be the ones directing where this goes. We need our kids to be able to figure this out. And so right now we’re in this explosion age where these tools are available and they’re subsidized or free and you can just play around with them and experiment, see what you can do, see how they work. What my job has been has been to explain what they are, how they work, what they can do. And then my kids can figure out what they want to do with it past there.

JOHN NUNEMAKER:
(47:30)
Yeah. Again, like we talked about from the beginning, it’s an amplifier for creativity and taste. And it doesn’t matter if you’re 11 or if you’re 44 or 45 or whatever I am. It can amplify and you can do things you couldn’t do before. Even the little ESP 32, it looks like an iPhone, Apple Watch. I never would’ve hacked on one of those before. Or a raspberry pie. I bought an Arduino and I was like, “This is too hard.” It’s till downstairs in my bar just sitting there.

CHRIS VANNOY
(48:00)
I’ve got one sitting in a box somewhere. Yeah.

JOHN NUNEMAKER
(48:03)
Yeah. I turned a light on based on a tweet and I was like, “Okay, I’m done with this. This was way too much work to do this. I don’t have the patience.” But now with AI, I do have the patience. And the hard part is the ideas and the taste and the experience of all of that. The easy part is the building now.

CHRIS VANNOY
(48:23)
Yeah. Well, the dirty secret is the building has always been the easy part. The hard part has always been the thinking of what is the right thing to do and what it should actually do and what the taste has been. The actual syntax code part, especially in Ruby, because I love Ruby. It has never been the hard part because you just write what you think it’s going to be and usually it’s right, which is also great. All right, John, thanks again for taking the time today. I really appreciate it. Where can folks follow you online these days and kind of keep up with all your adventures?

JOHN NUNEMAKER
(48:53)
I am J Nunemaker pretty much everywhere. So I use BoxOut itself to post to X, LinkedIn, Bluesky, Threads, Mastodon, whatever you want to consume it in. And then we also have Standing in the Fire a podcast as well, so you can check that out if you want.

CHRIS VANNOY
(49:07)
Yeah, very cool. And obviously the open source, the two major ones are Flipper and HTTParty. I think there’s probably a couple others, but you can find them on GitHub and find all that stuff highly recommended. If you’re into Ruby, thanks so much. Have a great day.

JOHN NUNEMAKER
(49:21)
You too.

CHRIS VANNOY
(49:21)
That was John Nunemaker who runs Box Out Sports, Fireside, Flipper, and maintains a stack of open source most rubies have shipped without ever knowing it was there. Three things stuck with me. John gave up trying to focus on one thing and gets more done with a portfolio because when you jam on one project, you switch to another instead of dropping to zero. Feature flags aren’t a technical trick, so much as a change in how you think. When you can flip behavior at runtime instead of at deploy, everything gets less scary and you start reaching for demos over memos. And AI is an amplifier, not a shortcut. It accelerates good teams and good taste, and it accelerates the mess in broken ones. And it pays off most for the people who have already done it before. If this was useful, follow the hallway track wherever you’re listening so the next one shows up.

I also write a weekly newsletter called Expedite over at getaxiomatic.com. It’s more of this kind of thinking on a regular cadence. And if you write Ruby, go look up Flipper and HTTParty or go find them in your gym file already. John’s the reason a lot of us stopped worrying about problems we used to have to solve ourselves. Thanks, John. See you next time.

Leave a Reply

Your email address will not be published. Required fields are marked *