Episode

How about tomorrow · May 11, 2023

Benchmarking, Type Systems, and Good Hustle

Benchmarking, Type Systems, and Good Hustle
Show notes

Adam & Dax discuss Dax's recent efforts in benchmarking Vercel against OpenNext and then bring on Aaron Francis to discuss type systems and what good hustle looks like.

Transcript
00:00

Dax

You wanna know something funny? I, this is embarrassing. I wanna say it anyway.

00:04

Adam

Say it. Hey. Can you tell me about the benchmarking stuff? I just can't wait any longer. It's driving crazy.

00:32

I just need to know, like, how slow is Vercel?

00:34

Dax

How slow is Vercel? Yeah. Okay. So I guess for some context, what I found interesting is it seems like nobody actually benchmarks providers as much as I thought they would. And I think everyone's kind of the same position where I'm like, oh, everyone says it's fast.

00:49

Someone else probably benchmarked it. Everyone's probably assuming the same thing. And, AJ actually told me the other day that no one had really benchmarked AWS until, like, Max had that, like, nice Lambda cold start page. And that was, like, what, like a year ago? So I think we're just in this funny situation where, like, we're all engineers, but we don't, like, really do the engineering stuff

01:12

Adam

a lot of the time. Yeah.

01:14

Dax

Which I get because, like, you know, one, these speed differences might not even matter. Like, you're gonna use the thing you wanna use, and you'll just eat the performance overhead if it gives you other benefits. But yesterday I was like, okay, we built this OpenNext SST thing and deployed Next. Js to AWS. We didn't really focus on performance.

01:34

We were just kind of like, let's just make it work and we'll figure out performance later. I assumed that it just gonna be slower because of that because we know we, like, didn't do anything special. So let me just run a benchmark. So I ran it, and the results were really surprising. I thought Open Next would probably be like I was ballparking, like, maybe, like, 30% slower in general.

01:58

It turned out it was actually 3 times faster for the mean latency. The throughput was also insanely higher, I think. So I did a benchmark of, like, 10 seconds, 20 concurrent requests, constantly hitting it for 10 for 10 seconds.

02:11

Adam

Mhmm.

02:12

Dax

I think the throughput was like almost 4 times more, on the AWS self hosted version with OpenNext. So this was kind of shocking. I was like, their brand is just so much around, we focus on making your front ends run well. And I think that's true of how some of the React framework is designed. But I think I've always said this, performance comes a lot from architecture.

02:35

Like if you improve your architecture, you can probably like make a much bigger impact than improving like, oh, this function executes faster in my code base. So yeah, that's kind of what's at play here is their architecture is probably really complicated for two reasons. I think one reason being they have a lot of additional features that the Virtual Cloud Dashboard offers. And some of these are good features, so they probably have to execute some extra stuff to support them. And then 2, they're in the challenging situation of, you know, they potentially need to support a 1000000 deployments on their AWS account.

03:09

That means they're running up on all kinds of like AWS limits, all kinds of workarounds they need to do. So that part, the first part, if they have additional features, okay, maybe worth the performance trade off. The second part where them having to scale to a 1000000 deployments is not your problem, that's their problem. They're getting worse performance for that reason. Again, I'm theorizing why it could be so much slower.

03:31

But that to me is like, that's like less acceptable. Like, I'm not gonna get worse performance just so they can scale more, you know? Yeah. Yeah. There, I can see the self hosting side being worth it.

03:41

Adam

So it it we're just to clarify, were these API requests, or these were like SSR rendering pages?

03:48

Dax

Yeah. So, the thing that I posted yesterday was very simple. It was just a hello world type API route just to keep it as as stripped down as possible. Because what I was actually looking to test was what the Next. Js runtime overhead was of just having a simple API route.

04:04

Yeah. But I just kind of discovered this other thing. I did run benchmarks on, like, the root page, which is which is an which is a React server component page. Also, it was also, like, drastically different there as well. So it doesn't I don't think there's a difference between, API router or any other stuff.

04:20

Yeah. And it puts into question, like, if it's this much worse, all the streaming stuff that they added, like, does that even compensate for that? Is that even worth it on top of all this? Like, we haven't added streaming, and we will. And so we'll improve the performance even beyond what we have now.

04:37

But, yeah, it really confuses me because it's like this is the most basic thing. Like, what's the server? What's the delay from the server and you? Yep. And that's like where you start optimizing things.

04:48

And I feel like they focus on a bunch of other places while the core is is kinda slow.

04:53

Adam

I mean, I've realized when I saw this stuff yesterday that you posted that all of my stuff under Excel is just, like, simple websites that don't even have an API. It's just, like, informational websites. And the only, like, full stack site where there's, like, a back end and I used API routes and I used Prisma too,

05:09

Dax

so that's probably a lot

05:10

Adam

of the problem. But the only one I've ever built and deployed to Vercel is so stupid slow. I just assumed I was doing something wrong. And then I learned, like, Prisma's giant and you like, Prisma in a Lambda function is just a bad bad deal. I learned that, so that's probably explains a lot of it.

05:25

But I was really surprised. And I think it's like it's kinda like when somebody yells at a crowd for help. You just assume somebody's taking care like, someone has done this

05:34

Dax

work Yeah.

05:34

Adam

And figured out that we're so slow. Turns out, no. You just did it yesterday, and that's very surprising.

05:39

Dax

Yeah. It's a diffusion of diffusion of responsibility thing. It's like we all just assume someone else is gonna take care of it, and it just doesn't happen. Yeah. Yeah.

05:46

So it's interesting. So I didn't I didn't get a response from them. I'm sure they're actually, no, I did. 1 of their employees replied being like and I kind of gave him my setup, and he's going to explore. Yeah.

05:55

Like they could and I talked to AJ for a bit. AJ had a bunch of theories on what they might be doing behind the scenes that causes some of this because he was at Serverless Inc when they kinda had their hosted offering. I think they had to do a bunch of weird workarounds also to deal with just the challenges you run into when you're trying to, you know, support a 1,000,000 deployments.

06:13

Adam

So I'm I'm used to, like, the true the main trade off seems to always be, like, developer experience or runtime performance. And I don't feel like that's, like, inherently should be the case. I feel like we should get to a place where we have both. But it turns out Vercel is that too. I didn't know that I was actually sacrificing runtime performance inherently by deploying to Vercel.

06:34

But, like, they tout all these DX features, like, it's so easy to use at the cost of runtime performance, it sounds like.

06:42

Dax

Yeah. There's a historical advice. Don't remember exactly how the quote goes. It's like, make it work, make it something, make it fast, or whatever. I forgot what that is.

06:51

Adam

Make it work, make it good, make it fast, or something like that?

06:54

Dax

Something like that. Yeah. And I find that you can you can if you can manage to rearrange that quote in every any order, and you can kind of be like, oh, that makes sense. And I think for us, our order is like, we don't have an amazing dashboard or console, which is an amazing hook if you're trying to sell something like Vercel. So you show off that, look how easy it is, that, like, magic experience.

07:16

And I think that's kind of where they focused. And they when you focus on a certain area, you kind of compromise on the other. So it might be performance they compromise on. Also just like, like structure of the project, like it's not open source, it's closed source, things like that. It's cause they did things in a certain order.

07:30

I think for us, we took a harder direction where we were like, let's make it open source first, which has its own challenges. Okay. Let's make it perform well, which has its own challenges. And then now we're getting to, okay, we're going to eventually have a dashboard that feels like as magical to use as ourselves. It's just a different order.

07:48

But I like our order better because I feel like it leads to something that's sustainable and healthy, whereas the other one grows really big upfront because you can really hook a lot of people. And then then you have a bunch of work you have to now do afterward now that you have this this attention on you.

08:05

Adam

Yeah. I'm so glad though, I'm I got out of that world, and I'm now just a Laravel developer. I'm never gonna touch Next. Js or Vercel again. Wait.

08:13

When could SST deploy Laravel apps? When will that be a thing?

08:18

Aaron

Does that make sense?

08:19

Adam

I mean, there's Laravel Vapor. Right? Which is some kind of serverless deployment option for Laravel. So can you just, like, copy what they did with Vapor and build it in the SSD? Yeah.

08:28

We probably I'll talk to Frank. I'll get I'll get I'll get on it.

08:31

Dax

Is that an implication that Frank does all the work? Yeah.

08:34

Adam

Yeah. Yeah. No. I'm just, like, he does these new frameworks. Right?

08:37

He just itself.

08:38

Dax

That's true. We've been we've been laughing so hard at Frank because, he's, like, really becoming a world expert on how all these frameworks work under the hood, but he just does not do front end development at all. So he knows, like, the exact build process of SvelteKit and all their little quirks and how it worked under the hood, But, like, he could never build a Svelte app. I mean, he, like, he has never used Next. Js.

09:01

And he, like, has never used Remix. And he doesn't understand any of the conversations that anyone is having about any of these things, but he weirdly knows more about this stuff than anyone. It's just like a weird weird situation. But yeah. It's what happens when you work in infrastructure, I guess.

09:15

Adam

Yeah. Now I wanna see, like, a YouTube video of Frank building a front end app. That would just be that would make my day. Can we please make that happen? Oh, well.

09:24

Dax

Yeah. Exactly. And he has all these opinions on what he likes and what he doesn't like, but it's fully related to, like, how annoying their internals are. So And Next. Js is

09:33

Adam

the most annoying by far. Right?

09:35

Dax

Yes. Yeah. Yeah. I mean, yes. Everyone everyone knows this.

09:37

I really

09:38

Adam

gotta try Svelte. I kinda tried the Svelte experience. People would get really passionate about Svelte.

09:42

Dax

My experience was kind of interesting because I was there was a moment where I knew I didn't wanna do React anymore. So I was like, okay, what are the options? And Svelte really seemed like it was it. I was like, I'm going to be in a Svelte world. I'm going to do Svelte.

09:56

But literally right when I was about to go all in, Ryan published Solid 1.0 or I think it was right before Solid 1.0. He had some blog post that went viral about Solid. Js. And I saw it, and I was like, think I already said this before, but I was like, Ugh, great. Another, like, stupid framework that looks like React.

10:17

Like, what's the point of this? But it intrigued me enough to, like, be like, okay, maybe I should do more research before I commit to Svelte. And then that's when I researched Solid and then, ended up using that. But it just goes to show that yeah. So I'm, like, super in the solid world.

10:32

I'm building everything as solid, but it's, like, just sheer random coincidence and timing that that made it so that I, I used it. If if if it came out that blog post came out a week later, I don't think I would be using Solid.

10:45

Adam

Wild. Sliding doors of tech. Now, DAX is, like, one of the big solid per people. You're one of the big solid advocates.

10:55

Dax

Yeah. And

10:56

Adam

just Could've been doing the same for Svelte. Who knows what that world would have been like?

10:59

Dax

And that means I would have been pro Vercel probably.

11:02

Adam

Oh, yeah.

11:03

Dax

Alternate universe.

11:04

Adam

You might be working at Vercel right now.

11:06

Dax

Oh my god.

11:08

Adam

I feel like I'm

11:08

Dax

working at Vercel without much benchmarking

11:10

Adam

it. Yeah. Right. You're doing

11:12

Dax

that work for them. So tell me about this Laravel curiosity you do. I wanted

11:17

Adam

to make a video. So I'm like a free agent right now. Like, I've left React.

11:21

Dax

I don't like that, by the way.

11:22

Adam

You don't like what? Me being a free agent? I can be what I

11:25

Dax

wanna be. A free agent. I I need to know where you are. I need to pin I need to pin it down.

11:29

Adam

I don't like the uncertainty.

11:30

Dax

If you didn't end up anywhere, you could end up somewhere I don't want you to end up.

11:34

Adam

Maybe I could. Maybe I could. What are you gonna do about it? What's the problem with me ending up anywhere? What's kinda

11:38

Dax

just won't talk to you anymore.

11:40

Adam

You just don't no. You just don't want me to be cool. You think I'm gonna become cool because I'm gonna get into some technology that you're not in on yet, and then we'll have problems. Because you like to be the cool I'm

11:49

Dax

not worried about you becoming cool.

11:53

Adam

That's fair. Totally fair. So Laravel, I wanna make a video now that I'm done with React forever and ever. I wanted to make a video of my first impressions of Laravel, because I hear it's like they live right beside us. They're like our neighbor that we never really hang out with.

12:08

Dax

Our nice neighbor.

12:09

Adam

Yeah. Our nice neighbor. The kind, considerate neighbor that, like, brings your trash to the front door. Like, so it brings your trash can in when it's out on the street. You know?

12:17

That neighbor. But then you never interact with them outside of, like, hey. How how are you? I know you had Aaron on your stream, so I'm gonna I'm gonna give you credit for that. But, like, they just seem like our cousins, and at the same time, we have everything in common and nothing in common, and I wanted to know what's it all about.

12:33

So I'm making a video of my first impressions. I just spent, like, an hour going through, like, Laravel getting started stuff, and it's incredible. I can't believe how good it is, and I can't believe we chose this path of JavaScript on the back end and all the drama. Why is it so I gotta figure this out. You gotta help me.

12:50

You'll you'll think through this the right way. You'll come to the right answer. What is it about the Laravel community that doesn't they're not invested in all the drama? They don't get caught up in it. And why does the JavaScript community get so caught up in just, like, petty stupid stuff?

13:05

Is it an age thing? My best theory is older, wiser developers use PHP, and they don't get caught up in the games of children, and that's the problem with JavaScript ecosystem. Is that a good theory?

13:15

Dax

Yeah. I I I can give you my grand theory. Are you ready for it?

13:18

Adam

Yes.

13:19

Dax

Ready for a grand theory? Yeah. I think this follows a lot of other things in the world and life in general. When you have something that's homogeneous and low scale, it tends to be very stable. And people tend to look at it as, wow, like, why can't we be like that?

13:35

Like, think about how America is always compared to, like, some Scandinavian country. And it's because, you know, the Scandinavian country is smaller. People are very, very similar. Culturally, they're the same. In America, we have just complete much bigger scale and complete chaos in who we are, where we come from, etcetera.

13:52

Adam

But Lerville is Finland. That's So you're telling me?

13:54

Dax

Yeah. It's like everyone's everyone's happy, and there's not too much. It's kinda, like, very stable and and like, Ben, I think it's because, you know, they all, like, what Taylor has done with Laravel, everyone pretty much agrees. Like, that's that works. I'm sure there's some, like, you know I'm not gonna, like, paint an extreme picture.

14:09

I'm sure there's, like, disagreement. And, of course, it's whenever those engineers evolve, there's gonna be disagreement.

14:14

Adam

Yeah.

14:15

Dax

But it's different than, like, crazy the the crazy level of competition that exists in, the JavaScript world. It's just way, way, way bigger. Right? It's massive compared to the PHP world.

14:28

Adam

Why why though? So what are the forces that led to JavaScript being so much bigger than PHP?

14:34

Dax

It's a it's a minority rule thing. Right? The intolerant minorities always

14:38

Adam

Say that again with different words.

14:40

Dax

There's a concept called minority rule, which is a thing where when there is an intolerant minority, it always becomes the most popular. So a quick example is okay, you're a vegan. This is actually a great example. If you're a vegan, when me and you hang out, it's almost guaranteed that we're gonna eat at a vegan restaurant or a restaurant that has vegan food because you can't eat meat, but I'm willing to eat eat vegan food. Right?

15:04

Adam

Yeah. Yeah.

15:05

Dax

So similarly, no one can avoid JavaScript because it runs on the browser. PHP developers are willing to write because they have to. It runs on the browser.

15:13

Adam

Okay.

15:14

Dax

And but JavaScript developers don't really need to write PHP or whatever other language. So I think it's just that force drives it. Like, I wasn't a JavaScript on back end developer for a long time. I did a bunch of other languages on the back end. I didn't really want to use JavaScript on the back end because I liked other languages and ecosystems better.

15:33

But it just got to a point where JavaScript got so big, because of this minority rule thing, I think. And then, yeah, like with scale comes problems, but also benefits. So here's here's what I will say. Laravel is like a paradise because they have a great BFL in Taylor. Right?

15:52

Benevolent dictator for life, whatever, kinda like Linus.

15:55

Adam

Oh, okay. Yeah.

15:57

Dax

Which is awesome. But if you think about continuity and, like, it like relies on like one amazing person right now, which is completely fine for PHP. Like that person is gonna be around for a very long time. So it's not a big deal. But just thinking in terms of, like, like, long term and, like, really thinking about the downsides, like, that is the downside.

16:16

Like, we have more chaos, but we also have way more resilience.

16:20

Adam

Yeah. So it's the bus factor. Like, if if something happened to Taylor or if he just decides he's got his Lambo and his amazing life and he's just gonna quit. Yeah. Then the Laravel community has to figure out how to go on without him.

16:32

There is no similar figurehead in JavaScript land, is there? If Guillermo decides he's done, he's gonna live on his angel investments or whatever. I think JavaScript will keep going the way it is now.

16:41

Dax

Yeah. Like, there's no one person that really holds a future of it. Like I said, like I'm describing this in an extreme way. I'm sure Laravel is like well run where people can take over, but just not to the same degree. And yeah, I think, yes, the chaos is annoying, but like there is good that comes from it.

17:01

But I also completely get where you also can just not want to deal with that. And that's that also makes complete sense.

17:09

Adam

So this was all kind of a downer. I was really excited. And then you said all this stuff about minority reporting and whatever Minority reporting. Reporting.

17:19

Dax

And now I like to think about

17:20

Adam

how you're judging me because I'm a vegan. You're judging me because I wanna do Laravel. I actually wanna move to Finland. It's a thing that I would love to do if they would accept me. I don't know if the Laravel community will accept me.

17:30

It's like they don't want a bunch of Americans just rushing into Finland. They probably don't want a bunch of us coming from the Java JavaScript ecosystem. We'll bring all our drama with us. The worst part about being vegan is everyone can eat our food. So, like, the deli case at Mama Jean's, they have sushi, and they only have, like, 2 different kinds of vegetable only, like, vegan friendly sushi, vegetable rolls and stuff.

17:54

But everyone gets them even if they're not vegan. Then they run out of that every single day. And when we go, it's a 5050 chance that we can actually get the kind we like because all you meat eaters eating up our veggies. Sucks. So I don't know where that came from.

18:07

Dax

Don't worry. I I I never get veggie sushi. So

18:10

Adam

Thank you.

18:10

Dax

I'm not contributing to your problem.

18:12

Adam

Thank you so much. I did think it was funny doing the Laravel stuff. Like, they didn't escape NPM. You have to, like, NPM install and NPM build. Like, there's, like, a piece of your front end that still lives in that world.

18:23

Dax

Yeah. So it's it's inescapable. You can't escape JavaScript, therefore, it'll always be around. Like, I don't want like, if I just consider nothing else, I wouldn't be using JavaScript as my backend language. But it's just inescapable.

18:36

And because inescapable, there is and I definitely underestimated this when I was outside of the JavaScript on the back end world. I was like, why do people care so much their back end and their final language is the same? Like, who cares? Like, it isn't it's not a big deal that they're different. And it's not a big deal that they're different.

18:51

But there is a crazy amount of synergy you get when the back end and the front end is in the same language. And with SST, we've, like, made your infrastructure code in the same language as well. You just get better at the language no matter what what you're doing. And that that is kind of nice. And now that I have it, like, I'm, like, not super willing to give that up.

19:08

Yeah. I do. I am. But I am jealous for all the same reasons. And I I definitely look to that world to understand where our bar should be because their bar is so much higher on what is, like, good experience, what's a good entry level experience for a new project, what is considered complete for a framework.

19:24

Adam

Yeah.

19:25

Dax

I think we can get there, and I think the right people are, like, entering the JavaScript world now that will help us get there. But, yeah, we have a long way to go. 5 years, I would say.

19:34

Adam

Yeah. I mean, there aren't there, like, people who've tried the Adonis, Adonis, Redwood? Like, are these things just why do people not run with those?

19:44

Dax

I think Redwood is a little bit different because okay. So here's the issue in the JavaScript world that makes this hard. Because I was thinking about this this morning. I was like, okay, if I was gonna take SST and build another select jet stream, the thing you were using, if I was gonna build an equivalent, like, what what could what would that look like? And I realized, like, I wouldn't even be comfortable saying that you should use tRPC, or you should use REST, or you should use GraphQL, or you should use Replicash, whatever, because I can't make I just don't feel

20:13

Adam

like I have

20:13

Dax

the ability to make that strong of a decision in the JavaScript world.

20:16

Adam

Yeah.

20:17

Dax

I am not super clear on why it's easier to do that in other ecosystems because, for me, I feel there's all kinds of use cases, and I personally wouldn't always just use one of those things. Yeah. I struggle to, like, create, like, a really complete boilerplate for that reason. But, yeah, I'm not sure why that seems to fly in. Again, maybe just because they're smaller.

20:39

Adam

Is it yeah. I was gonna say, when, like, little air of the world, is there just one of all those things and you don't have to make decisions because there's just one way of doing it? Sounds nice.

20:48

Dax

Oh, okay. So here's, like, the root issue or here's, like, an example of the problem. Right? If I built a starter, it would have to work whether you're building linear or you're building, I don't know, like an e commerce website or something, or I don't know, some other SaaS that's not like intense, like linear. And the PHP world, no one would try to build a linear.

21:10

Adam

So they they do the inertia thing. Have you seen that?

21:13

Dax

Yeah. Exactly. I've seen that. I'm not saying you can't use front end frameworks there, but yeah. Inertia looks cool.

21:18

Adam

Yeah. I don't know. I I didn't wanna use it because I was trying to escape the Next. Js world. Like, that was my whole thing.

21:25

And then it's like, inertia plus Next. Js. Like, no. Don't take me back. Oh, inertia.

21:30

Dax

Use Next. Js. Like, I thought it was for, like, using the frameworks directly, like React or

21:34

Adam

You can use React Vue. But it said with Next. Js, I think you can, like, build an Next. Js app, but you just wanna build your back end with PHP, I guess.

21:42

Dax

Yeah. I

21:43

Adam

guess that's the thing. I don't know. I gotta learn PHP, so I can actually be a Laravel dev, because I don't actually know any PHP.

21:48

Dax

That's the other issue. I do think TypeScript is a better language than than PHP. I mean, I'm obviously gonna say that because I'm really into going crazy with types and not everyone's into that.

21:58

Adam

Are there any types in PHP? Is it does it have a type system?

22:01

Dax

It does. It does have a type system. I think the newest version of PHP is type system. Aaron mentioned he doesn't even use it. Like, he hasn't even tried it.

22:07

Adam

Why has Aaron not used types? Why is Aaron wrong?

22:13

Dax

He's asked, like, what? Give me a compelling reason to use it, and no one has been able to convince him of anything compelling enough. That sounds exciting enough for him to try it out. Wait.

22:21

Adam

We have compelling reasons to use type systems. Right?

22:23

Dax

Not really. I feel like Someone give him a compelling reason?

22:26

Adam

No? I feel like I've struggled with

22:28

Dax

this problem for, like, a decade now. Because one of the problems why?

22:31

Adam

I thought we liked types.

22:32

Dax

No. I love types, and I think everyone should use them. But that's different for me being able to get someone excited about types when they don't understand it. Oh, Aaron's here. Aaron's saying he doesn't like types.

22:42

Adam

What do you mean? We're on a podcast, Max. What are you talking about? Who's here? Aaron's not here.

22:46

Do you wanna bring Aaron on?

22:48

Dax

I mean, we can. Yeah. We can bring Aaron on.

22:50

Adam

We're talking about Laravel and how Aaron has types type takes.

22:54

Dax

But, yeah, I I don't I love types. I just have never been able to found find a convincing way to get someone excited about trying them out when they aren't already using them, understanding the benefits.

23:06

Adam

Okay.

23:07

Dax

It's hard to explain, I think.

23:08

Adam

Well, see if you can see if you can convince Aaron when he comes on. This is Aaron Francis joining us from PlanetScale.

23:14

Aaron

Here I am. I was listening in the car. I was out getting coffee, and I was listening in the car, and I made it just in time. Go ahead, Dex.

23:20

Dax

I've seen that PHP has its types.

23:22

Adam

Mhmm.

23:23

Dax

I'm curious what that means, and I'm curious

23:33

Adam

Fair.

23:34

Aaron

We we have types, and

23:36

Dax

I think a

23:36

Aaron

lot of people think of PHP as, like, the 5.2 days, which was, like, you know, 15 years ago where it was just the wild, wild west. We have full on we have full on type systems now. I think in, like, 8 point something, we have generics, which I understand can be very fancy. I haven't I haven't dug into them very much. I I feel like I'm kind of a type incrementalist.

24:00

In in PHP, we have a lot more, like, proper classes than something like JavaScript. So in JavaScript, my understanding is from what I see on on Twitter, which is most of my understanding. My understanding is you pass around a lot of objects. Right? Just just objects, and they have this amorphous shape, and the type system helps enforce, like, hey.

24:21

This object that I'm passing around, it conforms to the user type or the or the podcast type or the post type. And it's like, oh, that's helpful because I know I can look for username or podcast title. Right? I kinda I kinda buy that. In PHP, we would be passing around something like a user object, like an actual proper class or a podcast episode class.

24:46

And if you're using, you know, an IDE or if you're, like, using PHPStorm or something, you get all of that, like, you get all of that that autocomplete. And if you type hint the, if you type hint the method that accepts the podcast, the actual language will say, like, hey. You passed a user instead of a podcast. I'm gonna, like, I'm gonna blow up, and so you can't run. Now I think that is runtime and not, like, compile because we don't do that.

25:11

So there's a little bit of a difference there. But I where I where I land is, like, I like type hinting objects. Like, I I like knowing that my process podcast method is going to receive a podcast object. Like, that makes me feel pretty comfortable. It's it's when you get into stuff like, I'm gonna type hint or I'm gonna make a a type called positive integer so that I always know that when I'm charging my user, the type is positive integer.

25:39

I'm like, I don't understand the overhead of creating this creating this very base type of positive integer to protect. Who am I protecting, I think, is always the question. Like, what what are you guys not writing tests? Not YouTube, but, like, the the community. Are y'all not writing tests?

25:57

Adam

I'm not writing tests. Well, sorry.

26:00

Aaron

Because peep people are always like, well, how do you know like, I never write bugs because I have a type system. And I'm like, I don't understand all the bugs that are coming from mismatched types. I understand bugs that are coming from me doing something silly, but not because I'm passing, you know, a string instead of a a integer. So that's kinda like my my broad stance. So pick that apart as you will.

26:24

Yeah.

26:24

Dax

I think that makes sense. I think the way I see it is there's almost, like, 2 level not not 2, but we'll start with 2. There's, like, 2 levels to type systems. So there's the basic like, like keep track of the structure of the things I'm passing around, which it sounds like if you're yeah, if you're using any language with classes, like you kind of already get that without having to have an additional set of annotations annotating everything. Ifand mostand a lot of languages, that's kind of where they stop.

26:48

And I think there's this weird gap between that and the next level where you can add, like, a few more features. But it feels kind of like useless, like, the examples you get, right? Like, yeah, those aren't like game changing. I need to have it features. But then the next, there's like a language can get a more complex type system.

27:04

If they kind of keep going down that path, they can kind of like break through to another level, which is where I think TypeScript has gotten to, where you can do like all sorts of like interesting derivations and inference and all kinds of fancy things that realistically, like, the end user really never sees, or the end developer really never sees that stuff or need to touch it. But it allows for something like really insane, just kind of features in when you're using a certain library or using, you know, certain things.

27:32

Adam

If you

27:32

Dax

look at some of the libraries that do this, like, you know, Drizzle, like the ORM, that new one. If you look at, like, all the 10 stack, all of Tanner stuff he's been rewriting on the front end, they all kind of follow this model where the end user just is writing plain JavaScript. It's almost like someone's there, like, guiding them on how they're structuring things. So there's this weird gap where languages don't go that far, where it's kind of like, I don't see the huge benefit of the type system. I feel that way about Go.

28:01

I feel like I like everything about Go, but I feel that type system doesn't go far enough. So it's just kind of this annoying type system to deal with, where I'm like, like it's not really doing enough for me. And again, the thing I'm describing, like this next level thing, it's hard to understand it. Like, I don't know how else to explain it. If I think back to when I understood it, I can't remember.

28:24

I just remember trying a bunch of stuff in TypeScript and realizing I could do certain things. And then it turned out that was like a whole category of stuff that I didn't know existed. But, yeah, I think there's, like, light type systems where I'm like, yeah, that's that's probably good enough. Like in the PHP world, what you have is probably definitely good enough. And going, like, 10% more isn't worth it unless you're gonna go, like, a 100% further with the type system, if that makes sense.

28:48

And there's, like, levels past that. There's, like, languages with, like, a really, like, correct type system. Like, you have, like, the OCamls and the Haskells, things like that. But, yeah, I think, like, there's, like, different stops on the station, if that makes sense.

29:00

Aaron

Yeah. That that totally makes sense. And I will freely admit that, like, I haven't I haven't really dug into TypeScript. And I see all these people as a corollary corollary be like, oh, man. Tailwind sucks.

29:12

And I'm like, you just gotta try Tailwind, man. And I admit, like, I'm the person saying TypeScript sucks, but I haven't used it. Like, another thing is PHP community has been relatively slow to adopt more strict typing. And I have found in my career that I, I have gotten outsized advantages from ignoring things until, like, until I'm sure that they're gonna stick around. And so, for example, Laravel has just recently adopted, stronger typing in Laravel core.

29:46

And so that to me is a signal that, like, okay, Aaron. It's time to, you know, it's time to move on from 2014 and, like, catch up a little bit to typing. And so I'm now at the point, like, I'm now at the point in my career where it's like, okay. The the benevolent dictator, Taylor, has decided we're gonna bring some typing to the core, and now it's time for me to say, okay. Well, I guess types are gonna stick around for a while.

30:11

What I don't wanna do is I don't wanna be the one expending all of my energy trying to convince Laravel to bring typing to Laravel because I got other stuff I gotta do. But now that, like, now that it's here, it's like, alright. Well, I guess, types 1 like, I was able to success successfully, like, ignore Angular until it went away. I ignored microservices till they went away. I'm still waiting for Docker to go away, but, like, I just ignore a lot of stuff.

30:37

And then when somebody says, like when Laravel says, hey. We're gonna use Vue JS now. I'm like, alright. Well, I guess I gotta learn Vue JS, and it's been fantastic, and I love it. And so I will admit that part of it is, like, I just don't wanna learn it until I'm sure that it's gonna stick around.

30:52

And now it seems like it's gonna stick around.

30:54

Dax

I would say the adoption curve thing is is interesting because, naturally this stuff at the early part of the adoption curve, you're gonna have this weird combination of, so like you probably work on, like, real products. I work on products for developers. Right? Mhmm. Yeah.

31:13

So I tend to be more on, like, extremely early adoption of things because I'm, like, trying to figure out opportunities for me to build stuff for the developers. So I find a lot of the people in that space are and they're all similar to me that we're trying to, like, figure out the next thing. The paradox here is most of the things in this space are gonna die because they're in we're, like, in this early zone. So I think a lot of conversation is this weird clash of people in my area talking with people in your area, and we're, like, kinda doing very different things. Mhmm.

31:43

We really don't need to be listening to what we're talking about because we're debating with each other on where we what we think is gonna make it through. And we each have different opinions on it. And like, 1 out of 10 of us are gonna be right. Right? So, yeah, it does make sense if you're just building like like, an actual thing, not just stuff for other developers, that you're not at the same part of the adoption curve as the rest of us.

32:03

Adam

I feel like I'm on Twitter. I hate this conversation so much. I'm sorry. This is, like, the same stuff I can't stand listening to when you guys talk about types on Twitter Yeah. Discord.

32:13

Aaron

Also, as as a show note, feel free to tell me to leave whenever once I've served my purpose of types of types.

32:18

Adam

Talk to you. No. That's the last thing in the world we should have talked about with you because you you work at PlanetScale. You're actually a good DevRel, which is, like Thanks. Yeah.

32:27

That's my brother. Unicorn. Yeah. There's that. There's I wanna know what a perfect Saturday is for

32:32

Dax

Aaron because someone asked that in Twitch.

32:35

Adam

I have all kinds of things I wanna talk to Aaron about. Laravel?

32:37

Aaron

Hey. I am I am here. I got my coffee. I got my studio. What do you wanna talk about?

32:41

Give me give me one, and I'll pick 1.

32:42

Adam

Dax, what do we wanna talk about?

32:43

Dax

Let's talk about DevRel stuff. I I Yeah. Maybe we can ask you an open ended question of, like, is this your first role as in being a DevRel?

32:53

Aaron

Yeah. So I was, for a minute, I was, like, a marketing engineer at Tuple, the pair programming company, which is amazing, for literally, like, 6 months. And then Ben and I, the CEO, and I decided, like, no. Y'all need, like, a y'all need a marketer, not someone who's gonna, like, you know, build stuff and talk about it. And so then after that, I went to I went to PlanetScale, and this is my first role as, like, a developer, you know, whatever, relations evangelist, educator.

33:21

I have opinions on that. But this is my first role in that. Prior to that, I spent, like, 6 years at a property tax company in Texas where I live, building, their internal CRM, and it was wonderful. I loved it.

33:35

Dax

Yeah. So I'm curious, like, when you shifted into this role, did kinda did PlanetScale, like, tell you what their philosophy around it was, or were you be, like, did you have to kinda help them figure it out? Like, what what did like, what's your goal in your job?

33:49

Aaron

My goal is to be happy, Dax. So here like, when I when when I joined when I joined PlanetScale, I joined because and I think, Dax, you and I talked a little bit about this philosophy in the last episode. I joined because I was already doing the job that they were trying to hire someone to do. I just wasn't doing it for them. So I joined because I was writing articles about MySQL, and I was talking about MySQL, and they looked and were like, hey, we're trying right now to hire someone to do this under our banner.

34:24

We come do this for us. And so they're, like I think the philosophical lesson there is, like, do the work and put yourself out publicly and see what happens. Because I got a DM from Sam, the CEO, that was like, hey. How come you don't work for us? And I was like, dude, no one's ever asked me to work for you.

34:40

Like, why would I work for you? And so he said, you know, hey. I like what you're doing. We're we're trying to hire a developer educator, which I think is nuanced. Do you wanna come do that for us?

34:50

And I was like, what does it mean? He said, I just kinda do the exact same thing you're doing, but more of it and get paid for it. I was like, yeah. That sounds great. And so I think the nuance there is that I am I am a developer educator.

35:04

And I listen, I'm new to this, like, be a public presence for a company. I think there is, a whole community of developer relations, that is a little bit different and not a community that I'm, like, super involved in. I think the developer relations community has structure and history and leaders and opinions, and I'm just like, I don't have any I'm I'm I am not a part of that community.

35:30

Dax

And so

35:31

Aaron

I think what is slightly different for me is I'm a developer educator, and my job specifically, we we have it really good at PlanetScale because our product is MySQL, and MySQL is broad and huge and useful and useful apart from PlanetScale. I'm biased, but I think it's best on PlanetScale, but it's incredibly useful if you just put it on a box yourself. Right? And so my job is to, like, teach people how to use MySQL effectively. And as a part of that, hopefully, we will convince them that, like, you can use MySQL effectively, and you can use it most effectively on PlanetScale.

36:09

But if if you don't choose to come to PlanetScale, we're still gonna give you, like, all the knowledge you need to to use it effectively. And we have this nice split of, like, I don't know the lower level of, like, how to run MySQL effectively. And so I don't teach people how to do that, but that's great because that's what PlanetScale does anyway. So we have this nice split, kinda naturally.

36:29

Dax

The the broadness is something I've been thinking about so much. I'm so grateful for it. I think, it's easy when your company is in a broad space because then this part of your job, it's very easy to deliver broad value. Like, so for us, you know, we build a very specific framework, but we're just in the serverless space. We want to help people do stuff in a serverless way and help people figure out what the best way to do things is.

36:52

So I get to, like, talk about anything, like anything related to serverless, whether it's on the more on the front end side, more on the back end side. Like, that's fun. And I can kind of talk about it. And it's, like, not hard for me to not be talking about SST every day because our scope is so broad that we're we're down to, like, do anything. And MySQL is the same where, you know, there's so much information that's not PlanetScale specific.

37:12

And that I find is the best, probably the only form of like, whatever you wanna call this category or thing, like when companies have people publicly talking about things, like that's the only form of it that I engage with. The part that drives me crazy is when the company's scope and product is very small and specific, which is fine because a lot of value and opportunity there. But then this side of it, like the DevRel side of it, ends up being really weird because they can only ever talk about this very specific thing. And they need to talk about it as though it's going to solve every possible scenario, every possible problem. And like, for me, it just kinda loses authenticity there.

37:52

And I I think I actually found that's most of it. I would say, like, 90% of companies fall into this category.

37:58

Adam

I think, like, they could do what Aaron and PlanetScale are doing in some for like, I think of the auth case. Instead of just making a bunch of videos, they're like, here's how this auth service works with Vercel, and here's how it works with whatever. They could just, like, teach people about auth. I mean, right? They could do the thing where there's, like, there are a lot of concepts here people are fuzzy on.

38:18

And the more you understand about auth, the more likely you're like, I don't wanna do this. I wanna pay someone to just do this for me. Right? Could they do that?

38:25

Dax

Yeah. I mean, that auth is actually a good example because I was actually thinking about it as it's hard to make that broad. But you're right. Because you can just talk about how OAuth works, how OIDC works, like a history of it, like, why this all makes sense, like why these centers exist and how they have like, there's just so much you can talk about there. But as maybe the part that's gonna be spicy, you can only do that if you're an expert in those things.

38:47

And when Planetsky got hired Aaron, they didn't hire him because he was an expert at he didn't have like years of experience doing this role. They hired him because he has a lot of experience with MySQL. And they figured he could learn this other stuff and figure out his own flavor of it. I think that's a much better approach. Like, if you are a company doing auth, like make sure you have someone that's just like the guy that can do all the auth stuff.

39:11

So yeah, I think that's maybe where it's hard for, like, someone with a lot of DevRel experience to, like, shift into like, one day, they're working at a database company. The next day, they're working at an auth company. The next day, you know, you can't become an expert.

39:20

Adam

That's the other problem. Yeah. The famous, like, DevRels for hire, the ones that are on all the conferences. Like, when you don't know what company they work for at the conference they show up at, that's a problem. Like Mhmm.

39:30

There's just no authenticity there. Like, you're shilling a different thing this week. That's just that loses everything that we're talking about, which is the thing that's so

39:37

Dax

great about what Aaron's doing at PlantScale.

39:39

Aaron

Yeah. There are only there are only a few of these roles I could fill, and PlantScale is 1. I would say Laravel is another. If they needed any evangelism, I could do that. But I would feel, like, I would feel really out over my skis if I were at some other company where it was like, I'm I'm being paid to evangelize something, and I am the junior here.

40:04

Because when like, at at PlanetScale or with Laravel, I can talk intelligently about the shortcomings. Like, I know what the trade offs are. And so when somebody's like, hey. I need I need to run a analytics database. I can be like, I don't think my SQL is right for that.

40:20

Whereas if I were if I were the junior, I was like, yeah. Data you said database. I say database. Like, we're talking about the same thing. It's like, oh, boy.

40:27

We are not talking about the same thing. And so, like, if I were if I were to go to some other company, I would feel really insecure, but that's my personality. I think some people don't feel insecure. They just talk like they're the expert. And I'm like, wait.

40:42

I know I know more than you about this thing, and I know that you're being paid to say this, and you're wrong. And, that's where I think it's like, oh, gosh. This is this is a weird and that's why I said I'm not a part of the dev rel because there's a whole, like, commune I just I I teach people how to use MySQL, and I think PlanetScale's a good place to do that.

41:00

Adam

Yeah. Yeah. I think there's a lot of room to grow. Hopefully, these people hear these kind of things as constructive criticism. Like, I think there's a lot of room for companies, start ups, to do better in this area in terms of marketing their products.

41:13

This this whole podcast has been so technical and so, like that we started this without a topic, and it just feels like it's it's had, like, a track. We're going places.

41:21

Aaron

We can talk about peanut butter and jelly sandwiches if you want.

41:23

Dax

Let's do

41:24

Aaron

that. Listen. I listened to I listened to yesterday's episode.

41:27

Adam

Yeah. What's your, what's your perfect Saturday, Aaron? Let's Let's talk about something that's on tech.

41:32

Aaron

Yeah. Well, unfortunately, it might be tech anyway. I was I was just on yesterday. I don't know if y'all know Justin Jackson. He has a podcast called Build Your SaaS.

41:40

Adam

And Yeah. Transistor. We use it for this podcast.

41:43

Aaron

Yeah. Yeah. Yeah. Exactly. I was on with him yesterday talking about how at this phase in my life, I'm really trying to, like, change the trajectory of my life, and so I'm working extremely hard in this era, and I call it, like, my maximum effort era.

41:57

And it will you know, that era will end at some point. Some point. And so right now, my perfect Saturday is I have 2 kids who just turned 2. They're twins. My perfect Saturday right now is usually, we wake up, you know, 7, 7:30, get the kids up, do the whole breakfast thing.

42:16

And then I usually take the kids out so that the boss, my wife, has some time just, like, home alone, you know, just to, like Yeah. Sit and stare at the wall and let the brain come down a little bit. So I take the kids out and then, you know, we come back and we usually, like we usually hang out. This past weekend, we went to the fire truck museum here in Dallas, and the kids lost their freaking minds. It was so much fun.

42:40

They just fire truck, ew, ew, just like all day long. So a lot of time with family. And then when they nap, and then in the afternoons, I spend a lot of time just, like, doing side work. And I was telling Justin yesterday, I don't have hobbies. I don't play video games.

42:56

I don't watch sports. I just freaking work, and I'm happy. Like, I like doing that because I'm think I, like, I am pursuing my dreams, and this is what I wanna do. And so that's that's my uninspired take for a Saturday right now.

43:10

Dax

Yeah. This is I mean, we're all gonna sound I guess people are gonna hear this and then again sound like these are toxic Americans. But Muscle bros. Yeah. I love getting work done on the weekend because it feels like a bonus.

43:20

It feels like a cheat because, like, the expectation was 0. So if I get an hour work done on the weekend, it feels like 10 times more important than or more relevant than

43:29

Adam

a week. How I think about it. Like, as soon as Saturday morning comes around, it's like, anything I get done today and tomorrow, it's just gravy, and that's I love it. I love the psychology of there's no pressure. It's like I'm just getting ahead.

43:40

Aaron

Yeah. That's awesome. And, like, I'm fully aware of the toxic hustle bro thing, and I think I'm trying literally, I'm trying to, like, make my dreams come true. And, like, it just so happens that I'm not a painter, and I'm not an artist and I'm not I just I happen to be a programmer. And so when I'm, like, when I am out here working and hustling on the thing that I want my life to be, it looks like the exact same thing that I do 9 to 5 for PlanetScale.

44:07

So it feels like, oh, jeez. He just works all the time, but it's like, yeah. I'm trying to change I'm trying to change my life, and I'm I'm not a painter, so I just I just program more. You know?

44:17

Adam

Yeah. No. When it's your hobby, that's always been my my problem. It's like, this is what I do for fun. It makes me feel really guilty in my relationship with my wife because every time I'm in my office, I'm having a great time.

44:27

She knows that. She's not having a great time. So it does feel very like, I wish you could live your dream. Okay. Now we're getting too deep.

44:35

I don't wanna go in there. Never mind.

44:37

Aaron

Back cuddle. Back sandwiches. Back sandwiches.

44:39

Adam

Yes. Anything else, please. My wife doesn't she doesn't sorry. On Saturdays, we don't just leave her. She leaves the house.

44:47

Mhmm. So the whole weekend, she was gone, and it's just me and the boys at the house. Smart.

44:51

Dax

Well, I have a dog and 2 cats, so that's something.

44:57

Aaron

You just

44:57

Dax

do whatever you want

44:58

Aaron

all the time. That's amazing.

45:00

Adam

Oh, just soak it up, Dax.

45:02

Aaron

Yeah. For real. If you

45:02

Adam

have if you plan to have kids and not like I mean, I love my kids. They're the best thing in the world. But it's just life is so different before and after kids that if I could go back, I would have viewed that time before we had kids so differently. We just had all the time in the world to do whatever we wanted. Mhmm.

45:16

And you don't

45:17

Dax

realize it. Literally, everyone in my life is telling me this, so I don't I don't think I'll take it for granted.

45:22

Adam

You're not gonna miss it? Yeah.

45:23

Dax

Okay. Yeah. That makes sense. With everyone who's saying the exact same thing. So

45:27

Aaron

Okay. And I just I just wanna hear. Just give me just give me 2 minutes on on Laravel. I know that we're Finland or Sweden or whatever, but, like, tell me how much you loved it.

45:37

Adam

So I just I can't believe, like, there's not more people in the JavaScript community talking about it or, like, that have had any brush ins with it. I've seen people on Twitter now say, like, yeah. I see the same stuff. I see people happy, and I just have never tried. Like, why haven't we tried?

45:52

It's just, like, I know PHP is a whole another thing I have to learn, but I've done it with so many other languages. Why would I be hesitant to learn PHP to get in on this Laravel thing? I don't

46:02

Dax

know, man. We've seen you try to learn Elixir. Okay. Okay. Just go go ahead, Jeff.

46:06

Adam

Get it all out.

46:09

Dax

Have you learned other languages?

46:10

Adam

Have I? I've done all kinds of stuff, probably.

46:14

Dax

I can say so.

46:15

Adam

Python, Jython. Okay. I'm gonna stop. I saw you post the other

46:19

Dax

day you got started in Jython?

46:21

Adam

That was true. What they in college, that was the first thing they taught us. It was like, here, we're gonna teach you a a weird if Python and Java had a baby language. That's your your first exposure to programming.

46:31

Dax

And you're stuck with it?

46:32

Adam

No. No. I just did it in college. Like, that was No.

46:34

Dax

I'm saying, like, you didn't give up on programming right there.

46:36

Adam

Oh, yeah. Yeah. No. Yeah. I kept I kept with the programming thing.

46:39

Yeah. So Laravel, the the starter project, though, is just incredible. The and it just the cohesiveness of, like, going through the Laravel, getting started from Laravel.com, the getting started. It's just like there's an answer for all the things, and you don't feel like you have to make 50 decisions for every little piece of it. It's It's like, yeah, you gotta pick a database, and there's a few options.

46:57

But it's like, it holds your hand through all of it. All of that's great. I know a lot of technologies have that, but there's something different with once I did the Jetpack thing with Laravel and I saw the project, it's very clear it's so different, so different from the JavaScript ecosystem. One, like, the the project is not, like, optimized for how few files and how little code can there be. It's like a ton of stuff, but, like, it's got a lot of functionality out of the box.

47:22

I don't know. I've said a lot of the same things in, like, 3 different formats. So if you're hearing this out of my mouth for the 3rd time, I'm sorry. I'm just very excited. I don't know.

47:30

I wanna play with it more.

47:31

Dax

Yeah. I mean, like, that cohesiveness you felt, I definitely don't take that for granted. It's really hard to pull that off, like, all the way from, like, every part of it feeling the same, like it's one unit as opposed to a bunch of things glued together. It it is really hard to do that, and It's really impressive that somebody can do that.

47:47

Adam

I haven't deployed it yet. Like, I can't wait to use Vapor, and I can't wait to play with all these other there's just so many different Laravel products. And knowing that they're all kind of, like, under one roof and they have some that cohesiveness. The docs are amazing. I love the the comments, the lore around, like, his his three line comments that are all, like, staggered.

48:06

It's true. They're all over the place. It's incredible. The attention to detail, all of it. I'm just I'm a big fan.

48:11

Aaron

Yeah. I will say I was, you know, listening while I was getting my coffee before I came on. I think the benevolent dictator plays a huge role. I also think the fact that Laravel is itself a company. So it's like if DHH didn't have Basecamp and DHH and 37 signals spent all of their time, energy, and money on rails, I feel like it would be closer to Laravel.

48:34

But Laravel is a company that has, like, 5 or 6 employees, and they have SaaS products. So they are using Laravel to build full on SaaS products, and they're spending all of their time and all of their money to make Laravel the ecosystem, better for Laravel developers. And so that's that's where you end up with things like Vapor and Forge and Horizon and all that stuff is because they were building a SaaS, and we're like, man, running queues sucks. What if we built a queue management package? And they're like, okay.

49:06

We can do that and open source it. And it makes sense to, like, tightly integrate it because they're Laravel LLC. Of course, it's gonna be integrated with Laravel. So I think that is part of the secret sauce is Taylor this is gonna sound mean. Taylor has nothing else.

49:21

Taylor has Laravel. Like, he has Laravel. He's not running base camp. You know, high rise or whatever. He's running Laravel, and so he just just focuses on that and driving the Lambo.

49:34

So I'll leave it there.

49:35

Dax

Yeah. I I love that model. Like, we obviously at SST, that's the exact same model we're trying to recreate. Like, just having it like, we like it's it's proven out there, so we can, like, trust that. We can it makes sense.

49:48

But, yeah, everything about it is awesome. Like, how small the company can stay and, like, how much impact they can have despite that. Like, it's it clicks with everything that we want as a team.

49:57

Adam

Aaron, thank you so much for coming out. We didn't even say, like, Aaron Francis. This is Aaron Francis joining us from PlanetScale. We just said, like, hey, Aaron.

50:04

Dax

Yeah. That's okay.

50:05

Adam

It could be kind of a weird transition in the middle of the podcast.

50:08

Dax

Well, you just said it. You just said it.

50:09

Adam

I just said it. Yeah.

50:10

Aaron

Thanks for having me on. I'm glad, I'm glad I was chatting in the Twitch, and y'all could pull me on. I really appreciate being here.

50:16

Dax

Yeah. It was great to have you.

50:18

Adam

Alright, Dax. Anything we wanna say before we wrap this up?

50:20

Dax

Nope, that's all.

50:21

Adam

Nope, that's all. We never have anything at the end. Goodbye.

Details
Show
How about tomorrow
Date
May 11, 2023
Role
Guest
All podcasts
Podcasts
Newsletter

Every week: the best things I've found and what I've been thinking about.