TRANSKRIPTIO 🔗
WEBVTT
00:00:00.160 --> 00:00:03.279
Hey, it's Jason, host of the Code with Jason podcast.
00:00:03.520 --> 00:00:04.480
You're a developer.
00:00:04.639 --> 00:00:06.240
You like to listen to podcasts.
00:00:06.400 --> 00:00:07.679
You're listening to one right now.
00:00:07.919 --> 00:00:13.599
Maybe you like to read blogs and subscribe to email newsletters and stuff like that.
00:00:13.839 --> 00:00:14.960
Keep in touch.
00:00:16.079 --> 00:00:23.440
Email newsletters are a really nice way to keep on top of what's going on in the programming world.
00:00:24.239 --> 00:00:26.879
Except they're actually not.
00:00:27.280 --> 00:00:36.479
I don't know about you, but the last thing that I want to do after a long day of staring at the screen is sit there and stare at the screen some more.
00:00:36.640 --> 00:00:40.240
That's why I started a different kind of newsletter.
00:00:40.320 --> 00:00:43.679
It's a snail mail programming newsletter.
00:00:43.920 --> 00:00:44.479
That's right.
00:00:44.560 --> 00:00:51.679
I send an actual envelope in the mail containing a paper newsletter that you can hold in your hands.
00:00:51.840 --> 00:00:59.280
You can read it on your living room couch, at your kitchen table, in your bed, or in someone else's bed.
00:00:59.359 --> 00:01:02.159
And when they say, What are you doing in my bed?
00:01:02.399 --> 00:01:04.799
You can say, I'm reading Jason's newsletter.
00:01:04.879 --> 00:01:05.840
What does it look like?
00:01:06.799 --> 00:01:12.640
You might wonder what you might find in this snail mail programming newsletter.
00:01:12.879 --> 00:01:20.480
You can read about all kinds of programming topics like object-oriented programming, testing, DevOps, AI.
00:01:20.719 --> 00:01:23.760
Most of it's pretty technology agnostic.
00:01:24.159 --> 00:01:42.000
You can also read about other non-programming topics like philosophy, evolutionary theory, business, marketing, economics, psychology, music, cooking, history, geology, language, culture, robotics, and farming.
00:01:42.239 --> 00:01:45.760
The name of the newsletter is Nonsense Monthly.
00:01:46.799 --> 00:01:50.000
Here's what some of my readers are saying about it.
00:01:50.959 --> 00:01:57.120
Helmut Kobler from Los Angeles says, thanks much for sending the newsletter.
00:01:57.280 --> 00:02:00.879
I got it about a week ago and read it on my sofa.
00:02:01.120 --> 00:02:06.400
It was a totally different experience than reading it on my computer or iPad.
00:02:06.640 --> 00:02:12.400
It felt more relaxed, more meaningful, something special and out of the ordinary.
00:02:12.960 --> 00:02:18.879
I'm sure that's what you were going for, so just wanted to let you know that you succeeded.
00:02:19.199 --> 00:02:20.719
Looking forward to more.
00:02:58.319 --> 00:03:03.199
Something about holding a physical piece of paper that just feels good.
00:03:03.439 --> 00:03:04.479
Thank you for this.
00:03:04.639 --> 00:03:06.240
Can't wait for the next one.
00:03:06.560 -->
Load full transcript
00:03:16.000
Dear listener, if you would like to get letters in the mail from yours truly every month, you can go sign up at nonsensemonthly.com.
00:03:17.039 --> 00:03:19.919
That's nonsensemonthly.com.
00:03:20.879 --> 00:03:22.159
I'll say it one more time.
00:03:22.479 --> 00:03:25.599
NonsenseMonthly dot com.
00:03:25.840 --> 00:03:29.280
And now without further ado, here is today's episode.
00:03:50.000 --> 00:03:52.319
Hey, today I'm here with Bruno Sutic.
00:03:52.479 --> 00:03:53.520
Bruno, welcome.
00:03:54.639 --> 00:03:56.479
Hey there, it's great to be here.
00:03:56.879 --> 00:03:57.919
Great to have you.
00:03:58.080 --> 00:04:00.240
Uh we're we're doing this.
00:04:00.319 --> 00:04:08.400
Um, I'm doing this, uh I've been doing kind of a series, a series of interviews with people I found on Reddit.
00:04:08.479 --> 00:04:18.639
I put a post out there that said, like, hey, if you're uh running a Rails-powered business or something like that, um, I'd love to interview you on the show.
00:04:18.800 --> 00:04:29.120
And I don't know if that's exactly your situation, but you mentioned you found me on uh Lucian Ginda's uh uh short Ruby newsletter, and you're like, hey, that sounds like fun.
00:04:29.279 --> 00:04:30.399
I'll come on the show.
00:04:30.720 --> 00:04:33.600
Anyway, uh tell us a little bit about yourself.
00:04:34.319 --> 00:04:36.399
Yeah, uh hey everyone.
00:04:36.560 --> 00:04:39.360
Uh so um that is actually my story.
00:04:39.519 --> 00:04:46.879
Uh so I've I've made like two uh Ruby and Rails projects in the in the last couple years.
00:04:47.040 --> 00:04:55.759
Uh unfortunately they've stayed like side businesses, they never kind of turned into any significant uh source of income, so anything sustainable.
00:04:55.920 --> 00:05:07.600
But yeah, I mean uh I think the technology and the underlying technology uh was uh kind of useful and interesting, and that's uh why I kind of decided to uh to let you know.
00:05:07.759 --> 00:05:13.360
So the first project is uh is about like the domain is kind of somewhat unremarkable.
00:05:13.439 --> 00:05:15.600
It's like a modern broken link checker.
00:05:15.920 --> 00:05:22.480
But I think the uh underlying technology uh is async Ruby, which I have blocked to some extent.
00:05:22.560 --> 00:05:30.480
Uh I think that's like relatively innovative and um pretty useful, and I think uh not a lot of people know about it.
00:05:30.560 --> 00:05:34.879
So I think it's uh it's like you know, it could use some attention.
00:05:34.959 --> 00:05:39.759
Um and the other project that I've uh worked on is called Rails Billing.
00:05:39.920 --> 00:05:47.759
It's a um it's uh a solution for Stripe sub advanced Stripe subscription integrations for Ruby and Rails apps.
00:05:48.000 --> 00:06:05.920
Um uh again, uh it didn't turn out to be like a you know economically feasible project, but uh during the work on it, I kind of worked with Stripe a lot and dug into some deep, deep corners and discovered some useful things and and and like surprising things.
00:06:06.079 --> 00:06:09.759
So um so yeah, that's like uh short intro from my side.
00:06:10.079 --> 00:06:11.120
Yeah, tell me about that.
00:06:11.199 --> 00:06:14.800
The Stripe Building Project, what inspired you to get started on that?
00:06:14.959 --> 00:06:16.160
What led you to that?
00:06:16.560 --> 00:06:17.120
Yeah.
00:06:17.439 --> 00:06:30.000
Okay, so uh I've been a programmer for like 15 years, and from the very start, for some reason, I've always picked up like the I've always been like the billing guy at the companies, right?
00:06:30.079 --> 00:06:39.600
Like it's like if there was like, hey, let's do some billing integration, whether it's stripe or not, I would volunteer and and got that like you know project and worked on it.
00:06:39.680 --> 00:06:45.040
So I've been doing like you know, stripe integrations for for the last 12 years or so.
00:06:45.600 --> 00:06:50.000
And I remember kind of how it was in like you know back then.
00:06:50.160 --> 00:06:58.240
I mean, and I think it's safe to say back then because things have changed radically and dramatically when it comes to integration with Stripe, right?
00:06:58.399 --> 00:07:02.399
So, for example, I I remember uh like one project in 2015.
00:07:02.560 --> 00:07:12.959
It took me around like two weeks to have a full Stripe subscription integration with like um which was relatively like sophisticated, right?
00:07:13.279 --> 00:07:32.079
It had like you know, like this multiple plans per uh per uh per subscription, and it was like um yeah, like you know, the the checkout form was like in line on on the site itself, and then fast forward to like 2023, which is like eight years forward, things have changed dramatically, right?
00:07:32.240 --> 00:07:40.000
You can no longer have this like nice inline checkout form that submits uh credit card number to your server anymore.
00:07:40.160 --> 00:07:56.639
You have to use Stripe checkout, which is like you know, external page uh from um from your application, which is like which may seem weird to your uh you know application users because like you're they're leaving your site and they're like redirected to somewhere else.
00:07:56.879 --> 00:08:08.240
Now, just to like you know, if people are familiar with Stripe integration, Stripe sold that, so now you can have like a Stripe checkout in line with your application, but like I think a couple years back you you could we couldn't have that.
00:08:08.319 --> 00:08:14.639
Like I think it it like they uh uh they announced the feature in like 2023 or two, even even a little bit later, right?
00:08:14.879 --> 00:08:15.360
That's interesting.
00:08:16.639 --> 00:08:22.000
I I use Stripe from like 2011 to 2015, um, and a little bit outside of that too.
00:08:22.079 --> 00:08:37.759
But during that time, I know that I could embed a Stripe credit card form in my application, um, and then uh more recently Stripe checkout
came out, and I'm like, oh, this is a neat additional way that they're offering.
00:08:38.159 --> 00:08:42.639
I was unaware that apparently that was the only option, at least for a while.
00:08:42.720 --> 00:08:46.080
You couldn't do the embedded form, you could only do Stripe checkout.
00:08:47.279 --> 00:08:53.360
Okay, so it's a technical question that I think uh so uh I think Stripe checkout is like the mainstream.
00:08:53.440 --> 00:09:04.559
I think 98% of the applications, right, like you know, that are published uh in like 2025-26 are doing Stripe checkout for a good reason.
00:09:05.039 --> 00:09:13.440
And there's like a lot of nuances, uh nuances there with like you know, financial regulation, the UI regul uh EU, sorry, EU regulation.
00:09:13.679 --> 00:09:24.240
Uh but like yes, you can have like an inline, like you know, a small input field where you enter where a customer enters a credit card number, but look, it it's like hard.
00:09:24.399 --> 00:09:38.559
That that became like really hard, and that is like one of like I wanted that on my projects because it's like a most seamless, uh, seamless uh what do you call it, like solution and like the best solution for end customers, but it's hard.
00:09:38.720 --> 00:09:42.559
You know, it's hard for very, very specific reasons.
00:09:42.720 --> 00:09:49.519
Um the financial regulation, like the finance, the regulation there it there has advanced a lot.
00:09:49.759 --> 00:10:00.639
Like in 2015, like 10 years ago, you could send a credit card number to your server and then just pass it through uh via Stripe API calls.
00:10:00.799 --> 00:10:02.399
That's like no longer the case.
00:10:02.559 --> 00:10:08.639
Like you need to do like uh, I think you need to have you be you need to be like uh the the regulated.
00:10:09.120 --> 00:10:14.879
So uh you would need to have regular audits of your applications in order to do that.
00:10:14.960 --> 00:10:16.320
So that's out of the question.
00:10:16.559 --> 00:10:28.320
Uh now you need like uh JavaScript to submit that credit card number from Stripe uh like uh iframe to Stripe servers directly.
00:10:29.039 --> 00:10:37.120
Um and uh so that's one thing the financial regulation has been improved, I'd say, is for the benefit of end customers.
00:10:37.440 --> 00:10:58.639
And the second thing that has changed a lot and changed dramatically is the EU, so European Union regulation from 2019 that requires uh you know uh businesses doing business in like European Union to have this second factor authentication for payments.
00:10:58.879 --> 00:11:03.200
Now, I'm gonna stop there and just ask you maybe are you familiar with this?
00:11:03.360 --> 00:11:08.000
Is this something uh you that you have as like it's your location?
00:11:09.120 --> 00:11:13.279
The requirement for 2FA for payments?
00:11:13.759 --> 00:11:19.600
No, so when you buy stuff online, you buy and buy things that like you know, a random random online store.
00:11:19.759 --> 00:11:37.840
Are you like as an end user, are you required to like um you know, uh you submit like your a credit card number, you everything, everything that's needed for uh, you know, for the payment, and then there's like this additional verification where you get a striped model saying please authenticate this payment with your bank.
00:11:37.919 --> 00:11:43.600
And then you get you get a like a mobile notification, you click it, and you say approve.
00:11:43.759 --> 00:11:49.440
So is it like a second second step for authenticating uh authenticating online payment?
00:11:50.000 --> 00:12:09.120
No, the closest thing to that is that only sometimes um when I buy something with my American Express credit card, it will have something pop up and American Express will want me to do do a secondary confirmation for that transaction, but that's the only thing.
00:12:09.519 --> 00:12:11.919
Yeah, so I think that's it, right?
00:12:12.000 --> 00:12:22.960
Because and it's called like just you know, if if we have like not a knowledgeable uh listen, like you know, what do you call us, like uh listeners for for this podcast, it's called 3DS, right?
00:12:23.360 --> 00:12:27.440
And it's like it's basically the standard in the European Union.
00:12:27.600 --> 00:12:36.000
Like if you buy every like third or fourth or paid, depends on the bank, really, uh payment, online payment, you get you get this flow.
00:12:36.159 --> 00:12:38.480
And and uh so it's great for end users.
00:12:38.639 --> 00:12:39.360
I mean, I love it.
00:12:39.440 --> 00:12:47.919
It's like uh over here, like online payments are like relatively not relatively, like they're really safe.
00:12:48.159 --> 00:13:01.360
And like, you know, I read like how there's like you know, this big you know, fraud cases in the United States, like we don't have this because like we have like relatively advanced um you know regulation, right?
00:13:01.759 --> 00:13:08.960
And so as an end user, uh it's great to have this, like you know, have this security when buying things online.
00:13:09.519 --> 00:13:31.039
Now, as a developer, you that's really hard to uh implement for subscriptions because it opens up a whole array, a whole like um vector of attacks uh when um for your application.
00:13:31.279 --> 00:13:39.600
And that is why like if you implement that manually, it's like you you may have problems unless you're really, really careful careful.
00:13:39.759 --> 00:13:48.960
Uh but if you use stripe checkout, then Stripe handles that for you, and there's like a much uh there's much less chance that you get exposed to these attacks.
00:13:50.080 --> 00:13:51.600
That makes a lot of sense.
00:13:52.320 --> 00:14:08.240
Yeah, something that occurred to me when I first saw the um Stripe checkout feature is like obviously if I'm just passing the baton to Stripe and letting them do absolutely everything, then that reduces my attack surface area to basically nothing.
00:14:08.639 --> 00:14:09.519
Absolutely.
00:14:09.759 --> 00:14:11.360
Yeah, yeah.
00:14:11.519 --> 00:14:16.000
Um so yeah, I mean, uh that's it.
00:14:16.159 --> 00:14:28.320
And uh, but look, I mean, uh with Stripe checkout, you uh you know, as we talked earlier, you have this additional uh like um step for the end users, right?
00:14:28.399 --> 00:14:51.519
So do you do something they like, you know, for example, if you do like a project management application, if you you know, just a standard uh SaaS app, if that's your thing, the users kind of have to, you know, interact with your app and then they're like redirected to Stripe checkout, which is like relatively simple to do, and they have to finish the checkout there, which is like a always a little bit different experience.
00:14:51.840 --> 00:15:07.679
So like I noticed like online, there's like you know, the small apps, they always do like a checkout, but the big enterprises, like for example, I don't know, like I'll just mention like the big ones like uh Shopify, for example, they have the inline credit card form.
00:15:08.000 --> 00:15:09.440
They also use Stripe, right?
00:15:09.600 --> 00:15:24.159
But they have like this inline really convenient box where they fully control the experience for the end users and they have it tightly integrated with your with their application, um, so it works like you know, just just great.
00:15:24.399 --> 00:15:33.039
So um, so yeah, I mean I think uh the the the the inline input field is like a lot of work but better UX, right?
00:15:33.120 --> 00:15:37.120
Check Stripe checkout, more security, easier, like super easy.
00:15:37.200 --> 00:15:41.919
Uh you know, as you just redirect the user and they're they handle everything there.
00:15:43.279 --> 00:15:46.559
Um yeah, so uh that's it.
00:15:46.639 --> 00:16:13.039
Uh and also like there's like one big limitation to I think uh any Stripe hosted product, whether it's like Stripe checkout or I think uh they the Stripe also has this other uh feature called Stripe uh customer portal, which allows you to do pretty much everything else on their site, which is uh managing, for example, uh cut end users' uh plans, right?
00:16:13.360 --> 00:16:22.159
But the only downside, like the only limitation is you only get to have one plan per subscription.
00:16:22.720 --> 00:16:37.039
I don't know if that if that if that's like uh you know, because like if you if you charge, you know, if your project management application has like a plan per module, you cannot do that with Stripe checkout, like or and Stripe customer portal.
00:16:37.360 --> 00:16:45.360
You only get to have like you know simple pricing model with you know these Stripe hosted uh hosted uh pages.
00:16:46.240 --> 00:16:46.720
I see.
00:16:46.879 --> 00:16:48.720
Yeah, it seems like a big limitation.
00:16:49.919 --> 00:17:04.720
I mean, yeah, I think I guess um I guess you know it's it's the norm nowadays, but like you know, if you if you need something more custom, it's like hard to get with these uh with these, you know, uh hosted stripe hosted pages, right?
00:17:05.200 --> 00:17:19.839
Um so um yeah, yeah, so um what were things like this, like that limitation you just mentioned, uh is that an example of the kind of thing that inspired you to create this?
00:17:20.079 --> 00:17:21.119
What what do you call it?
00:17:21.200 --> 00:17:22.720
Is it a library, a product?
00:17:22.799 --> 00:17:26.559
Uh how do you it's a gem, it's a pay gem, right?
00:17:26.640 --> 00:17:40.160
Uh my idea with it was uh was it to be like a something similar to like what Mike Berham is doing with Sidekick, except like uh I I didn't like I do not yet have like a free plan, right?
00:17:40.319 --> 00:17:47.119
Stripe uh so Mike Perham has like Sidekick, which is like the base sidekick is of course free, free to use for everyone.
00:17:47.279 --> 00:17:50.880
And then he has like a pro and enterprise which are paid, right?
00:17:51.119 --> 00:17:57.519
Uh currently I I only have paid plans just because I don't know, it kind of turned out that way.
00:17:57.680 --> 00:18:02.319
Uh, but I do want to uh offer uh uh free plans sometime in the future.
00:18:02.960 --> 00:18:10.960
Uh but yeah, uh I mean um so I kind of wanted it like the best experience for myself, uh for for my application.
00:18:11.039 --> 00:18:12.799
So I then created that.
00:18:12.960 --> 00:18:15.519
It turned out to be like a really, really hard project.
00:18:15.680 --> 00:18:34.799
Like, you know, handling multiple plans per subscription is like really, really hard, especially in combination with you know what we just talked about just earlier, with uh, you know, the the um you know this 3DS flow, which is like a second factor authentication for payments.
00:18:35.119 --> 00:18:50.000
Um now I mean it's like it kind of gets real somewhat like a lower level, but do you want me to kind of explain one of the common like attacks when it comes to like 3DS?
00:18:50.160 --> 00:18:55.039
Is that something that we you would be or the listeners would be kind of interested to hear?
00:18:55.119 --> 00:19:05.119
Um sure, and and this term that you've used a couple times, I'm I'm not quite catching what it is, and I'm I'm not understanding what the word is and what it refers to.
00:19:05.200 --> 00:19:06.640
If you could expand on that a little bit.
00:19:07.200 --> 00:19:08.240
Yeah, sure, sure.
00:19:08.400 --> 00:19:28.480
So it's uh tree DS, tree as a number, and then DS as just uh characters, and it's uh some kind of uh abbreviation for the protocol uh that's used uh in uh finance between banks and uh card, so Visa and MasterCard.
00:19:28.559 --> 00:19:38.240
So I don't it's called I think uh card networks, and then also Stripe, which is like uh uh like a merchant uh in this case, right?
00:19:38.319 --> 00:19:51.759
So basically it's like some kind of a protocol that's used amongst these players, the bank, the the the Visa, MasterCard, and Stripe to uh kind of
transfer information.
00:19:51.839 --> 00:19:58.559
So I think this is like a pretty much lower level, and this is not some something that you need to know and or understand.
00:19:58.640 --> 00:20:12.720
And I and I also don't understand this like when when you just wanna when you just want payments for your SaaS application, uh, but like it's a thing that like kind of communicates the risk for the transaction, right?
00:20:12.799 --> 00:20:17.039
Whether it's like fraud or not, uh between you know these players.
00:20:17.359 --> 00:20:26.000
And uh then depending on the risk, I think the bank here is the one that like issues, oh, this smells like fraud.
00:20:26.240 --> 00:20:31.440
Let me double check this user and really confirm that they are the card owner, right?
00:20:31.599 --> 00:20:35.440
And when that happens, uh you get this like a model from Stripe.
00:20:35.680 --> 00:20:50.880
And this is uh I'm like 99% sure that this is uh the thing that you got with like uh American Express, because uh that is the only major protocol that I'm aware uh for these kind of confirmations, right?
00:20:51.039 --> 00:21:14.079
So basically, when a user uh wants to do a transaction online, uh if they're like uh suspicious, they get a small and they have to do some other check, some other authentication, which is most uh most often like a confirming uh transaction in uh inside of a bank with like uh you know their banking mobile application.
00:21:15.839 --> 00:21:16.160
Okay.
00:21:17.359 --> 00:21:17.759
Yeah.
00:21:17.920 --> 00:21:19.440
Uh I'm three.
00:21:19.839 --> 00:21:24.240
Yeah, so I'm just I was just gonna look up the like the 3D sec uh 3DS, what it stands for.
00:21:24.319 --> 00:21:25.839
It's like 3D secure, right?
00:21:26.000 --> 00:21:35.279
So I think it indicates that there's like three factors that make the every transaction uh secure for you know in in financial terms.
00:21:35.359 --> 00:21:38.160
Uh but again it's like low low-level stuff.
00:21:38.559 --> 00:21:38.880
Okay.
00:21:40.079 --> 00:21:40.400
Okay.
00:21:40.880 --> 00:21:48.720
Um and then these sorts of things um contributed to your uh starting this this gem.
00:21:49.440 --> 00:22:00.960
Um were you like already trying, were were you already seeking to create some kind of product and you're like, oh, this seems like an opportunity, or were Was it more organic?
00:22:01.039 --> 00:22:03.680
And you're like, I'll build this thing because I need it.
00:22:03.759 --> 00:22:07.119
And oh, this can be a product also, or was it something different?
00:22:07.200 --> 00:22:08.240
Tell me about that.
00:22:08.720 --> 00:22:09.759
Yeah, yeah.
00:22:10.000 --> 00:22:22.240
So actually, I uh I extracted the library from the project I worked on before, which was uh the async Ruby project, the uh the bro the broken link checker.
00:22:22.720 --> 00:22:28.079
Uh so it's it was actually for that product that I wanted to have this seamless experience.
00:22:28.240 --> 00:23:00.799
Uh
so I built it and I kind of experienced how hard I was to handle everything, both like you know, um having like a nice user experience with like an inline uh card number card number input, uh handling 3DS and all the edge cases, which there are many, um, and then also having this like relatively advanced uh like uh pricing model where you can have multiple uh uh subscription plans per user subscription, right?
00:23:01.119 --> 00:23:09.119
Um uh so uh so I worked on all that in uh for this like uh previous project, realized how hard I was.
00:23:09.279 --> 00:23:17.759
So once I kind of saw that like the first project is not gonna take off in financial terms, I was thinking, like, what could I work on next?
00:23:17.920 --> 00:23:20.799
And this seemed like a really hard thing.
00:23:21.039 --> 00:23:36.000
So I assumed that might, you know, if I kind of offer that, that might kind of um gain some traction or gain some interest, but it turns out like it's like no, people just use Stripe checkout and they don't really care.
00:23:36.319 --> 00:23:43.759
Uh but uh I guess it comes it's like about marketing as well, which uh indeed is hard.
00:23:43.920 --> 00:23:45.119
It's hard nowadays.
00:23:46.319 --> 00:23:49.759
Um and how much uptake has this product gotten?
00:23:49.920 --> 00:23:53.680
Do you have just a couple customers or hundreds?
00:23:54.400 --> 00:23:55.279
Yeah, a couple.
00:23:55.599 --> 00:23:56.319
No, no.
00:23:56.480 --> 00:23:59.920
I have two friends and one like real customer.
00:24:00.160 --> 00:24:10.480
Uh, but there's like I mean, I I I don't really know what what the right term would would be like you know, like a product market fit or like marketing or a channel.
00:24:10.640 --> 00:24:17.839
What like but like I don't have like a consistent like I don't have any kind of funnel, you know, uh getting like inquiries.
00:24:18.079 --> 00:24:25.039
Um so yeah, from like economically it's not really it didn't find product market fit.
00:24:25.440 --> 00:24:26.720
I think that's the word.
00:24:27.359 --> 00:24:28.720
Yeah, yeah.
00:24:28.880 --> 00:24:31.039
The marketing part is very hard.
00:24:31.119 --> 00:24:39.599
I said on a recent podcast that I think of that as at least 50% of the endeavor is the sales and marketing part.
00:24:40.079 --> 00:24:46.160
Um that was my like ulterior motive for inviting people onto the podcast.
00:24:46.319 --> 00:25:07.359
Um, because I'm like, well, if I invite like CEOs, founders, CTOs, that kind of person onto the podcast, then I can make some new friends who who are doing their own businesses, and maybe out of some of those, surely out of some of those, uh, some of them will be interested in my product.
00:25:07.680 --> 00:25:13.599
And so we're early on in that experiment, so we'll see how that goes.
00:25:13.839 --> 00:25:16.160
Um, but yeah, it's it's hard.
00:25:16.240 --> 00:25:26.559
Uh the way I look at it is like find the places where these people hang out and then like try to be there and be involved and get to know people and stuff like that.
00:25:26.880 --> 00:25:27.519
Yeah.
00:25:28.720 --> 00:25:29.359
Yeah.
00:25:30.960 --> 00:25:34.319
It might be go ahead.
00:25:34.640 --> 00:25:38.400
Oh, I was just gonna say, um, it's hard enough where I am.
00:25:38.559 --> 00:25:41.359
So I'm in Michigan in a rural area.
00:25:41.519 --> 00:25:43.920
I'm I'm not in San Francisco or something like that.
00:25:44.000 --> 00:25:48.000
So that makes it kind of hard as far as what what I can do in person.
00:25:48.160 --> 00:25:50.720
I can still go to conferences and stuff like that.
00:25:50.960 --> 00:26:02.640
Um seems like it might be even more of a challenge in Europe, um, because there's you're even farther away from these epicenters like San Francisco and stuff like that.
00:26:03.039 --> 00:26:03.920
True that.
00:26:04.160 --> 00:26:04.799
Yeah.
00:26:05.279 --> 00:26:05.759
Yeah.
00:26:06.000 --> 00:26:20.000
Um, yeah, I mean, um I do have like one, like not really a buddy, but like uh like an acquaintance or like a friend that kind of made it in uh in like the SaaS world.
00:26:20.160 --> 00:26:32.960
Uh he created like like local like uh an app from like Europe, from Zagreb Europe with a team in Zagreb Europe, and kind of made it sustainable, made it like a good business.
00:26:33.200 --> 00:26:42.960
Nothing like you know super popular, but still it's like it's it's I think formidable success to have uh working and profitable SaaS.
00:26:43.440 --> 00:26:57.039
Um but in a lot of cases like that, you know, um it's all about like a CEO and like all kind of online gimmicks, which like I feel we as a programmers sometimes shy away from.
00:26:57.279 --> 00:27:00.960
Uh and that's why I think it's like hard for us.
00:27:01.119 --> 00:27:03.200
Um I agree.
00:27:03.759 --> 00:27:04.319
Yeah.
00:27:04.559 --> 00:27:15.359
And like, you know, one thing I I've spent sometimes, so I have like you know, like two SAS products launched like exclusively by me and under my belt, so technically that's okay.
00:27:15.519 --> 00:27:20.160
But like I've also spent like a couple months kind of trying, okay, I'm gonna get that marketing now.
00:27:20.240 --> 00:27:23.680
I'm gonna, you know, I'm gonna start learning and all that.
00:27:23.920 --> 00:27:37.440
And one thing I noticed with like all this rural, and there's like it's huge, huge uh topics in itself, is how hard it is to verify any kind of information.
00:27:37.920 --> 00:27:43.599
It's like so it's in star contract contrast when you start program, right?
00:27:43.839 --> 00:27:50.960
If someone tells you like, oh, with programming, you know, you use this, they give you they give you a couple lines of code.
00:27:51.119 --> 00:28:03.039
Well, it's really easy to just take that, copy paste in like whatever whatever programming environment you use, like for example, Rails Console or uh you know IRB or whatever, paste it in.
00:28:03.200 --> 00:28:04.319
Did you get
the output?
00:28:04.480 --> 00:28:05.119
Does it work?
00:28:05.440 --> 00:28:06.400
Does it work or not?
00:28:06.559 --> 00:28:09.680
Like it's really easy, um, which is great.
00:28:09.759 --> 00:28:26.000
Well, whereas like you know in like in like for example, SEOs, it it takes you like months and months to verify any like techniques or any like strategies or any techniques that like whatever you work on, whatever you learn.
00:28:26.240 --> 00:28:30.000
So um, so yeah, I mean it's like yeah, yeah.
00:28:30.079 --> 00:28:37.200
As programmers, we're kind of spoiled by the fact that we can often get fast empirical feedback.
00:28:37.440 --> 00:28:45.440
Whereas with the business advice, um, a lot of times there's not ever a way to know whether what you did worked, you know.
00:28:45.519 --> 00:28:54.799
Like I've been doing this podcast for five uh plus years, you know, more than that, like I don't know, seven years or something like that.
00:28:54.960 --> 00:28:56.319
Yeah, a long time.
00:28:56.720 --> 00:29:06.000
Um and if something positive happens, uh like I don't know, I get a certain job offer or something like that.
00:29:06.240 --> 00:29:07.759
Is that because of the podcast?
00:29:07.920 --> 00:29:10.559
Is it because of the conference talks that I've been doing?
00:29:10.720 --> 00:29:12.799
Like, I will never know, you know?
00:29:13.039 --> 00:29:16.720
And so you can't operate off of the feedback in a lot of cases.
00:29:16.880 --> 00:29:28.720
You just have to um understand the underlying principles and be like, okay, I know that if I do this, then this other thing is likely to happen.
00:29:28.880 --> 00:29:30.559
I'll never get feedback.
00:29:30.640 --> 00:29:34.640
Um again, you can't empirically test it.
00:29:34.880 --> 00:29:44.720
And so, you know, uh a lot of people uh advocate treating a startup like a genetic algorithm.
00:29:44.960 --> 00:29:49.839
It's like, oh, just toss something random out there and then see what feedback you get.
00:29:50.000 --> 00:30:03.119
And if that doesn't work, make a random adjustment and toss that out there, see what feedback you get, and just kind of like blindly throw things against the wall and see what sticks and just move forward that way.
00:30:03.440 --> 00:30:10.799
And it kind of sounds like something that might work, but it doesn't fucking work, like that that doesn't work.
00:30:11.680 --> 00:30:19.680
Um your feedback is it's not gonna be that fast and it's not gonna be that clear.
00:30:19.920 --> 00:30:22.880
Um, so you just have to understand.
00:30:23.039 --> 00:30:32.799
You know, you can't again, it's not a genetic algorithm where you're just blindly crapping stuff out into the world and then seeing what happens.
00:30:32.960 --> 00:30:38.720
You have to understand why you would do something, and then you do it, and you'll never get feedback on it.
00:30:38.799 --> 00:30:40.559
So it's a totally different thing.
00:30:40.880 --> 00:30:43.680
Yeah, yeah, yeah.
00:30:43.839 --> 00:30:47.279
Because like I it was totally unexpected what you said.
00:30:47.359 --> 00:30:55.519
I thought you were gonna say, look, just throw things out, and something eventually sticks, just because large numbers, just because internet.
00:30:56.160 --> 00:31:02.799
Uh, so it was like surprising to s to hear your perspective on this.
00:31:03.200 --> 00:31:12.240
Um I you know, ten or so years ago, I I I wanted to make it in like an open source world, you know.
00:31:12.559 --> 00:31:19.279
And I kind of got lucky with that, like uh what you just like with that strategy.
00:31:19.440 --> 00:31:25.279
Just like just have ideas and release them, and something eventually will stick.
00:31:25.359 --> 00:31:50.319
And it kind of did, um for me, uh at least in like in the open source world, which is like I don't know if it if it's like a topic for now, but um but yeah, I mean it's it's it's it's interesting to hear your perspective that's uh uh like so what do you like what do you uh like where do you place emphasis when it comes to like understanding?
00:31:50.480 --> 00:31:52.480
Is it like the market?
00:31:52.880 --> 00:32:06.960
Is it like more people, like understanding what people want, and or like maybe even like slightly like you know, just you know, understanding what what drives them?
00:32:07.119 --> 00:32:08.880
Like, where do you place emphasis?
00:32:09.519 --> 00:32:16.400
Like, you know, if I if you may share, because I'm generally you genuinely uh curious about your thoughts on this.
00:32:16.799 --> 00:32:19.440
Yeah, a lot of what you just said is spot on.
00:32:19.680 --> 00:32:27.359
Um so so much of business is just like psychology, understanding human behavior.
00:32:27.680 --> 00:32:35.759
Um, and to me, it's about like modeling other people's behavior and understanding what people do and why they do it and stuff like that.
00:32:35.920 --> 00:32:54.720
And the great thing about that is there is a large body of knowledge uh describing and explaining human behavior uh that is well verified and strongly understood and will never ever change.
00:32:54.960 --> 00:33:09.920
Uh, because you know, human brains only evolve so fast, and by the time human brains uh change meaningfully, I will have been dead for a very long time.
00:33:10.079 --> 00:33:16.960
So all this knowledge will be uh uh equally applicable for the rest of my life.
00:33:17.519 --> 00:33:28.480
So understanding that stuff will never be a waste of time, um, especially because understanding psychology and human behavior is just like useful in life anyway.
00:33:28.720 --> 00:33:31.359
So it'll never be a waste of time.
00:33:32.240 --> 00:33:38.000
Um and I also like to go outside the software industry.
00:33:38.720 --> 00:33:45.119
My experience is that uh software people give the worst business advice.
00:33:45.279 --> 00:33:59.200
It's usually just like some kind of uh advice that somebody gave sometime and somebody else heard, and then just
gets regurgitated over and over, and it kind of becomes like folk wisdom.
00:33:59.359 --> 00:34:07.200
Like, for example, find 10 paying customers and actually collect a payment from them before you ever start building your product.
00:34:07.440 --> 00:34:12.239
That advice gets repeated so much, and it's like, are you sure?
00:34:12.480 --> 00:34:16.639
Like, are you sure that's what everybody should do in all situations?
00:34:16.880 --> 00:34:18.719
I'm not so sure about that.
00:34:19.119 --> 00:34:26.239
So I go outside of the software industry and try to get uh business material from outside.
00:34:26.480 --> 00:34:29.840
But the other thing that I found, man, there's a few things.
00:34:30.000 --> 00:34:35.360
Um, so I've mentioned on the show before that there's a whole fake industry around business advice.
00:34:35.679 --> 00:34:45.920
My strong, strong suspicion is that most people who buy business books are just dabblers, not even dabblers, but like spectators.
00:34:46.239 --> 00:35:01.039
Uh they they they like the idea of starting a business, and so they do the easiest thing you can do, which is to read some of these mass market business books, and that gives them kind of a feeling that they're doing something.
00:35:01.360 --> 00:35:18.800
Um, but really they're not doing anything, and the people who sell these books know that they're selling to people who aren't gonna do anything, and so it's a bunch of fake, crappy advice sold to fake entrepreneurs who are never gonna do anything.
00:35:19.119 --> 00:35:30.400
And understanding that, if in fact that's how it really is, um understanding that makes me look at all these entrepreneurial resources a lot differently.
00:35:31.679 --> 00:35:46.719
I also realized that in addition to a lot of this advice being kind of partway fake, um the majority of useful information is not in a book anywhere, it's not on a blog post anywhere.
00:35:47.039 --> 00:35:58.800
You just have to find people who you have to find smart people who are actually in the arena doing things and learn from them and find out what they're doing.
00:35:59.039 --> 00:36:12.239
And look at your own situation and reason from first principles, understanding psychology and understanding business and economics and stuff like that in general, and being like, okay, what is my situation?
00:36:12.320 --> 00:36:14.880
How does this all apply to my situation?
00:36:15.039 --> 00:36:18.719
Is it like this or like that, and why, all that kind of stuff?
00:36:18.960 --> 00:36:21.440
So that's that's some of how I look at it.
00:36:23.360 --> 00:36:24.079
Interesting.
00:36:24.239 --> 00:36:24.639
Interesting.
00:36:24.800 --> 00:36:40.079
I mean, I think even finding what you mentioned, like finding people that are successful and just maybe learning from them, or like just I think that's that's also a privilege or or hard, you know.
00:36:40.239 --> 00:36:52.320
Uh as I mentioned, like I think at the start, I I only have one, not not a friend, but like, you know, a person that I could invite to a coffee or a beer like every six months.
00:36:52.559 --> 00:36:55.519
So like you know, acquaintance, so to speak.
00:36:55.760 --> 00:36:58.400
I mean, just one, right?
00:36:58.559 --> 00:37:05.840
Um, and I don't get to pick his brain like I have to be like normal around people, you know.
00:37:06.079 --> 00:37:08.559
But uh but yeah, do you have any like advice?
00:37:08.719 --> 00:37:11.920
I mean, uh, if it interests me, maybe it interests other people.
00:37:12.079 --> 00:37:22.159
Like, you know, how would you go about like would you go out on like meetups, like local meetups about business that are so outside of programming, right?
00:37:22.320 --> 00:37:27.039
Not about Ruby, but about like, you know, I don't know, something else?
00:37:27.599 --> 00:37:30.239
Is there something you do that you think is applicable?
00:37:30.639 --> 00:37:32.480
Yeah, that's an interesting question.
00:37:32.639 --> 00:37:36.880
Um, I suspect many people might not really like the answer.
00:37:37.119 --> 00:37:46.480
Um, but here's how I have made a lot of prominent friends and connections in the Ruby community.
00:37:46.639 --> 00:37:51.920
Um, and then I'll speak to outside the Ruby community and outside the program community also.
00:37:52.239 --> 00:37:55.760
Um, but this podcast has been a huge one.
00:37:56.000 --> 00:38:02.719
Um, an unexpected side benefit of this podcast is all the relationships that I've gotten out of it.
00:38:03.039 --> 00:38:16.079
Um, because when I invite people onto the podcast, almost everybody says yes, and then we talk for an hour, and we uh often we come away with some level of being friends.
00:38:16.239 --> 00:38:18.480
Sometimes it's even like instantaneous.
00:38:18.559 --> 00:38:27.119
We're just like, yes, you are my friend, and it goes both ways, and we're just instantly friends, and that's always great when that happens.
00:38:27.280 --> 00:38:30.320
Um, and honestly, that's kind of the majority of the time.
00:38:30.480 --> 00:38:39.360
We meet each other and we just like each other, and now we're just kind of you know, you don't become friends from just one conversation, but it's the start.
00:38:39.920 --> 00:38:48.239
Um so that's one thing, and then you talk to somebody over and over throughout the years, and they kind of become friends, and you see them at conferences and stuff like that.
00:38:48.320 --> 00:38:52.239
So that's another thing, attending conferences and meeting people in person.
00:38:52.719 --> 00:39:16.639
Um, and I don't just show up, but I made a I make a deliberate effort to make connections there, and not just like you know, I'm not just trying to like collect business cards or certainly not give out business cards or that level of transactional relationship, but I'm trying to make genuine friendships with people, and I hardly go to any talk.
00:39:16.719 --> 00:39:22.960
Sometimes I go to a conference and I don't go
to a single talk, I just spend the whole time talking with people.
00:39:24.400 --> 00:39:35.039
And then I even have hosted my own conference for three years, and then I'm doing a fourth one this year, and that is a whole different level.
00:39:35.199 --> 00:39:51.280
Um, like for example, uh well, I don't I don't necessarily want to like name names and stuff, but I've I've invited prominent people uh to speak at my conferences, and that's a good opportunity for people, you know.
00:39:51.360 --> 00:39:56.719
Uh people like to speak at conferences because all the reasons that they do.
00:39:56.960 --> 00:40:08.400
And if they're speaking at my conference, well, then I get to organize a speaker dinner and I sit and have dinner with these people, and we spend time throughout the conference, blah, blah, blah.
00:40:08.559 --> 00:40:11.760
We we form a much closer relationship.
00:40:12.000 --> 00:40:16.320
Then maybe we continue doing podcast episodes and stuff like that.
00:40:16.639 --> 00:40:26.960
It's a great way to get closer with people, and then because I did that, partly because I did that at least, I was invited to co-chair RubyConf 2026.
00:40:27.599 --> 00:40:37.920
And so I've now invited three keynote speakers to RubyConf 2026 from connections I had before.
00:40:38.159 --> 00:40:52.320
And now, you know, I'm surely going to be able to go and have dinner with these keynote speakers all together, and these are I can't share any of the names yet, but these are all really big people in the Ruby community.
00:40:52.559 --> 00:40:54.320
That's been really helpful.
00:40:54.800 --> 00:40:57.199
Uh, and then the other thing is writing.
00:40:57.440 --> 00:41:03.440
I've done a lot of blogging, that has worked out really well for me, drives a lot of traffic to my site.
00:41:04.079 --> 00:41:10.320
These things combine, like I host my podcast on the same website where I host my blog.
00:41:10.480 --> 00:41:12.079
Hardly anybody does that.
00:41:12.320 --> 00:41:17.519
But if you do that, then it's like two tributaries flowing into the same river.
00:41:17.840 --> 00:41:21.280
All the SEO juice goes to the same domain.
00:41:21.920 --> 00:41:28.719
This is one of those things where like I'll never know, I'll I'll never empirically know whether that helped with my SEO.
00:41:28.880 --> 00:41:31.119
But I know that my SEO is pretty good.
00:41:31.199 --> 00:41:40.719
If if you Google for a lot of these topics that I've written about, my post is like number one or number two, or at least first page for a lot of these things.
00:41:41.039 --> 00:41:45.360
And uh often uh pretty broad topics like code duplication.
00:41:45.440 --> 00:41:52.480
If you go, if you Google code duplication, last time I checked, one of my posts was on the first page.
00:41:52.639 --> 00:41:55.440
It's like at the very end of the first page.
00:41:56.239 --> 00:41:58.400
Um, so that has helped.
00:41:58.480 --> 00:42:11.679
And one other thing I'll mention, uh, it's another form of writing, is my my snail mail programming newsletter, which I advertise at the beginning of each of these podcast episodes.
00:42:11.920 --> 00:42:17.199
That is a unique way to reach people that's a little bit more intimate.
00:42:17.360 --> 00:42:22.000
Uh, you know, they have to give me their home address and get mail from me and stuff like that.
00:42:22.239 --> 00:42:32.880
And I include things that are fairly personal in these newsletters because it's not like an email, uh, an email newsletter where it has to be on topic or people will unsubscribe.
00:42:33.119 --> 00:42:38.400
I can just I can go nuts and and put whatever I want in these newsletters, so I do.
00:42:39.039 --> 00:42:43.280
It's called nonsense monthly, so nobody can complain if it's too off topic.
00:42:43.679 --> 00:42:44.559
Yeah, I saw it.
00:42:44.719 --> 00:42:47.119
Like, I dude, like what's going on with that?
00:42:47.199 --> 00:42:48.480
Like, is that like a thing?
00:42:48.559 --> 00:42:51.840
It's like, do you actually do that still?
00:42:52.159 --> 00:42:53.199
Oh yeah.
00:42:53.519 --> 00:42:56.480
Do people like pay you 50 50 bucks, right?
00:42:56.559 --> 00:42:57.039
Did I get it?
00:42:57.519 --> 00:42:59.679
People pay for it 50 bucks a year.
00:43:00.719 --> 00:43:04.800
Okay, can you can uh can you share like anything?
00:43:04.960 --> 00:43:06.719
Is it like above hundred?
00:43:07.039 --> 00:43:10.320
Like it's like some number, like is it like 10 people?
00:43:10.480 --> 00:43:11.119
Is it 50?
00:43:11.199 --> 00:43:12.239
Is it 100?
00:43:12.639 --> 00:43:13.280
500?
00:43:13.440 --> 00:43:17.440
Like I mean, it's you're just curious about like the reach that you get with that.
00:43:17.599 --> 00:43:27.039
But that that's yeah, that's like I don't even know the the good word for that, like you know, yeah.
00:43:27.119 --> 00:43:30.559
So in a positive and a surprising way, by the way, right?
00:43:30.639 --> 00:43:37.840
It's not like you mean if if people do subscribe, then you have something there, which is like envious from my side.
00:43:38.079 --> 00:43:38.960
Uh, you know.
00:43:39.280 --> 00:43:43.760
Yeah, to be honest, I'm surprised that anybody signs up for the thing.
00:43:43.920 --> 00:43:50.639
Um, but I have this report that I can run that hits the Stripe API and tells me like what my annual revenue.
00:43:50.960 --> 00:43:55.280
Last time I checked, it was like twelve or thirteen hundred bucks a year or something like that.
00:43:55.679 --> 00:43:58.639
So not nothing, enough to cover the postage.
00:43:59.440 --> 00:43:59.679
Yeah.
00:44:00.000 --> 00:44:00.239
Yeah.
00:44:00.480 --> 00:44:00.800
Yeah.
00:44:01.760 --> 00:44:04.480
And then there's some VIPs on it too.
00:44:04.800 --> 00:44:16.719
Because, you know, for example, uh my my current boss and at least two of three of my former bosses are on my list.
00:44:16.880 --> 00:44:24.719
Cause I want to be able to reach people and have some influence on people,
perhaps, and just remind people that I exist.
00:44:25.360 --> 00:44:30.480
I I used to do this to help with my consulting business, but now I don't do that anymore.
00:44:30.719 --> 00:44:35.199
Um but again, it's it's a reminder once a month that I exist.
00:44:36.079 --> 00:44:48.239
And so if, for example, I need something from somebody and I haven't talked with them in five years, but they've been getting my newsletter for the last five years, it's not exactly out of the blue.
00:44:48.320 --> 00:45:03.440
You know, they've been hearing from me every month, assuming they actually open and read the letters, which not everybody does, but I think most of the people do, because they uh they'll like text me and be like, hey, great newsletter this month, or something like that.
00:45:03.679 --> 00:45:08.079
So those are some of the benefits that I get out of it, in addition to just the revenue.
00:45:08.960 --> 00:45:09.599
Yeah.
00:45:10.159 --> 00:45:10.800
Yeah.
00:45:11.599 --> 00:45:28.239
It's like I just want to like, you know, some of while we're talking a lot of these things, like I just want to share one of the things that occurred to me, and it occurs to me the the older I am, like the more mature, so to say, it occurs to me more and more.
00:45:28.320 --> 00:45:33.679
And that is like how important really the human contact is.
00:45:33.920 --> 00:45:49.199
And not just in like a customer-to-business owner context, it's right, what like uh I guess like my end goal, my my desire, like to be like a business owner that like has a lot of customers, that's a great position to be in.
00:45:49.360 --> 00:46:03.440
But what you you were talking a lot was like this just normal connection with other people, whether it be like professionally in conferences, having dinners, you know, the the e the the snail mail thing that you have.
00:46:04.079 --> 00:46:30.079
And like, if I may share a private thing that's not super like uh I don't feel anything shameful, but like when I was like younger, I thought like, look, you get to be a successful business person or like whatever you do successfully by just being smart and just doing some great thing, and you put it out there, and suddenly you you have things going, which apparently is not the case.
00:46:30.239 --> 00:46:47.840
And like I think uh again, the the older I get, and like the the more and more I become like aware of the things you were just talking that like you know, having relationships uh with people like normal relationships is like really important, yeah.
00:46:48.239 --> 00:46:50.400
Yeah, yeah, a hundred percent.
00:46:50.480 --> 00:46:57.679
It's all about people, and there's kind of this principle or philosophy or whatever that I go by.
00:46:57.840 --> 00:47:12.719
I haven't articulated it before now, but how many people can I form such a good relationship with that they would just do anything for me?
00:47:14.320 --> 00:47:16.239
And that's you know, that's not easy.
00:47:16.880 --> 00:47:21.360
That requires you gotta have you you you have to give before you can get.
00:47:22.159 --> 00:47:29.440
And so how can I just make people like me so much that they would just do anything?
00:47:30.159 --> 00:47:41.119
Um, and you know, that's a little bit extreme, but like how can I at least get people to like me enough that they would pay me 50 bucks a year for my newsletter or something like that?
00:47:42.159 --> 00:47:45.440
That's that's one way that I that I think about all this.
00:47:45.599 --> 00:47:49.599
If if if you give enough, then you'll get something back.
00:47:51.440 --> 00:47:53.280
Yeah, absolutely.
00:47:55.360 --> 00:48:05.920
May I kind of change the topic slightly but still stay on like the same venue on like the intersection between people and business and work and all that.
00:48:06.239 --> 00:48:24.400
But like, does it occur to you, and I'm just gonna say for a go for first perspective, the other thing that like the the older I get is kind of starting to become like more obvious, and that is just luck, or just a little bit of luck, right?
00:48:24.719 --> 00:48:52.960
Like, look, I mean, I've been like in some of the life situations that are business and non-business related, and you just gotta have a little bit of that something positive happens, or to put it another way, I've been in the situation like business, like for example, job interviews just recently, I think three months ago, where it was like, look, I'm like a perfect guy for your job.
00:48:53.119 --> 00:48:58.559
I'm like, I I kind of did uh an extra step during the job interview, like before the job interview.
00:48:58.639 --> 00:49:05.440
I find you stripe stripe bugs in your uh SaaS application, you know, because like we didn't get to spend much of time on that.
00:49:05.519 --> 00:49:12.320
Like, you know, there's like these X Stripe exploits that where you can get like full access to the application without paying anything.
00:49:12.480 --> 00:49:28.880
Okay, it doesn't really matter the technicalities, but like and for some reason, like it's like maybe I was like clumsy with the words or this and the the situation kind of got derailed, and like I get didn't get that particular job, right?
00:49:28.960 --> 00:49:33.840
Even though everything was like logically is in favor of me getting that job.
00:49:34.079 --> 00:50:00.000
And on the flip side, like there were some like you know, life situations, also closely business related, like you know, work-related, where things like kind of flow and good things happen, and you have that little bit like just like a spark, like what is there, like the right phrase, but like you just have that little bit of luck and things fall into place and great, right?
00:50:00.480 --> 00:50:02.559
Um yeah.
00:50:02.800 --> 00:50:05.039
Do you have anything to add in that regard?
00:50:05.199 --> 00:50:22.400
Like the luck, the the the flow, the like just you know, just a little bit of it, you know, not
talking about winning the lottery, something like obscene, but just like um yeah, because yeah, I mean I think there's there's something to it, right?
00:50:22.880 --> 00:50:25.280
I mean, we depend on luck a lot.
00:50:25.760 --> 00:50:36.800
Um to me it's like if you have just one chance to do something, um maybe there's a really small chance that it works out.
00:50:37.119 --> 00:50:58.000
Like if you're gonna if you say, okay, I have a job as a grocery store cashier, as I did when I was younger, and I want to become a programmer, which I did, imagine that I decided that I was gonna go on one interview, and if I got the job, then great, I'm in.
00:50:58.159 --> 00:51:02.320
If I didn't get the job, then I guess I'll just be a cashier for the rest of my life.
00:51:02.480 --> 00:51:10.880
You know, imagine if I put all my eggs in the basket of that one uh one event and I didn't get the job.
00:51:11.119 --> 00:51:13.280
Like, that's a terrible plan.
00:51:13.360 --> 00:51:20.719
Um, you have to have a whole bunch of these and put yourself in a whole bunch of situations where something lucky can happen.
00:51:21.119 --> 00:51:23.360
So that's kind of how I think about that.
00:51:23.599 --> 00:51:33.920
And I've gotten lucky on some stuff, and I've gotten unlucky on a whole bunch of stuff, so many things.
00:51:34.719 --> 00:51:45.360
Uh, and and it's kind of like I don't know, you have to get your teeth kicked in like 99 times, and then on the 100th time you you get the payoff.
00:51:45.840 --> 00:51:48.320
I think the ratio is something like that.
00:51:48.880 --> 00:52:03.679
And so a lot of people who seem from the outside just to have experienced some good luck, yes, they did, but it's only because before they had that one stroke of luck they got their teeth kicked in 99 times.
00:52:04.079 --> 00:52:04.719
Yeah.
00:52:05.360 --> 00:52:08.559
You know, I uh I also want to share, uh I agree.
00:52:08.639 --> 00:52:18.159
I agree with like you know, just trying and putting yourself out, doing whatever you want to whatever you aspire to, and then eventually, you know, things will work for you.
00:52:18.480 --> 00:52:34.320
I want to share a different perspective that I think is more uh like uh it happens more in Europe where people are much, especially in like you know, this so I'm like somewhere between like uh mid and eastern Europe, right?
00:52:34.559 --> 00:52:54.400
So let's say I have this Eastern European perspective of people being more passive, less entrepreneurially uh entrepreneurial, and there is like I have a couple friends uh that have been really, really passive with their careers and with their work.
00:52:54.559 --> 00:53:03.199
And they have stayed as like you know, some some crazy like I know a guy from college, he stayed at the same job for 15 years now.
00:53:03.440 --> 00:53:08.480
15 years, like it's like it's not like 1950s anymore.
00:53:08.559 --> 00:53:14.559
Like you change a job at like five every five years, even
if you're like you know the most like lazy guy, right?
00:53:14.719 --> 00:53:16.719
This guy stayed at the job 15 years.
00:53:16.880 --> 00:53:21.599
He was like his job, he was complaining constantly, right?
00:53:22.079 --> 00:53:32.239
Last year we talked and he became a partner at his company, and uh he now he he's now a business owner, uh partially, right?
00:53:32.480 --> 00:53:36.559
In uh in a really favorable uh position.
00:53:38.159 --> 00:53:46.639
And that is something that I don't even know how to like put into like word what's going on there is like pure luck.
00:53:46.800 --> 00:53:51.440
Uh uh because like I can't find any like concept that would explain it.
00:53:51.599 --> 00:54:15.199
And I have like just recently I've had two similar scenarios, every both happened in the last year, where people have like seemed relatively inert and like maybe even lazy in throughout the like a lot more than a decade, and are now like successful entrepreneurs, uh, which like they're like in enviable positions, right?
00:54:15.920 --> 00:54:18.559
And I um just wanted to share it.
00:54:18.800 --> 00:54:36.719
It happens for some reason for some people, um and it's even it even goes against like you know the like the common sense advice like look be proactive, go do stuff and try things and and things will uh happen.
00:54:37.039 --> 00:54:40.639
Apparently, exactly the opposite does happen.
00:54:40.800 --> 00:54:42.719
Um so yeah, I just wanted to share.
00:54:42.800 --> 00:54:48.559
We don't, you know, if you if you don't have you know, if you have some principles that can apply it, I'd be glad to hear about it.
00:54:48.719 --> 00:54:52.800
I can't, I can't like I don't even know how to explain that.
00:54:52.960 --> 00:54:54.800
Why didn't you yeah, that's interesting.
00:54:55.039 --> 00:55:04.239
It's interesting watching people's life trajectories and career trajectories and how they play out, and it's like, why did that happen the way it did?
00:55:04.719 --> 00:55:08.400
And more importantly, uh, what do I do?
00:55:08.480 --> 00:55:10.639
If if I want that to happen to me, what do I do?
00:55:11.039 --> 00:55:11.679
Exactly.
00:55:12.960 --> 00:55:15.119
Um, I wish we had a lot more time to talk.
00:55:15.199 --> 00:55:17.360
Uh we're just about out of time.
00:55:17.519 --> 00:55:21.599
Um, I I hope you're up for uh for some more conversations.
00:55:21.760 --> 00:55:29.119
Um, you know, I mentioned sometimes have I have a podcast episode with somebody and we're like instant friends.
00:55:29.280 --> 00:55:32.880
Uh at least from my end, I feel like that's the case here.
00:55:33.039 --> 00:55:37.599
Um so I'm I'm really glad uh glad that we could talk and I hope we can talk again.
00:55:37.679 --> 00:55:44.079
Um before we go, is there anything you want to share in terms of links and stuff like that where people can check out what you're up to?
00:55:44.480 --> 00:55:52.079
Well, I mean, I think uh I shared uh the most about like the these debate stripe integration gem for Rails.
00:55:52.239 --> 00:55:54.800
It's RailsBilling.com.
00:55:55.280 --> 00:55:57.760
If anyone's interesting, they can check that out.
00:55:57.840 --> 00:56:10.559
Uh in my personal uh website where I uh have a couple links, uh uh a couple blog posts about Async Kruby uh is BrunoSutik.com, s-utic.com.
00:56:10.960 --> 00:56:13.039
So yeah, that's uh that's all for me.
00:56:13.280 --> 00:56:15.119
All right, we'll put that stuff in the show notes.
00:56:15.199 --> 00:56:17.679
And Bruno, thanks so much for coming on the show.
00:56:17.920 --> 00:56:20.320
Yeah, Jason, uh, thanks a lot for having me.
00:56:20.400 --> 00:56:29.360
It was really, really uh pleasurable to uh to be on the show, and I do get a uh I hope we get another opportunity to uh talk sometime again.
00:56:29.519 --> 00:56:30.000
Definitely.
00:56:30.159 --> 00:56:30.960
Thank you.