Fable Tales, Staff Engineer at Stripe - podcast episode cover

Fable Tales, Staff Engineer at Stripe

Mar 18, 20241 hr 6 minEp. 4
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

In this conversation, Fable and Ben dig deep on building a technical career that balances programming and company leadership. Fable shares their experience working at Stripe and the different roles they have held, including being a technical advisor to the CTO. They also discuss Fable's career move from being a hands-on programmer to role where less hands-on coding is required, Fable's take on "code crimes", and how to find enjoyment and fulfillment in solving complex problems.

Links

Tuple.app - The best app for pair programming
Stripe - The company Fable works at
Ruby Kaigi - An annual conference dedicated to the Ruby programming language.
Sidekiq - A simple, efficient background processing library for Ruby
Sorbet - A fast, powerful type checker designed for Ruby.
YubiKey - A hardware device designed for high-security two-factor authentication.


Key Takeaways

  • Making connections and friendships at conferences can be valuable in the programming community.
  • Debugging and problem-solving skills are crucial for software engineers.
  • Being willing to learn and work with different programming languages can enhance your skills.
  • Prototyping and spiking can be effective ways to test and develop new ideas.

Chapters

  • (00:00) - Introduction and Conference Interaction
  • (00:38) - Making Friends at Conferences
  • (04:13) - Work at Stripe
  • (06:17) - Becoming a Staff Engineer
  • (06:53) - Getting Good at Programming
  • (08:46) - Debugging and Problem Solving
  • (11:22) - Working with C and C++
  • (13:13) - Debugging with Print Statements and Debuggers
  • (17:06) - Prototyping and Spiking
  • (24:11) - Technical Advisor to the CTO
  • (27:26) - Coding Hill to Die On
  • (29:52) - Workflow Optimization
  • (36:53) - Coding vs Non-Coding Time
  • (39:08) - Transition to Leadership
  • (41:07) - Motivation and Impact
  • (42:13) - Love for Programming
  • (44:14) - Coding Style: Short Methods and Small Classes
  • (48:48) - Personal Style and Code Crimes
  • (52:18) - Commercial Open Source
  • (56:08) - Getting Involved in Open Source
  • (01:04:52) - Wrap-up

Transcript

Introduction and Conference Interaction

Ben OrensteinBen Orenstein

Hey, everyone. Welcome. My guest today is Fable Tales. I met Fable years ago when we were speaking at a Ruby conference.

Fable TalesFable Tales

Yes.

Ben OrensteinBen Orenstein

And you invited me to pair on some RSpec code, and we have been friends ever since.

Fable TalesFable Tales

Because that's that's how you make friends in the Ruby community, apparently.

Ben OrensteinBen Orenstein

I do wanna talk talk about that in a second, but let let me finish introducing you first. So you previously worked at DigitalOcean and Google. You currently work at Stripe. Yep. You were a technical adviser to the CTO at Stripe. Now you're a staff engineer.

Fable TalesFable Tales

Mhmm.

Ben OrensteinBen Orenstein

Welcome to the podcast.

Fable TalesFable Tales

Thank you. Thank you so much for having me.

Ben OrensteinBen Orenstein

Yeah. I'm I'm stoked to chat. It's nice to talk to a friend that I know well. Maybe we start actually with that that conference interaction because you I would say you have this the quality of being really unafraid to sort of reach out to people and, like, ask them to do things. And that is the reason we're friends.

Making Friends at Conferences

Like, I would not have done that in the other direction. And so maybe talk about how you got that skill or, like, encourage other people to do it because I think it's so good.

Fable TalesFable Tales

Yeah. I think, like, honestly, this was something of an experiment for me. So this was actually the very first international Ruby conference I had ever attended, and I only knew a few people who were coming, and I I sort of wanted to make additional friends. And so what I did, it wasn't just you, but I reached out to a handful of people who I knew were attending, whose talks I had really enjoyed videos of. And I was like, hey.

I'm on the aspect team. Would you like to hang out in one way or another? And, you know, lots of people said yes. I think when people are going to conferences, if you give them an opportunity to, like, make a new friend, they they will actually really want to take that. I think, like, conferences can be very overwhelming.

Right? And, like, just walking up to somebody in a hallway and starting to talk to them is, like, socially difficult. But if you have, like, a primed thing with somebody, it's, like, much easier.

Ben OrensteinBen Orenstein

Right? That's a really good point. Yeah. Yeah. Conferences are basically I I mean, I really feel that, like, conferences the best thing you can get out of them actually is connections with people. Yes. Like, nothing like, no talk I've seen approaches the value I've gotten from friendships developed at a in person conference.

Fable TalesFable Tales

Yeah. And, honestly, when I when I go to conferences where I know they are recording the talks, I will spend the vast, vast, vast majority of my time in the hallway, because I can watch the talks later, but I can't get that time with those people back. Right? And, like, you know, for example, a really good thing this habit has created is opportunities to, like, work with people I wouldn't usually get. So right before I stopped working on arspec, I was at Ruby Kaigi with the JRuby folks, and we, like, skipped maybe, like, 3 hours of talks to sit together and do some, like, rspec jruby debugging that, like, would have been just impossible to do any other way.

Right? Yeah. And, you you know, Charlie Nutters doesn't live that far away from me. Like like, Japan is certainly further away than where where he lives to me is, but it was, you know, that we were together in a hallway in Japan that caused us to to actually do that. Right?

Ben OrensteinBen Orenstein

Mhmm. Nice. Yeah. And I think that, like, reaching out to do a specific thing also Mhmm. Like, worked. You're like, let's use Vim and pair on our spec. And I was like, I mean, like, did you wanna go to the contributor list for rspec? It's like a pretty good pitch.

Fable TalesFable Tales

Yeah. I I knew I knew I had sort of, like, it's it was, something to learn and something to offer. Right? Like like, I had seen your VIM talk. I was, like, I wanna get better at VIM. I bet Ben will help me get better. And in fact, you did. And Nice. You know, you got you got yourself on the aspect change log, so we both got to learn something. Right?

Ben OrensteinBen Orenstein

Yeah. That's cool, and it's it's a good experience. Mhmm. And, yeah, you're right. The conference can be sort of default intimidating. Yes. Like, it's it's a room full of people. It can be a little tough to make those connections.

Fable TalesFable Tales

Mhmm. Yeah. Yeah. Yeah. For sure.

Work at Stripe

Yeah.

Ben OrensteinBen Orenstein

Cool. Alright. So can you give me a big picture overview of some of the things you've worked on at Stripe in your time there?

Fable TalesFable Tales

At Stripe, yes. I have done I've done a lot of things at Stripe. So when I joined, I was on our API platform team, and that is the team that is responsible for running the core Stripe API service. So when you hit the vast majority of Stripe API endpoints, you are, like, directly going through code that is maintained by the API platform team and sort of, by association, that means, every time you make a request to the Stripe API, you are executing code I have written, which is is, you know, sort of cool. I then, after I was on the API services team, was the tech lead of our Ruby services team, where Stripe is sort of in this transition from having a large monolithic service to, smaller services.

And we didn't have a great story about having a Ruby service that lived outside the monolith. And so I kind of worked on the team that was responsible for, starting to build a lot of those, primitives. I, like, actually was the sort of founding tech lead for that team. So, like, literally from scratch, starting to design, pieces of of how Stripe's Ruby services are architected and wrote, a system called Common Core, which is is now, like, as the name suggests, in every single one of our Ruby services. Right?

From there, I actually ended up going back to the API platform group for sort of, like, weird internal reasons that aren't really worth getting into in too much detail. Then I was the technical adviser to our CTO, David Singleton. And now I am, a staff software engineer in our developer infrastructure group where I mostly work on sort of, like, really deeply gnarly, like, Ruby VM and low level Ruby infrastructure issues. Like, literally before this podcast, I was debugging why the Sorbet pry signature system breaks in the new version of the pry jam. And, you know, debugging a debugger is, not a trivial task.

Becoming a Staff Engineer

Ben OrensteinBen Orenstein

Yeah. Wow. That's awesome. How did you other than pairing with me at a recent conference, how did you get good at programming?

Getting Good at Programming

Fable TalesFable Tales

I think, like, the I I'm sort of very lucky, right, by comparison with lots of programmers that I so so my my dad worked at IBM, and so, like, I grew up in a in a house of sort of, like, software. And I started programming when I was 12, in Java because my dad worked at IBM. And, you know, I just I just programming sort of was my hobby, alongside playing video games, you know, through my teenage years. I studied computer science at university. I I always just loved it.

And, I mean, like, you know, by the time I had graduated university, I had probably been, you know, programming effectively full time for already 4 or 5 years of my life. And so, like, you know, you sort of you can gain a lot of skill. I think software engineering is, like, a a really interesting field because, like, you can be at the literal cutting edge with just, like, consumer grade hardware. Whereas, like, if you want to be a, you know, nuclear fusion physicist, you you can't do that if you're age 13. Right?

It's just not possible for you to be in a lab that does that. And so we are very lucky that we can get to the state of the art, you know, basically as soon as we can get computers in our hands and learn it if we want to.

Debugging and Problem Solving

Ben OrensteinBen Orenstein

Okay. So you put in a lot of hours, which is certainly like a big component. Right? But it's also probably not enough. It's not sufficient. Yeah. It's I I think you're doing other clever things to get better.

Fable TalesFable Tales

I think yeah. And I so I think I think for me, like, the biggest I think one of the biggest things that can help you become a better software engineer is, like, never accepting that something is, like, impossible or too difficult to be solved. Right? Like, the in some senses where I've seen sort of, like, myself succeed where the software engineers fail. It's just a sort of, like, dogged determination that you can understand the behavior of even, like, very complex systems if you are just willing to, like, push and push and push and push and, like, inspect, like, how this thing runs and, like, what branches does it take and that sort of thing.

Right? And, like,

Ben OrensteinBen Orenstein

you

Fable TalesFable Tales

know, just just earlier today, I was sort of talking to someone about, like, how I debugged through some nonsense in the Ruby VM. And I was like, fundamentally, what it came down to was just, like, shoving print statements in, like, various pieces of the Ruby VM and seeing what happened. Right? And, like, that sounds that sounds really scary. Right? Debugging into Ruby VM.

Ben OrensteinBen Orenstein

Totally.

Fable TalesFable Tales

But but it just it's just it's not actually.

Ben OrensteinBen Orenstein

That's funny. Because because I am I am that programmer that you are doing better than because I'm, like, too afraid to go look in the Ruby VM for what the thing is. I mean, that's just like, too too black magic, too scary, too

Fable TalesFable Tales

low level. Yeah. Yeah. And, like, you can you can understand it. Right? I think another thing is, like, being willing to learn and work, like, in anger in as many programming languages as you can. And I think in in particular, even

Ben OrensteinBen Orenstein

though it's

Fable TalesFable Tales

I think it's not cool anymore, like, being willing to, like, work in and with complicated c programs is, like, probably one skill I possess that distinguishes me from a lot of, like, programmer like, notionally, right, if you look at my CV, I am a Ruby programmer. But, like, I can, you know, I can deal with, like, complicated c programs with the best of them. Right? And, like, you know, I think I think, like This

Working with C and C++

Ben OrensteinBen Orenstein

is a great pairing too. Right? That's what's underpinning the all the Ruby. It's like, if you need to go to the c level, no problem.

Fable TalesFable Tales

But it it it also underpins, you know, all the browsers and the operating system. And, like, you know, it lets you it lets you read the kernel, like, should you should you need to go read the kernel, which, you know, I have done. And, like, you know, when I worked at DigitalOcean, we were literally we were maintaining a Rails app that was like an internal admin interface for people to use. But the internal admin interface spoke to, you know, hypervisors on bare metal all around the world, and, like, you you need to be able to, like, drop to the, VM hypervisor level to be able to, like, debug issues sometimes. And, like, that's you know, I'm gonna SSH into this, like, physical machine somewhere around the world and, like, start editing Perl scripts, like, managing, like like, Libvert state.

Right? Yeah. And so just like being a like, I think many programmers believe there are, like, bounds to the complexity they can understand. Right? Like, if I'm a JavaScript programmer, I'm going to bound the complexity I understand to, like, the the DOM and the JavaScript I'm coding and not what the browser does.

But, like, you know, you often see Adam tweeting about browser bugs and, like, the fixes to those are always, like, some crazy piece of, like, Gekko needs a change to it. Right? Or, like, you know, as I've sort of alluded to here, if you're a Ruby programmer and something doesn't make sense, maybe you actually do need to drop into if not the VM, then at least the code of the interpreter. Right? And and, you know, this is true to for, like, Python programmers and and it's different for Java programmers, but, like, being able to drop down is really useful as well.

Debugging with Print Statements and Debuggers

Right?

Ben OrensteinBen Orenstein

And it seems like c and c plus plus are, like, the the languages there. Like, you could pair those with almost anything higher level and say, like, because so much software is written in that. Like, if you're gonna dive down the stack, you're gonna hit c m c plus plus. Right?

Fable TalesFable Tales

Yeah. Yeah. I would say you are in like, actually, god, now that we're now that we're talking about this, I'm I'm reminded of, one of the things I did at Google, which, was debugging a memory leak in the protocol buffer library for PHP, which also, like so I I've not slung all that much PHP in my life. Right? It's like some when I was a kid before I discovered Ruby, but, like, never serious production usage.

And, like, I was like, I just found this bug in PHP's memory allocator, which also was c code. Right?

Ben OrensteinBen Orenstein

Wow.

Fable TalesFable Tales

And and I I do think like, I I I wanna illustrate as well. While c and c plus plus are important, I think it's, like, being able to get to the underlying complexity of whatever system it is you're working on and just it just so happens that a lot of the time, c and c plus plus are

Ben OrensteinBen Orenstein

what underpin those systems. I feel like do you have a bug spotting knack? Is it a side effect of just, like, being able to grok the system well enough to sort of notice that that's a bug there? Is it, like, a is it an intuitive thing where you're kinda like, something's up here?

Fable TalesFable Tales

I think I don't know if I do by comparison with other software engineers of my level of experience, but like, I think regardless of your sort of, like, natural bug spotting ability, the ability to sort of, like, confirm and bisect problem spaces and that sort of thing is, like, more important. Right? And so, like, to me, it's not just Mhmm. I can, like, I I am not not some, like, godly programmer who can stare at c code and immediately tell you where all the bugs are. You know, I'm just gonna go in there and fire in a bunch of print statements and have that sort of, like, tell me things about the the system.

Right? And I think, like, like, a lot a lot of people are, like, unwilling to, you know, fire up gdb and go, here here is here is the specific And so to me to me, like, the the thing I when I people ask me for advice on this, I'm like, just do it. Like, don't don't be scared of the thing. I know it looks scary. I know there's, like, a bunch of weird things like pointers and structs here that you may not be totally familiar with, and, like, that's okay.

You know how to call printf, and it turns out, like, being able to call printf will get you a lot of the way. And just so, like, like, most people just give up. Right? And I think the the single most important debugging skill is, like, knowing that the problem is characterizable and just being willing to just keep digging until you get there. Right?

Ben OrensteinBen Orenstein

Yeah. I you reminded me of a story from the, like, really early days of Tuple where we had this bug, and, Spencer, who had written so much of the app, was, like, away on vacation. And John and I were like, it would be really cool if we could fix this bug because it's like we can reproduce it reliably, and it would be great to fix it. And we realized that it was in the c plus plus of WebRTC. Mhmm.

Prototyping and Spiking

And Joel and I we were like, we probably can't fix this. Like, this is like neither of us are c plus plus programmers. This is probably like a dead end. But, like, I, like, pushed. I was like, let's just try for, like, a little bit.

Let's just see what we can get get done here. And just by kind of, like, being like that function name seems kinda like what maybe would be happening here. That, like, that seems, like, about right. This, like, is maybe where it's it could could be the the problem could be. And, like, adding a bunch of print statements Yeah.

And slowly graphing it. And then, like, I wonder if maybe it's doing this and then just finding out it was doing that and realizing, like, yeah. That's it. We just, like neither of us really knew the language and, like, it was like a there's, like, a 1,000,000 lines in the WebRTC, like, a little WebRTC. Yeah.

And but we, like, we figured it out. We found the bug. We fixed the bug, and it was like, oh, okay. Yeah. That was that was totally doable just because we thought we could, and we decided to give it a shot.

Fable TalesFable Tales

Yeah. Like, I think even very early career programmers have gone through the process of doing that debugging action. And, like, I think people imagine that in systems of a certain size or scale, like, some magical thing happens where it makes that approach not work when when in fact that is that is not true.

Ben OrensteinBen Orenstein

Right? Yeah.

Fable TalesFable Tales

Like like like, you know, all all of these all of these machines, like like, every CPU, anyone who writes code today executes on behave in, like, roughly the same way. And even even the, like, scariest of, like, you know, multithreaded, like, c or c plus plus, like, async, you know, programs, like, follow the same logical rules as, like, you know, hello world in JavaScript. Right? And and, like, you can like, I promise you that you can actually just slam print statements all over them and make the bug go away.

Ben OrensteinBen Orenstein

I love that. Yeah. I think there's definitely also mental thing here of, like, these artificial boundaries that I have, like, that that I've constructed where it's like, oh, no. Like, that's a dependency. I can't go in there. Like, that's just, like, unknowable. This boundary cannot be passed.

Fable TalesFable Tales

I was actually just I was actually literally just about to say this. You know, and sometimes that means knowing how to pull the source of a library down and compile it and, you know, link it into your program versus using your dependency manager. And, like, lots of people have never done that. Right? Because most of the time, most of our software dependencies work exactly as we expect them to.

Right? Like like, I'm certain that most of the people listening to this podcast will never ever ever ever ever ever ever need to go into the source code of the Linux kernel. And also that they probably don't know how to, like, pull down the source code of the Linux kernel and compile it for debugging. But, like, just knowing that you can if you really need to is is I also think, like, one of those blockers that most people most people have never gone past it, and so most people don't know that they can. Right?

Whereas, like, you know, when when I am when I'm debugging the Ruby VM, I'm, like, totally just working off source code on my laptop. And I was actually I was talking to someone at Stripe who is also responsible for doing Ruby maintenance stuff, and they were like, I did not know you could just run Ruby from source, like, on our our development and production boxes. And I was like, yes. You absolutely can, and here's how I did it.

Ben OrensteinBen Orenstein

Interesting. Yeah. I that that that makes sense. So there there is some can there. You can download the kernel and run it. My guess is Great. It's that's, like, not often the thing. I think it's more of the fear. Yeah. I think it's, like, there's something special about a kernel or a VM, and, like, this is just, like, un understandable by a mere mortal like me. Yeah. So I just, like, shouldn't get in there.

Fable TalesFable Tales

Yeah. And I'm like, I'm not I'm not especially much more clever than most software engineers. Right? I don't have I don't have magic powers. I just I'm I'm just unwilling to take no for an answer.

Ben OrensteinBen Orenstein

Yeah. Yeah. It's the it's the willingness. You're just like you yeah. And I I I think your message of just like, you can slam print statements in anything and eventually kinda figure out what's going on. Yeah. And, yeah, just go for it.

Fable TalesFable Tales

Yes.

Ben OrensteinBen Orenstein

Print statements or do do you how do you feel about debuggers versus print statements?

Fable TalesFable Tales

They both have their utility. I think, like, I would never tell anyone that you, a 100% of the time, want to use a debugger and a 100% of the time, only want to use print statements. Like, I I will pry things. I I so I guess not everyone who's listening to this podcast is a Ruby programmer. Pry is like Ruby's debugger, for those of you who are listening.

I will sometimes use print statements in Ruby programs. I will sometimes use gdb when I'm in the Ruby VM. I will sometimes use print statements when I'm in the Ruby VM.

Ben OrensteinBen Orenstein

Got it. So print statements, fast and light, easy to do debugger when you wanna, like, maybe step through a lot of things or something?

Fable TalesFable Tales

Well, it's it's a bit more situational than that. Like, you know, you you can get into sort of, like, hell where, like, the thing you're debugging is a subprocess being invoked by another program that, like, is capturing standard out and standard error. So you need to, like, side load print statements out to another file. Or, like, like, there are there are hell versions of this where it's or, like, you're you're 19 layers deep in forks, and so you just don't know what your process ID is, and so you can't attach a debugger to it. Like, there there are sort of programs that are more and less resistant to, like, various types of debugging techniques.

And so I think being handy with both is, like, a really important skill because it lets, like, it lets you flex to the situation. Right? Mhmm. And, you know, you may also you may also just have no idea what, like, what area of the source code you even need to be in. And so, like, if you don't know if you don't know where you are, you can't start throwing print statements in because you don't know where you are.

Ben OrensteinBen Orenstein

And a a

Fable TalesFable Tales

debugger can at least tell you, you know, you're in this frame. And and then once you've done that, you can slam print statements in. Right? And so I I my approach is almost always hybrid. And, you know, like, as I mentioned earlier, like, I was I was debugging pry. If you're debugging a debugger, you probably can't use the debugger to debug the debugger. You you probably only have print statements. Right? And so the it it's just really situational. You talk

Technical Advisor to the CTO

Ben OrensteinBen Orenstein

a bit about the tech advisor to the CTO thing? That catches my catches my interest.

Fable TalesFable Tales

Yeah. I I guess we we really never talked about this on air before. That that doesn't seem real.

Ben OrensteinBen Orenstein

That's a great yeah. Maybe we did. It'll be

Fable TalesFable Tales

possible. Possibly. I'll, yeah. I mean, I'm happy to give you a summary anyway. So so it was time time has become a a blur in my mind, but, it was is most of 2022 and some of 2023, I was I was technical adviser to Stripe's CTO David Singleton.

And, you know, that role was very varied, sort of just depending on what he was needing in any given week. But, like, a lot of it was, when when things within Stripe weren't necessarily working as well as they could, like, going and having really detailed conversations with, you know, as many people as possible in the responsible area and, like, doing some sort of recon and compressing that and reporting back or, helping, you know, all sorts of things, helping push the engineering blog along.

Ben OrensteinBen Orenstein

Oh, interesting. That's that yeah. Those are those are quite different.

Fable TalesFable Tales

We definitely talked about that on, Art of Product. So I'm Alright. That's an

Ben OrensteinBen Orenstein

that's an old podcast. We're on a new podcast now. I'm not gonna make people go listen to that one. This is we're doing a whole new thing now.

Fable TalesFable Tales

Okay. Yeah. I mean, we can we can maybe get into that, but, David always sort of ran and sponsored the engineering blog at Stripe. So I ended up, kind of keeping that moving. I think there were, like, so many thing.

It's, like, it it's funny. We we had this thing we talked about, which was kind of like the milieu, of just like, a lot of it was just very textural, and so it's hard to sort of describe any particular thing so much as just, like, being with the CTO and helping him with whatever, like, needed attention that he maybe couldn't get to. Extra pair of hands, like, trusted advisor. A lot of it actually and I thought this was really interesting was, when we would be in meetings together, I would, like, catch sort of, like, language or reactions that maybe he wasn't and be like, did you notice, like, this thing? Yeah.

Ben OrensteinBen Orenstein

Or like Nice.

Fable TalesFable Tales

Or like feed him things to say, without without it getting too spicy. There were definitely instances where, like, I would send him a DM and he would just say exactly what I DM'd him verbatim. And, yeah, so I mean, really just kind of like, you know, the second brain person at your back kind of a role. Having someone who is really in tune with engineering at Stripe and just, like, helping out.

Ben OrensteinBen Orenstein

Cool. Nice. Alright. You wanna talk about code more?

Coding Hill to Die On

Fable TalesFable Tales

Yeah. Sure.

Ben OrensteinBen Orenstein

Alright. What's a coding hill you would die on?

Fable TalesFable Tales

See, when you ask me this question, I have I have a problem. And the problem is that it's it's, like, one of the least popular takes, in the in the Ruby programming language. But I think new style and by new style, I mean, Ruby 19, hash syntax was a mistake, and we should just never have gotten rid of the hash rockets. And and this this take is, like, so nuclear in in Ruby that, even when I wrote my own Ruby auto formatter, like, people argued me off this hill, to I was like So

Ben OrensteinBen Orenstein

so you wouldn't die here?

Fable TalesFable Tales

I guess in my heart of hearts, this is the hill I will die on.

Ben OrensteinBen Orenstein

I hear you.

Fable TalesFable Tales

But but like if when I'm building a popular tool for the masses Totally. I knew it was one I had to give up on. But Definitely. To this to this day, I would I would keep the hash rockets if it didn't get me, you know, thrown out of RUBY forever.

Ben OrensteinBen Orenstein

Is it an aesthetic thing or parsing or something?

Fable TalesFable Tales

So so the the the argument roughly goes that, we don't gain any capability with the new hash syntax and that it is actively confusing for things like quoted symbols, and that it makes the implementation of the language more complicated for, like, what isn't really that big of an aesthetic change.

Ben OrensteinBen Orenstein

Yeah. I hear you. And the Hash Rockets are kinda cool looking. Yeah. They just they they look cooler. Alright. We gotta get off this in case some some of the audience isn't a Ruby programmer, and this is, like, the worst

Fable TalesFable Tales

Anyone in anyone in the audience can at can at me. I I don't care. Yeah. This is a terrible take, but you are you asked. So

Ben OrensteinBen Orenstein

Absolutely. Yeah. Are you a are you a prototyper? Do you make little little programs to, like, try things out?

Fable TalesFable Tales

Oh, yeah. You know, it's it's interesting because, like, it's quite rare that I am doing new things. Like, I spend I spend much more of my time, like, in the abyss, like, fixing arcane bugs. But, I actually I actually ended up building a whole new, RPC client within Stripe, last year. And, absolutely, the the first rev of it was, like, a script.

Workflow Optimization

Not even like, not a library code that could not be reused, just a script which, like, fired a request out and, like, paused a response. And, like, you know, we we sort of pounded on that until it was, like, good enough. And then we we threw it away, and we did it much more properly.

Ben OrensteinBen Orenstein

Okay. So yeah. So you you properly spiked.

Fable TalesFable Tales

Oh, yeah. Yeah. I I was writing trash code

Ben OrensteinBen Orenstein

Yeah.

Fable TalesFable Tales

As fast as I could to prove that it could work. And and actually part part of that is because, a lot of people, has said it was categorically impossible. And coming back to sort of the previous conversation, like, I don't believe in categorically impossible. So I was like, no. I can I can do this?

Ben OrensteinBen Orenstein

That's awesome. It's you so you did the hard part of a spike, which is you threw it away when you were ready to do it for real. Yeah. Because you're writing so, like, you're telling yourself, I'm writing a spike. I'm gonna write crap code. And then you get it working. And now you have to do this really difficult thing psychologically, which is like, no. No. No. I'm not just gonna be like, actually, it's already working.

Let me just massage it into good quality. I'm gonna actually delete it and start over.

Fable TalesFable Tales

Yeah. Well, I had a reference architecture for what I wanted the thing to look like in my head.

Ben OrensteinBen Orenstein

That's cool.

Fable TalesFable Tales

And so Reference from somewhere else? What do you mean?

Ben OrensteinBen Orenstein

When you say reference architecture, I'm imagining, like, you you saw another architecture you liked that you wanted to use or you just had, like, a plan?

Fable TalesFable Tales

I had a plan for what I wanted the architecture to look like in my head with the the reference part of that is, like, that's what I was referencing. And, like, I was like, this script did its job. It, like, it proved it proved we can we can sort of do the thing.

Ben OrensteinBen Orenstein

You you shut the haters up. You showed him. Look.

Fable TalesFable Tales

Yeah. Yeah. Yeah. Quick quickly. And then I was like, okay.

Now you're not gonna see any progress on this thing for, like, a month and a half. Mhmm. And then it's going to be ready to, like, drop into the rest of Stripe's Ruby monorepo. And I I think this is, like, this is really important for people listening to understand is, like, in say, if I was working at, like, a 10 person startup, I actually might have made the call to take that trash and massage it. I can call it trash because it's my code, and massage it into something that went into production.

Stripe has a 25,000,000 line repository full of Ruby, and we have all kinds of defensive constraints we have to program against because the vast majority of software engineers at Stripe who write Ruby have never written Ruby before they joined Stripe.

Ben OrensteinBen Orenstein

Wow. The majority?

Fable TalesFable Tales

The, like, vast, vast, overwhelming majority.

Ben OrensteinBen Orenstein

Yeah. Okay. So you're not even screening on Ruby ability really. You're just like, if you're a good engineer, get over here. We'll teach you.

Fable TalesFable Tales

We we don't interview for Ruby Ability at all for, like, most of the software engineers we hire. Interesting. Yeah. Like, e there are even people on the Ruby infrastructure team at Stripe who never programmed Ruby prior to Stripe.

Ben OrensteinBen Orenstein

So is there a, like, a significant curriculum to get people up to speed?

Fable TalesFable Tales

It's not that big. We just we just throw them in. Okay. Yeah.

Ben OrensteinBen Orenstein

So there's not like a there's not like course you do or, like, it's just kinda like, here's your mentor person to, like, ask questions.

Fable TalesFable Tales

There is some there is some developer education.

Ben OrensteinBen Orenstein

Mandatory? Happens for everybody?

Fable TalesFable Tales

Yes. Well, so when you join Stripe, everyone goes through a week of sort of, like, generic Stripe onboarding, and then software engineers go through 2 weeks of, like, developing at Stripe onboarding. And part of that is actually, like, practically like, a small group of, people in your onboarding class will work together on a project and actually, like, ship something. In most people do Ruby. Some people do Java because we also have a lot of, Java services in production.

And if you're primarily going to be working in Java, then you do Java and not Ruby. But, like, Yeah. So we we teach people Ruby in the 1st 2 weeks to ship something, but it's usually not something, like, super critical. And after that, they go to their teams and they just start they start programming Ruby.

Ben OrensteinBen Orenstein

I'm thinking because we sometimes it's like we have kind of a weird problem domain, like a weird space and, like, our app is written in c plus plus. Mhmm. And it's like and I'm wondering if we're screening on c plus possibility when we shouldn't be. And what it would require to just choose for engineering ability, like, capability and, like, train people.

Fable TalesFable Tales

I think it is reason more reasonable for you to screen for people who can program in c plus plus than it is for Stripe screen for people who can program in Ruby.

Ben OrensteinBen Orenstein

I'm making the classic error.

Fable TalesFable Tales

Yeah. Like like like, Tupelo and Stripe are very

Ben OrensteinBen Orenstein

different businesses. Arguably, I guess.

Fable TalesFable Tales

I you know, like, one, you know, one reason I can give amongst the many is that, like, it's way easier to start programming something in Ruby than it is to start programming something in c plus plus, and, you know, dozens of reasons beyond that. But, like, yeah. It's it's, you know, 2 very different business contexts.

Ben OrensteinBen Orenstein

Fair. Are you a big, workflow optimizer in terms of, like do you, like, work on cutting out lots of shortcuts and, like, keystrokes? How crazy are you with that kind of stuff?

Fable TalesFable Tales

I used to be. I don't like, I think I would continue to be if I was still a full time heads down software engineer, but I'm I'm just not. And so, like, at at least now it doesn't feel like the long pole.

Ben OrensteinBen Orenstein

What's the breakdown of coding versus, like, not coding time for you?

Coding vs Non-Coding Time

Fable TalesFable Tales

That's, that's a great question. I think on the average week, it's like super honestly, it's super variable. One thing I would say is, like, unlike many software engineers at Stripe, there's sort of, like, a presumption, that staff software engineers can be distracted into planning, architecture, resourcing, status updates, blah blah blah blah Yep. At almost any time. Right?

Like, last year, I was, pulled just, like, randomly into a project to help a financial risk organization, where, like, you know, from my background, much of the development work I've been doing at Stripe has been, like, very infrastructural. And I was like, cool. Suddenly, I have 10 hours of meetings a week added to my calendar. Like, that's fine. But also, like, my as as I sort of said earlier, my job isn't really blasting out lots of code very quickly anymore, and it hasn't been for a long time.

Like, when I when I worked at DigitalOcean, I had, like, the most insane, like, customized Vim config and, like, everything was, like, 2 keystrokes away. And, like, you know, I had, like, fully weaponized, like, just everything I was doing. And, like, there are times in somebody's career where, like, that is, like, actually is the most important thing for them to do. Yeah. And I just simply am not there. Yep. Right? Like Fair

Ben OrensteinBen Orenstein

enough.

Fable TalesFable Tales

Like, frank frankly, like, for for me learning the Gmail, hot keys was at one point a bigger productivity boost than, like, speeding up my IDE.

Ben OrensteinBen Orenstein

Yep. That makes sense. Yeah. Do you miss the pure coding days?

Transition to Leadership

Fable TalesFable Tales

I think the problems I work on are more interesting now. I think, like, how do you make a organization as large as Stripe effective is, like, a sort of, like, very interesting meta problem. And, like, it's not for everyone. Right? I know deeply, deeply experienced software engineers who, like, don't want to stop being hands on keyboard and programming all the time. Right? And more power to them. It's just not for me.

Ben OrensteinBen Orenstein

Fair enough. So is it about the the leverage? Is that exciting to you now? Having more impact? Or just that you're sort of tired of cranking out code all the time? You need more variety.

Fable TalesFable Tales

There are I think I think the right way to look at it is it is easier to find people who can, like, crank out code than it is to find people who can do that and, you know, well understand business context and think about, you know, the the complex problems of, like, what our priorities are and, you know, how we do how we assign people to tasks and, you know, what are we actually trying to get done this year? And, like, how how does what we're doing measure up against the company objectives? And, like, you know, broadly broadly speaking, I think, like, programming is a tool software engineers need to have, but, like, being a really great programmer is actually not sufficient to be a a wholly well formed software engineer. And that if it were flipped, there are, you know, there's probably a lot of wasted opportunity by having me just, like, at the keyboard all the time.

Ben OrensteinBen Orenstein

Yeah. And does that match with what you want? Or is it just, like, you you wanna serve your best, like, help the organization as much as possible?

Motivation and Impact

Fable TalesFable Tales

I will be I'll be honest. I'm person I'm personally very motivated by like wanting particularly, particularly Stripe, but you know, this has been true in the past as well just to be, like, as good as it's it can. And, like, I sort of just on a personal level, like, abhor not doing whatever I can to, like, make that true.

Ben OrensteinBen Orenstein

Cool. It's like a core drive for you, sounds like. Mhmm. Those are the best. You don't have to, like they're just they're just there. Yeah. The fire just burns.

Fable TalesFable Tales

Yeah. Ice icy problems. I make them go away. It doesn't necessarily matter what shape they are.

Ben OrensteinBen Orenstein

Mhmm. And the fulfillment guns from there. Yeah. Nice. So does it make sense to talk more about programming if, do you do you like the nitty gritty still?

Love for Programming

Fable TalesFable Tales

Oh, yeah. I I I love it. There's something there's something very fun and interesting about just being, like, up against up against the computer and just, like, having to sort of push through. Right? Like, as I was kind of talking about earlier, like, a lot a lot of the work I do these days is just like people come with arcane bugs and they go, Fable, we need we need this arcane bug to not be here anymore.

And and it's it's it's very enjoyable, Right? I like, it's it's, like, solving solving complex puzzles and

Ben OrensteinBen Orenstein

They're, like, we've heard you have a lot of knowledge and a lot of tenacity. Could you make this go away, please? Yeah. Yeah. And everybody wins because you you seem to enjoy that a lot.

Fable TalesFable Tales

Yeah. Yeah. Yes. And, you know, like, in particular, this is like I think I think this is a thing. It's really great that, I I'm here at Stripe because, as I mentioned, we have the largest Ruby code base in the world and actually actually by some distance.

And so we we are sort of, like, pushing the bounds of what Ruby things can be done. And so it's like, we we naturally come across rough edges in Yeah. Almost everything we touch. And so as someone who, has been now been working in in Ruby for more than a decade, I think I'm nearly nearly coming up on 2. Like, it's it's, you know, just super cool for me.

Ben OrensteinBen Orenstein

Mhmm. Yeah. I mean, Stripe needs a you. Yeah.

Fable TalesFable Tales

Yeah. Yeah. That is true.

Ben OrensteinBen Orenstein

At least at least 1.

Fable TalesFable Tales

Yes. Okay.

Ben OrensteinBen Orenstein

So let's we've been we've been high level a little bit. So let's let's dive down the stack Yeah. Touch and talk about some some Cody things. Are you a pretty strong practitioner of short methods, small classes, lots of little pieces linked together, operating a concert, or are you more like, why don't you just throw all that in one method? It'll be easier to not have to track through things.

Coding Style: Short Methods and Small Classes

Maybe we collapse these down a bit.

Fable TalesFable Tales

Am I allowed to be annoying and say it depends? That's I

Ben OrensteinBen Orenstein

have a hunch that's gonna be, like, the refrain of this podcast. Yeah.

Fable TalesFable Tales

Yeah. I think to me, the sort of there's, like, a there's, like, a much more interesting meta question there, which is like Please

Ben OrensteinBen Orenstein

do my job for me.

Fable TalesFable Tales

Like like like, why why would you choose like a particular version of one of those constructs over the other, right? And like to me to me it's kind of like are you trading off, speed to change, readability, speed to write? Like what, like, what are you actually trying to do? Right? And so, like, you know, for example, like, when I was shipping completely greenfield startup code, like, code just goes wherever.

Like, like, where where the code is is, like, the the least of your problems compared with, like, you know, we're burning this investment money, and if we don't get this product into the hands of a user, like, you know, obviously, these are going to come for us or, you know, we're going to be out on the street because we've burned all our savings and we're bootstrapping. And so, like, the answer there is it doesn't matter. It it actually it it really doesn't. Like, the own the only thing that matters in that situation is, like, how quickly can I iterate and how quickly can I get, things that will get people to pay me to the people who are going to pay me? Right?

Ben OrensteinBen Orenstein

Yeah. Yeah.

Fable TalesFable Tales

I think, like, and, you know, it's, Kent Beck has this, framework, called, explore, expand, extract, which sort of, governs the journey of a life of a software product. Right? And so, like, in in the the early days, you're in the explore phase, and, you know, you want to find what the product is even supposed to be as as quickly as possible. Right? Because if you don't, you're going to die for the aforementioned reasons.

And then you kind of have the, let me see if I can I can actually remember what the phases are? The expand phase is kind of where you're, like, growing and adding new features and, like, you've hit your core user base and you're beginning to sort of, like, expand as much as you can. And then you have the extract phase where you're probably not going to get any more users or, like, you know, you know, you're not gonna get any more users or, like, very few. And so at that point, it's really about, you know, pulling as much value of the thing out as you can. And, like, an example of a product in the extract phase is something like the Facebook timeline.

Right? Where, like, the Facebook doesn't really have any, like, more users to hit. Like, everyone everyone who has access to the Internet in most of the places where Facebook is, like, is already on the Facebook timeline. Right? And so you don't expect radical, rewrites of, something like that, you know, unless Elon Musk buys out the company and then decides it's not good enough or whatever.

And so to sort of apologize to the programmers at home and sort of loop back to the original question, I think just writing, like, long methods, long classes, being perhaps less careful about the structure of the code, is a thing you can get away with, when you wanna just write really fast and you're probably not going to be spending a lot of time changing the thing. But, eventually at some point, you're gonna wanna break that down as you have, like, more change occurring.

Ben OrensteinBen Orenstein

I I haven't heard that back thing before.

Fable TalesFable Tales

Mhmm.

Ben OrensteinBen Orenstein

Okay. Do you have a sense of your personal style? Like if I saw some code and was like, oh, Fable definitely wrote this other than Hash Rocket syntax in Ruby.

Personal Style and Code Crimes

Fable TalesFable Tales

I don't know. Well okay. So I suppose there's one there's one way of answering this. Right? Which is that, I literally wrote a Ruby auto formatter because I was so angry about how, people were writing Ruby code. In a sense, all the Ruby at Stripe has Fable style.

Ben OrensteinBen Orenstein

Got them.

Fable TalesFable Tales

Yeah. Got them. This is maybe this is maybe a funny aside. That's That's hilarious. No.

Ben OrensteinBen Orenstein

That's the way to win the style argument.

Fable TalesFable Tales

Is just write the autoflex.

Ben OrensteinBen Orenstein

Write it. Yeah. That's amazing. Yeah.

Fable TalesFable Tales

You know what? We'll we'll do a we'll do a podcast exclusive, behind the scenes here. So, at Stripe, we anyone at Stripe can create a new emoji in Slack, And there is a there is a fable crimes emoji, because I I am sort of known for, kind of blowing past, safety features if they are in the way of, like, me solving whatever particular problem it is, I am trying to solve. And so sometimes I will be like, I'm doing so many crimes right now.

Ben OrensteinBen Orenstein

Is this, like, past, like, type checking kind of safety features?

Fable TalesFable Tales

Oh, yeah. Just like t untyped or, like, throwing evals in there or, like, reaching into private guts of objects. Like and this comes back to, you know, what we were talking about earlier of, like, being really unwilling to sort of, like, accept that problems are impossible is, like, sometimes you just you just gotta do crimes to, like, to to to to solve a problem.

Ben OrensteinBen Orenstein

Sometimes you just gotta do crimes. A quote from a high level Stripe engineer.

Fable TalesFable Tales

Yeah. We're really we're not passing the front page test on that one. But, yeah. No. What I mean by that is, like, frequently, and this is especially true in large systems, like, you know, that will be, like, the right way to do a thing, and it will be, like, safe and have boundaries and stop you from, you know, blowing up a thing. And I'm like, look. I know. Like, I know. I know. You you just you just gotta let me you just gotta let me do it this one time.

Ben OrensteinBen Orenstein

And so

Fable TalesFable Tales

I would say I would say fable style is most visible when I'm in the middle of a complex problem. Not when I've solved it, but, like, when I'm in the middle. And the reason for that is that, like, I will I will blow through, like, any and all safeties, I need to if it makes me, like, believe I'm, like, closer to fixing something. Yeah. And so I guess if when you ask me what my style is, my answer is crimes.

Ben OrensteinBen Orenstein

I like it. Aggressive. Raw aggression.

Fable TalesFable Tales

Sometimes you've gotta just be willing to commit code crimes, you know?

Commercial Open Source

Ben OrensteinBen Orenstein

Yeah. Yeah. Alright. I'm I'm on board. Are you still using Vim? No. Okay.

Fable TalesFable Tales

Stripe has a really well manicured, Versus Code story. I use Versus Code in VIM mode, so I'm, like, half I'm halfway there.

Ben OrensteinBen Orenstein

How is that?

Fable TalesFable Tales

Good enough, actually.

Ben OrensteinBen Orenstein

Nice.

Fable TalesFable Tales

It's the first Vim integration in something that is not Vim I've ever used that doesn't make me angry and want to immediately rage quit.

Ben OrensteinBen Orenstein

Cool. That's awesome. It it has seemed like that's possible. Hard hard. Because Yeah. It's like who what if you're gonna implement 20% of VIM, it's which 20%. There's no Yeah. Magic 20% that covers what everyone thinks is, like, the best 20%.

Fable TalesFable Tales

Yeah. And that there are there are things in Versus Code VIM that infuriate me. Like, a really good example of this is,

Ben OrensteinBen Orenstein

that's not remarkable, though. Right? Can't you say that about every piece of software you use?

Fable TalesFable Tales

What pieces of software that do not infuriate me? Are there any?

Ben OrensteinBen Orenstein

What's the most reliable piece of software you use that's like yeah, that you like?

Fable TalesFable Tales

That's a great question. This is one that's probably gonna get me some hate, but I I actually find Zoom to be really, really solid. Like, I almost never have problems just, like, joining a call and talking to people. Yeah. I like I have my Mac. It's plugged into my screen. I have my microphone. That's it. It's oh, I just bashed my microphone. I'm so sorry, audience. It just works. It just it just always works. And, like, the screen sharing always works. And

Ben OrensteinBen Orenstein

Yeah. It's great. That is the that is the thing they do. They work really, really reliably. And, like, even when networking distance are bad, it's like that's the they they do a great job with that. I have to give them that.

Fable TalesFable Tales

And this is not a piece of software per se, but, I guess this is my best piece of hardware. YubiKeys. YubiKeys are amazing. They just work. They do exactly what they say they're going to do. Yeah.

Ben OrensteinBen Orenstein

Yep. That's So

Fable TalesFable Tales

what were we talking about?

Ben OrensteinBen Orenstein

I asked you what doesn't make you rage. Oh, you're saying that v s oh, VIN mode in

Fable TalesFable Tales

VSP. Yeah. Yeah. It's it's, location storage. So, like, like, if you use the control o and control I shortcuts to go back and forth. And if you use the tag stack, those don't work the same way in Versus Code that they do in Vim enough for it to make me angry, but most everything else does.

Ben OrensteinBen Orenstein

You wanna pair on it and fix it?

Fable TalesFable Tales

No. I don't I don't, I don't really do programming outside of work at all anymore. I did that a lot in my twenties, and then I just I kind of don't anymore. Like, I'm not on any major open source projects anymore. I I'm not on the board of Ruby Central anymore. I just I kinda stopped. I kinda I kinda stopped from wanting to do, programming outside of work time.

Ben OrensteinBen Orenstein

So I did. Mhmm. I realized I should have I should have mentioned your open source work in your intro.

Fable TalesFable Tales

Yeah.

Ben OrensteinBen Orenstein

Because you're in the Rspec core team. I mean, among other things, that's what that's what stands out to me. And I wonder there are probably people that are interested in that. Mhmm. It's like, what is your what is your advice to people that, like, wanna get involved in, like, a heavier level with an open source project?

Getting Involved in Open Source

They wanna get they want that core team credit and social proof and impact and all the good things.

Fable TalesFable Tales

I think I think the open source world is very different to how it was in, what? Like, 2013, 2014 kind of

Ben OrensteinBen Orenstein

times. Old? Our advice doesn't isn't relevant anymore? Our experience is not relevant?

Fable TalesFable Tales

I I think the way I became a open source core team member probably would not work, anymore. Mhmm. Which I think is interesting. Right? That is interesting. Because all all I did was I I just, like, rolled up to the rspec project. I just started I just started sending them pull requests. I just started fixing fixing bugs, refactoring, and, yeah, they gave me they gave me a commit bit and a a core team bit. And, after how long? It wasn't that long, actually.

It was, like, 6 months max max, like, a year, something like that. And, you know, like, if you look at, a lot of open source projects now, they have, like and I think this is actually this is also actually a really good thing. It's, like, the notion of open source governance models has come a really long way. You know, we have foundations now. We have, all kinds of different teams. We have, I mean, frankly, we have Discord now, which we didn't have.

Ben OrensteinBen Orenstein

Mhmm. That's interesting.

Fable TalesFable Tales

And, Discord is, like, one of the best tools for open source, which is hilarious. But, like, it turns out that when you design a chat system for gamers, you need really, really good moderation tools, because gamers are terrible. And so you end up with, you know, a tool for building communities that's really good.

Ben OrensteinBen Orenstein

Yeah. That's interesting. Are you part of any great Discords? We're gonna ask

Fable TalesFable Tales

a part of any great Discords? I have a lot of social Discords I'm in, with friends and stuff and those are really good. I'm in the the, Greater Boston Area trans people discord, which is, like, you know, a sort of, like, social community group. But

Ben OrensteinBen Orenstein

you're not active in a programming one right now?

Fable TalesFable Tales

No. Well and that comes back to you. I don't really do

Ben OrensteinBen Orenstein

Yeah. Yeah.

Fable TalesFable Tales

Programming outside Discord. How would you do if how would you

Ben OrensteinBen Orenstein

do a commercial open source startup today? If you were to make a open source thing, give away the the the core of it, build a premium offering on top of that somehow?

Fable TalesFable Tales

Yeah. I mean, it sort of depends on the, you need a little counter. You need, like, a ding every time it I I say it depends.

Ben OrensteinBen Orenstein

That's what this podcast should be called.

Fable TalesFable Tales

Maybe that's the episode title. There you go. But, like, you know, I think I think it also sort of depends on your, target customer.

Ben OrensteinBen Orenstein

You've actually gone 2 depends deep, and you haven't even told me anything yet.

Fable TalesFable Tales

Given you any useful information? Jesus. So so, like, you know, if if your target customer are, like, in less than, you know, hundreds of employees, companies, you probably have a much lower compliance burden to hit to sell software to them. So, like, if you're selling to, a company that needs to follow, you know, like, so I mean, it's Oxley or SOC 2 blah blah blah, then, like, a thing you can sell them really easily is just a hosted runtime of whatever your open source is because, like, people hate, like, running their own stuff. Like, running server running servers is like a hard problem, it turns out.

And so, like, you know, for example, there are there were Ruby Gems as a service startups or, like, Mongo as a service or, like, Redis as a service. Right? Yeah. And so, like, you know, I'm the author of the make the makes widgets open source project, and you can use makes widgets pro to get a 1,000 compute hours a month of widget construction and pay me, you know, a $150 a month. That's the lowest price for SaaS, by the way.

It's a $150 a month. Raise your prices, everyone. We should just all raise our prices today. And then, you know, like, there are variations on this. So, like, you know, what what Mike Perham did with sidekick is he had, like, the the the free version is the one where, like, it will, accidentally delete your jobs sometimes when your Ruby VMs crash.

And if you want to be secure against that feature, then you have to pay him. And that's that's really good because, like, if you have a hobby project, you probably don't care against defending if your Ruby VM crashes. But if you're running serious software in production, you absolutely do. And, you know, so that's, like, a really good, like, split, value split in terms of, you know, what is and isn't, paid for.

Ben OrensteinBen Orenstein

Yeah. And he didn't he his thing is nice because he doesn't have to host anything. Yes. Host hosting is not just an easy thing to do. Oh, and we just all we just host it for you. That's, like, that's, like, the business. Like, that's another business, basically.

Fable TalesFable Tales

And so and so that's kind of the other that's kind of the other way you can split. It's like, what's the what's the, like, pro feature that businesses need, that consumers don't. Right?

Ben OrensteinBen Orenstein

Yeah. I feel like if if it were you, if I were starting this with you, I would do it with some sort of hosted component. Because you could do that.

Fable TalesFable Tales

Yeah. Yeah. Because you you'd trust me to run the service. Right? Like,

Ben OrensteinBen Orenstein

Yeah. And so, like, if you were doing this yeah. Yeah. You you if you're on the team, you do the hosted thing.

Fable TalesFable Tales

That's the other thing is, like, do you want to hold a pager forever?

Ben OrensteinBen Orenstein

Definitely. Yeah.

Fable TalesFable Tales

Right? And then

Ben OrensteinBen Orenstein

But the prima the upset the premium version of this that you don't host is sounds like a sweeter gig to me.

Fable TalesFable Tales

It it is, but it also is, you know, much harder to identify what the split is, like or even, like, know if you're building something useful. Right? Like, I would I would advise almost no one, go and start an open source project on something that's annoying them and then like try and build a pro version and sell it. I think like I think there isn't a lot of, like, obviously needful, unconquered stuff in that domain anymore.

Ben OrensteinBen Orenstein

It doesn't sound that wrong to me. If you had a problem at work and you built something, and you open yeah. I like I feel like you can sort of test this in phases. Like, did you have this problem enough that you solved it at work? If you did, can you extract something from the source? When you do, do other people care about the free version? If so, maybe there's a pro thing there.

Fable TalesFable Tales

Yeah. And, like, that

Ben OrensteinBen Orenstein

So it depends what the annoyances. Is it a business annoyance? Was it just are you mad about something in your Bank of America statement or something like this?

Fable TalesFable Tales

Yeah. And and also, no one values the time of programmers less than programmers.

Ben OrensteinBen Orenstein

Totally. Yeah.

Fable TalesFable Tales

Right. Right. Like like and that's the thing with, like, sort of turning open source, software pro is, like, such that, anyone's ever going to make a buying decision, they are probably in management and, you know, might be in a if you're lucky, they are an engineering manager. Like, if you're so they can actually understand the thing. But the the very first thing that somebody nets to the person making the buying decision is going to say is, like, I could build that overnight.

Right? Like, someone is going to say that.

Ben OrensteinBen Orenstein

And

Fable TalesFable Tales

then and then you have to fight that against, you know, whatever egotistical tech lead or programmer is at your target, company ad infinitum.

Ben OrensteinBen Orenstein

I honestly think this was a sneaky advantage of Tuple. It's just that programmers hear about it, and they don't want to build it. Yes. Yeah. They're like, that sounds hard and annoying. And

Fable TalesFable Tales

so Yeah. Yeah. Video And they're right. Video streaming software is a uniquely annoying

Ben OrensteinBen Orenstein

Yeah. Yeah. Totally. Alright. This has been a lovely conversation. I think I think we I think we wrap it. We have a nice little chunk here.

Wrap-up

Fable TalesFable Tales

Great. I mean, always always happy to chat.

Ben OrensteinBen Orenstein

Yeah. This was it was super nice to catch up again. Stoked to hear about all your things.

Fable TalesFable Tales

Cool.

Ben OrensteinBen Orenstein

Yeah. Cool. Thanks for coming by.

Fable TalesFable Tales

Yeah. Of course.

Ben OrensteinBen Orenstein

Anything you wanna, like, point people towards?

Fable TalesFable Tales

I mean, you know, I'll I'll just give the Stripe is hiring plug if you wanna come work at Stripe, Stripe.com/jobs. Lots of jobs all around the world, lots of remote jobs if you like where you live and don't want to have to move. Yeah. Take a look.

Ben OrensteinBen Orenstein

Cool. Awesome. Alright. Thanks.

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android