Software Huddle - Teaching Databases, Writing PHP, and Independent Work with Aaron Francis

Episode Date: August 27, 2024

Today's episode is with database educator, PHP enthusiast, and all-around good guy Aaron Francis. Aaron is one of the best out there at delivering high-quality educational content. Somehow, he's manag...ed to have three different video courses sell over $100k in wildly different fields -- a college corporate accounting class aide, video screencasting, and high-performance SQLite. In this episode, we talked about a lot of things, including: - Why (and when!) to use SQLite - What courses he's looking at next - How to stay sharp when doing educational content - His origin story as a programmer - Getting kids to be high agency - How PHP became classy. Links https://www.epicweb.dev/why-you-should-probably-be-using-sqlite https://highperformancesqlite.com/ Timestamps Intro 01:41 Why SQLite 03:31 When to use SQLite 09:14 SQLite Creators 14:20 Holy smokes 17:29 jsonb Indexing? 22:07 SQLite Course 23:54 Vendor Specific Courses? 26:17 Postgres Course Timing 30:26 Nights and Weekends 30:46 Getting into Databases 35:38 Going back to Programming 39:22 In 20 years 40:48 Kids 42:08 Making money is a skill? 47:52 Balancing Video Creation and Programming 50:43 Sustainable Business 54:23 Doing SaaS 56:13 Working for someone else 57:38 Secret Sauce for Video Content 58:34 PHP 01:05:56 Taylor and Laravel 01:13:31 Vue 01:18:39 Warp-up 01:20:41

Transcript
Discussion (0)
Starting point is 00:00:00 So you're on your own and doing a lot of video creation now. How do you keep up your programming skills when you're not full time, you know, digging in the muck anymore? Yeah, that's the risk, isn't it? Because then at some point your skills stay in 2024 and it becomes 2030 and you're out. It's over. Like you've lost it. The first thing you start with is sqlite and and high performance sqlite is is the the course that came out for this course itself i
Starting point is 00:00:30 know you you released and there are like a couple chapters still you have to release like what are you what are you looking for for finishing that up timeline wise yeah so i finished yesterday all the json stuff um so that that is done and i'm finishing today all the full text stuff. So that'll be done. And then we'll be like, we'll be done, done. Okay, so what's the timing for the Postgres course? So it will be announced here on the show. This is the first time people are talking about it. Let's go. Hey, folks, this is Alex. And I'm super excited because today we have Aaron Francis on the show. Aaron is awesome. He's probably my favorite educator out there. He's really good at just teaching in-depth stuff in the database world, which I care the most about,
Starting point is 00:01:15 but also just like PHP. I'll watch his PHP videos. Just anything he's teaching, I want to watch. So it's really great stuff. We talked a lot about SQLite. We talked about databases. We talked about raising kids and the qualities we want to raise in them. How do you stay sharp when you're a creator? He taught me about the PHP ecosystem. Just a lot of great stuff here. And Aaron is like a really good hang and just a super nice guy. So check it out. If there's anyone you want to have on the show, if there's questions you have, feel free to reach out to me or Sean.
Starting point is 00:01:39 But other than that, let's get to the show. Aaron, welcome to the show. Yeah, thanks for having me. I'm excited to be here. Yeah, well, I'm excited to the show. Aaron, welcome to the show. Yeah, thanks for having me. I'm excited to be here. Yeah, well, I'm excited to have you. I'm guessing most folks know who you are, but in case they don't, I would just say Database Maven, top tier educator guy, and just all around good guy on Twitter. But those are some high level stuff. I guess, maybe introduce yourself to the audience here.
Starting point is 00:02:02 Yeah, I like all around good guy. That's a good brand. I like that. That's what you're aiming for. Yeah. So I think database educators, probably most pertinent to your audience here, historically and continuing, actually a Laravel developer, which is a PHP framework.
Starting point is 00:02:18 And I've been doing education for a while, but more in the past, you know, maybe three or four years, I've gotten much more heavily into database education. I still fancy myself as a developer, I just happen to really like teaching. And so I've done I've done a few, a few courses on databases, and then just randomly, like on, you know, screencasting and stuff like that. So I just, I really enjoy making stuff uh in and around the web development ecosystem yeah yeah well i imagine you have like the broadest
Starting point is 00:02:51 range of video courses that anyone's ever had you have like like accounting and screencasting i know um sequel light i guess yeah a broad range is a nice way to say it. Totally chaotic is another way to say it. But yeah, I've got a course for sophomores at Texas A&M on introduction to financial accounting. So yeah, we're all over the place. That's incredible. So yeah, I think, you know, I've seen just like your star kind of take off
Starting point is 00:03:18 over the last couple of years and it's been fun. And it's been cool this year, I think, to see you be like, hey, I'm going all in on education and especially like database education. And it's been fun this year, I think, to see you be like, hey, I'm going all in on education and especially database education. And it's been fun to watch that journey with your podcast. But like, the first thing you start with is SQLite. And high performance SQLite is the course that came out. First thing I gotta say, like, why SQLite? What, I guess, grabbed you there? Yeah. So being, you know, being a PHP developer, I got my start with
Starting point is 00:03:47 my SQL because that was kind of like, that's all we did. It was it was LAMP stack, you know, I guess for me, it was MAMP stack or back in the day WAMP. So I've kind of done them all. And then, you know, I I've seen SQLite get a lot of attention in the past several years. And I had never really explored it very much because I thought it was one thing. And it turns out it is not that thing. And what I thought it was, was like, you know, baby's first database. That's kind of what I thought, right? It was like, hey, this is the light version of one of the real things that you want to use. And so I started seeing a lot of people talking about it and people that, you know, you and I both know, like and trust, like Kent C. Dodds is like, oh, no, SQLite's great for everything.
Starting point is 00:04:35 I'm like, really? So I investigated it and found out that there have been a lot of strides in the past several years to make it production capable for web applications. You know, I think it's been production capable for, you know, hardware embedded stuff, that kind of stuff for a super long time. And it seemed like a lot of fun. And so I, you know, I came out of a MySQL company. And so once I came out of there, I was like, hey, let me pick up my head and see what's going on
Starting point is 00:05:08 out in the wide world. And SQLite caught my attention. And it's so MySQL adjacent that the jump was very easy. And so I spent a couple months reading and learning. And that's where the course came from. Yep.
Starting point is 00:05:21 Do you have any sense of like what spurred some of those improvements lately? Like it seems to be having a moment and there's like a couple from. Yeah. Do you have any sense of like what spurred some of those improvements lately? Like it seems to be having a moment and there's like a couple independent things going on, both like with torso, but also light stream. Like is, did something happen that sparked that? Or did a bunch of nerds just sort of like get excited about it at the same time? You know, I think nerds get excited, um, and things go in waves, but I think this happened. My point of view is it kind of happened as part of the TikTok cycle, not TikTok,
Starting point is 00:05:50 but like the TikTok cycle, you know, the pendulum swinging from like over-engineered complexity to under-engineered simplicity. And I feel like the pendulum is a little bit swinging back towards y'all, why are we making everything so complex? And that's not necessarily only true in the database space, but it's true in the entirety of web development. And you could say that maybe that is partially due to money not being free anymore. And suddenly everybody's like,
Starting point is 00:06:23 oh, shoot, we need to do more with fewer people or fewer resources. And so I feel like SQLite kind of hit the perfect part of the life cycle where people are like, God, we really need to simplify our stack. And SQLite turns out has been there for 20 years, literally 20 years, maybe what are we in 2024? So 24 years at this point. And it's a culmination or a coincidence of the industry swinging back, but also individual machines becoming more powerful. And so one of the historical and continuing drawbacks of vanilla SQLite is it's got to be on the machine. And so as individual machines have become more powerful, it's just easier to scale everything up vertically and be like,
Starting point is 00:07:14 all right, well, I'll just make a freaking huge machine and be done with it. And so I feel like some of those things happened altogether. And then Terso came along. Terso is a, it is a hosted SQLite company, but they also have a fork of SQLite called LibSQL because as you know, but not everyone knows, SQLite is open source, but it is not open contribution. So it is tightly guarded by this group of, I think it's two or three guys
Starting point is 00:07:45 that have been working on it for 25 years. And, you know, it sounds crazy to be like, it's open source, but you can't commit anything to it. I kind of respect it. I kind of love it that they're like, hey, listen, we started this in the year 2000 and we're committed to doing it until the year 2050. And we're just gonna do it our way.
Starting point is 00:08:04 That's like, I can't, that's kind of great. Good for y'all. But Terso and their team came along and were like, I would love a few extra things. And so we're going to fork it. And their stated intention is if they ever allow pull requests, we'll give everything back. But since they don't, we're going to maintain lib SQL. And so lib SQL has a lot of the modern afford, modern affordances that we've come to like with other databases. And so I feel like it's maybe a few things conspiring all at once. The desire for simplicity, the rise of more powerful machines,
Starting point is 00:08:41 a little bit more modern SQLite. And then finally, maybe just like the bootstrapper indie hacker ethos that we see in someone like Kent C. Dodds or Levels.io or frankly, DHH, you know, their new thing is running on SQLite for operational simplicity. And so we're seeing some of these big, we'll say developer influencers saying hey sqlite is good enough and i'm gonna use it and that kind of runs cover for everyone else to be like well they said they can use it so i can use it too and so it's all those things together yep yep so if i was like gonna be making a new app and i asked you hey sql right like right for this are there like certain questions
Starting point is 00:09:21 you would ask about that or would you like yeah i guess like yeah in what cases should i use cy yeah that's a great question and i think that is the right question um and i um i tend to take a very like it depends approach and i'll give you concrete a concrete answer but i'm never gonna be i never going to be the person that's like, you should use X for all situations. And it's like, ah, even the thing I love most in the world, not most in the world, most in the development world, Laravel, I'm going to say, yeah, it's great for a lot of use cases, but you don't have to use it. So when should you use SQLite or maybe, maybe better, when should you not use SQLite? The biggest drawback, in my opinion, of vanilla SQLite, and I'm not going to really talk about libSQL slash Terso. They cover
Starting point is 00:10:15 a lot of these drawbacks, and I think they're fantastic. But I think it's interesting to talk about vanilla SQLite. The biggest drawback is it's a freaking file. It's a file and it's got to be on a machine, right? And so already you're like, well, that sure does limit a lot of what I can do, right? Because if the file has to be next to your application, that dictates certain architectures, which may not be amenable to certain applications, right? And so if you're saying, man, with the amount of traffic we're running, we have to have eight web servers. It's like, well, where's the single file going to live then? You're kind of hosed, right? And so if you look at something like Campfire, which is 37signals, their new once.com
Starting point is 00:11:07 product, which is a service where you can buy software, which is crazy, you don't have to rent it, you just buy it. And then you host it yourself. They just basically say you got to run it on one machine. And the operational simplicity more than makes up for the one machineness in that case. And so, you know, if you're talking about how much can SQLite handle, the answer is a whole lot. Like, it can handle many hundreds of thousands of reads per second and many, many tens of thousands, if not more, writes per second. But it's on one machine, and you can only have one concurrent writer at a time. And so depending on the mix of your traffic and the load and everything, it's like, it might not be worth it.
Starting point is 00:11:57 And another time where it's a really bad idea is if you end up needing like actual big data, not like pretending to be big data. Right. So once you get, once you get into many terabytes, it's like, Hey y'all, this,
Starting point is 00:12:12 this database is a single file. And where are you going to put a single file that is eight terabytes large, or even one terabyte of a single file? It's kind of hard to pull off. And so I think the docs say that like, I forget the actual number, something silly where it's like, yeah, technically SQLite supports up to 264 terabytes or something.
Starting point is 00:12:33 But even in the docs, they're like, if you're going to do that, don't do that. Like just use a different database. They're very explicit. And I think a little bit too conservative. The creators are very explicit that SQLite competes not with MySQL and Postgres, but with Fopen, you know? And so it's like, they're saying we're not actually a competitor to MySQL.
Starting point is 00:13:00 And I think that has changed a little bit. I think they're being a little bit too humble there. But, you know, truly huge amounts of data, truly multiple concurrent writers. I think some people hear that and they're like, wow, I need, you know, I need to write many times a second. And you're like, yeah, that's okay. Like, we'll just call that concurrent and pretend that it's concurrent because to the human it is. And then finally, that thing that we talked about, which is it's on a machine. So if you need network access, you're going to need something else that is a client server model and not an embedded model. Because once you put SQLite on a networked attached device or something, stuff starts to kind of get a little hairy. Because it depends heavily on the file
Starting point is 00:13:45 locking implementation and they that can be a little wonky on network attached drives or network storage so if you need uh network access it's just really it's not right but i think um i think beyond those problems sqlite should be considered for uh should be considered for, uh, should be considered for your application. You may look at it and decide, actually, I don't like, um, the limited, uh, support for types in SQLite. And so I'm not going to use it. That's fine. That's totally fine. I just think it should be in consideration more often than it is. Yeah. Okay. You mentioned the creators, like two or three guys are just doing this. Are they, are they like full-time active, like still doing this all the time? Are they?
Starting point is 00:14:27 Oh, yeah. Yeah? It's wild, man. And how do they make money if it's just like this open source? Do they just have consulting contracts with like giant companies or what? Yeah, so that's a little opaque to me. I have, you know, I've read enough stories to know a little bit about where it comes from. But yeah, they so the guy, the main guy is, I think it's DRH, which is confusing, because we also have DHH in the world, but it's D. Richard Hipp is his name.
Starting point is 00:14:53 And he originally wrote it back in the day, to be an offline database for literally a battleship. And because it was like, I, you know, I'm working for a military contractor in the military and we need something stable and offline. And he has said many times, if I knew you weren't supposed to write a database, I wouldn't have written a database. And yet it's like, well, what you, what you don't know can't hold you back. And so I kind of adore that. But yeah, they, they've been working on it for 20 years. It is the official archival format of the Library of Congress, which is kind of a big deal here in the States. And I have read their revenue comes from many places.
Starting point is 00:15:33 So originally, like back in the day, I think it was either Nokia or Motorola or something like that needed a special feature because all these phones use SQLite databases, Google Chrome, SQLite database, like trillions of SQLite databases in existence. And so you have these big manufacturers that are like, hey, we're Apple, literally, we're Apple, and we need you to do a thing. And he's like, great, that's a million dollars. And they're like, who cares? So that's, you know, that's one source of revenue is like priority support priority features that kind of stuff um i have heard through the grapevine
Starting point is 00:16:10 that they also have an unbelievably robust private test suite to test against um the sql standard and so for other people that are implementing new databases that are these, you know, newfangled who's he, what's it's they're like, well, we kind of need to test our implementation against what people generally perceive to be the SQL standard.
Starting point is 00:16:36 You know, it's like the whole XKCD, there's like 15 standards, but you know, they, they have this incredible test suite. And so people like new. Exactly.
Starting point is 00:16:49 Oh, wow, that's amazing. And so new companies, while they're implementing like, hey, we've invented HTAP. Well, we got a test against SQL. They'll license out that private test suite. And then they have they have a test suite that like is public. But I think the one that they license out is pretty closely guarded secret. So I think the money comes from a bunch of different places.
Starting point is 00:17:11 It's not totally clear to me. It's almost like Jepson. It's like Jepson testing, but for SQL standard or something like that. Yeah, something like that. And I've heard from employees of companies that we have all heard of that they licensed the SQLite test suite.
Starting point is 00:17:27 So, yeah, it's kind of interesting. Okay, so SQLite we talked about is probably the most unique among the relational databases because of that file type thing. I guess when you were sort of learning about it, were there any holy smokes, that's neat kind of surprises? Other than just the single file thing, but like any like features or anything like that, that was unique. I think the biggest holy smokes thing is like, you and I have been trained N plus ones are bad. You know, like you don't want to make a bunch of queries.
Starting point is 00:17:58 You gotta like eager load and you gotta, you know, there's like sometimes query decomposition is better, but most of the time you want to send it all over the network, let the database do the thing and get it all back. And that model just like goes away when, when the database is right there, because, you know, if you're like, all right, we got to send it over, we got to send it over the network. And that's, you know, on a good day, five milliseconds, three milliseconds, whatever. And then you get it back and it's like, ah, that's not so bad, but you don't want to do that a hundred times, right? That's why you got an eager load instead
Starting point is 00:18:33 of N plus one. That's just not true with SQLite because instead of milliseconds to get to the data, it's like, whatever's way, way smaller, nano, micro, yafto, whatever, you know, whatever's the smallest possible. That's how fast it is because it's right there. It's not going over the network. And so there's a little bit of a fundamental, there's a little bit of a fundamental shift where it's interesting to see what possibilities that opens up when you're no longer working in the same universe of constraints that you've been trained to work in. And so you get stuff like, even on the SQLite docs, they'll show you at the bottom how many queries ran on the page and how long it takes. And sometimes
Starting point is 00:19:17 it's hysterical. It's like, we ran 400 queries to satisfy this page. And you and I are thinking like, why? Why did you do that? And then you look at the time taken and it's like 0.01 milliseconds. You're like, ah, okay, cool. That rules, good for y'all. And so that opens some interesting things about like, what if we re-implemented Redis in SQLite?
Starting point is 00:19:39 Well, that's kind of interesting. And people have done that, you know, that becomes a cache driver. And then the idea on that, on that note, that you could have a new database for everything. So cache, new database, jobs, new database, application, well, do you have tenants, give them all a database. And you're like, wait, this makes no sense to me. But when the overhead of creating a new database is literally like touch Aaron.sqlite. It's like now Aaron has his own tenant database. You're like, no, that's kind of awesome. And so those things were really interesting to me
Starting point is 00:20:17 coming out of more client server architecture for databases. And then the loosey goosey nature of it, I don't know if it's good or bad, but it's just like, they have taken a stance, which I make no moral judgments about, but they have taken a stance that if you give us data, we'll keep the data. And so like, if you declare a column as an integer, and you're like, hey, I actually want to put foobar in there. They're like, great, that's awesome. We'll hang on to it it's like is that good or is that bad i don't really know and you can see the author's point of view when you read the docs that they were basically strong-armed into adding a strict table and so now you can say like this is
Starting point is 00:20:59 a strict table if you give us foobar when we expect an integer we're going to throw an error but that's because you guys made us do that. It's like, they don't really like the fact that it's there. And in fact, even on a strict table, you can still have an any column. And so you can have a column and declare it as an any and be like, I don't know what I'm going to put in here, but you better freaking hang on to it.
Starting point is 00:21:20 And they're like, great, we love that. That's our preferred method. And so that was another like totally bizarre out of left field design decision that I don't super love, but I can see that it's useful, especially if you implement a cache in SQLite, you can do a key value and the value can be anything. Frankly, the key can be anything. And so there's just some weird stuff that when you get in there, you're like, this is not what I expected. Some of it's really awesome, like the multiple databases and the zero latency and some of it's bizarre, like this, the flexible typing, the flexible timing that really surprised me, especially given like, you know, what you said about the test suite and the way
Starting point is 00:21:57 I've heard about their test suite is just like, they seem like super strict, like everything must be precise type people, but then just like, Hey, we'll, we'll take anything here in this column. Anything. That's, that's pretty wild. Do they have, um, like indexing,
Starting point is 00:22:11 like Jason B indexing or, or things like that? Like, can you index, you know, like nested Jason in a column or is it more just like, you know, traditional B tree type stuff.
Starting point is 00:22:20 So it follows more of the my SQL method, which is you, they have robust support for JSON and JSON columns and JSON functions. They actually stole sounds bad, they actually were inspired by Postgres for JSON B. And so while there aren't, there aren't JSON columns, they you store the JSON as text because it's SQLite and you just YOLO anything anywhere you store the JSON as text because it's SQLite and you just YOLO anything anywhere. You store the JSON as text, but you can also store it as JSONB, which is the parsed binary representation. So you don't have to reparse it over and over and over. And they say in the docs, like, hey, Postgres did that and we thought it was a great idea. So we have that now too. It's
Starting point is 00:22:59 like, cool, way to go guys. But in terms of Postgres' gen indexes over JSON, in the same way that MySQL doesn't have that, SQLite doesn't have that. So you're stuck or you're limited to create a generated column that extracts the key or the values or whatever that you want out of the JSON blob and throw an index over that. I would have to confirm, I know MySQL has functional indexes where you don't actually have to create the virtual column, but under the hood, it uses a virtual column. You can just throw a functional index over anything. I seem to recall that SQLite has functional indexes in the same way. So you could just say like, hey, use this SQLite JSON function to extract this key from this json
Starting point is 00:23:47 blob and then put an index on that which then functions as a traditional index we don't get the cool gen stuff that that postgres has okay so for and then for this course itself i know you you release and there are like a couple chapters still you have to release like what are you what are you looking for for finishing that up timeline wise? Yeah, so I finished yesterday, all the JSON stuff. So that that is done. And I'm finishing today, all the full text stuff. So that'll be done. And then we'll be like, we'll be done done, which is gonna, which is gonna feel really nice. There's a part of me that wants to claim it was strategic to launch it in early access, and then be, and then, you know, get a discount and I'll finish it later. But it was really, it was really like,
Starting point is 00:24:29 I just got to get this freaking thing out the door, even if it's not done. And so you can think I'm a genius, but I just had to get it launched. Do you start to hate it after a while? Oh, for sure. Yeah, I resent it big time. Yeah, I'm like, this freaking database will never die. Yes, I absolutely start to resent it. And that's why I took, you know, two or three weeks just off, off. And then I came back to it and had a little bit more energy. So yeah, that'll be done.
Starting point is 00:24:56 I mean, I don't know when this is going to come out. Today is, you know, I don't know if I'm allowed to say today is a date. It'll be out maybe next August 22nd. Okay. So hopefully by the next week, by August 29th, it'll be the next two modules will be out. And, you know, we worked, we worked very closely with Terso on this course and Terso sponsored the
Starting point is 00:25:16 course very generously. And it kind of came down. It's an interesting thing to have a, a course on an open source technology that you can run all by yourself and never speak to another human about it. And then have a cloud company sponsor it and be like, actually, you should use us instead. And so it's an interesting like, how do I remain true to the material and pure as an educator to teach you the things you need to know, but also do right, like do my duty by the sponsor whom I actually really like and trust.
Starting point is 00:25:51 And so kind of the way that I came down on that was I'm going to teach you everything vanilla. We're not going to use lib SQL. We're going to use SQLite. I'm going to teach you the hard way. And if there is an easy way, I'm going to mention, by the way, if you don't want to do everything I just showed you, then you can go use torso. And I feel like that kind of cut that kind of like satisfied two masters, which, you know, we were told is impossible to do. But I think it's okay in this case. Do you think you'll aim for a sponsor like for every course or just like sort of it works out and you find a good match that like philosophically and things like that? Or yeah, what do you think in there? Yeah, I think it's nice, right? Because if we can do it in a way that I feel comfortable with,
Starting point is 00:26:37 then it's a nice little bonus for everybody, right? So for me and Steve, I have a partner in the business named Steve. For me and Steve, it's a nice way to get some money up front. It's not enough to justify the cost of doing the course, which is a huge amount of effort. But it is enough to put some food on the table in the meantime, which is nice, right? Because courses are risky because you might put in a huge amount of effort and then everybody's like, nah, this is stupid. Fortunately, that hasn't happened yet, but it's totally possible. So next is Postgres. We're doing Postgres next, and we have a sponsor for Postgres. And so we are trying to do that model because then for the
Starting point is 00:27:15 business, they get to be associated with what I like to think is very high quality educational material. And they get to be associated with it in such a way that it is um it does fly under the radar of most developers like you know they they get their guard up it's like i don't want to be marketed to but if they come and they are being taught high quality stuff that is vendor independent and then also being pitched like yeah but if you don't want to do that there's a great vendor that I, that I trust. Um,
Starting point is 00:27:47 so to the extent that we can find companies that we like, that we believe in and that want to partner with us in that way, cause they can't strong arm us to be like, teach a course about torso. It's like, that's fine. I would do that, but that is fundamentally different than a course about SQL light.
Starting point is 00:28:03 Um, so if we can, you know, if we can continue to, to get sponsors in that regard, yeah than a course about SQLite. So if we can, you know, if we can continue to get sponsors in that regard, yeah, we'll absolutely do it. If we can't, I'm not going to sacrifice teaching a vendor specific thing just to get paid. I'm not going to do that. Yeah, for sure. I know early on when UNC sort of went out, you talked about different offerings, including like helping companies with their own stuff. Is that something you're still looking at? Or you're just like, hey, we're so good at these courses. And like, let's, let's just get a few of those going. Let's, let's say that it's because we're so good. But in reality, it's because we went out there
Starting point is 00:28:34 and the market was like, we don't want that. So the original offering, or one of the original offerings, as we were trying to figure out what are we going to do with our lives? One of the offerings was, hey, y'all, y'all, the market, not any individual company, y'all have five people on your DevEd, DevRel team. You're spending a million dollars a year. They're making videos that are average. Why don't you give us a little bit of that money and we'll come and help level up your team. And everybody was like, uh, that sounds great. We don't want that. Will you make videos for us instead? And I was just like, no, I can't be the face of every company.
Starting point is 00:29:12 I don't, I don't want to do that. And I don't think it's wise to do that. And so the resounding answer from the market was cool idea, bro. We don't want it. And so we just kind of dropped it. We don't do that. Yeah. Do you think think is that because like front of the camera talent is the hardest thing is that like the hardest thing to find maybe yeah um i think i think that is i think that is a hard thing to find um i think what we heard was that people like our dev ed team our devRel team is busy already and we want more. We don't necessarily want better from the people that are doing the work. We need more and different things.
Starting point is 00:29:52 And then I think some people were like, we want to leverage you, Aaron, and your audience to bring eyeballs to our brand. And that's just fundamentally different. Like, that's fine. I'm okay with that. I'm okay taking sponsors for our YouTube channel.
Starting point is 00:30:10 But that's fundamentally different than let's help your team make the best thing in the world. They're like, no, no, no, we want a new audience. All right, well, I could either fight with everybody and be like, try to convince them why they're wrong, or I could just change what we're offering. And we decided to change what we're offering. Yeah, for sure.
Starting point is 00:30:27 Okay. So what's the timing for the Postgres course? So it will be announced here on the show. This is the first time people are talking about it. I've said anything. But it will be announced early September. So a couple of weeks. And then I've been working on it already.
Starting point is 00:30:42 So this is going to sound like an insane timeline, but it'll be released mid-October. Wow. That is an insane time. Are you like a nine to five worker of like videos? Are you like an ambler, but you just managed to get up? Like how do you, yeah. What's your workflow for something like that? Just a lot of anxiety is the answer.
Starting point is 00:31:02 You know, this is now my full-time job. So that helps, right? So I'm not like, I, you know, this is now my full-time job, so that helps. Right. So I'm not like, I'm not a nights and weekends anymore. Like when I launched screencasting.com, it was a nights and weekends guy doing it. And it was like, I'm literally where I put the kids. I've got a billion kids, you know, I put the kids down. And then after that, I'm like working from 8 PM to 2 AM in the morning, trying to record
Starting point is 00:31:22 videos about how to record videos. I don't ever want to do that again. That was terrible. So now, you know, it is it's more it's too much right now. I will say that for sure. It's too much right now. Right now, it's about a 7 a.m. to 545 or six. And the reason it starts early is because I don't miss dinner.
Starting point is 00:31:43 Like I do have four kids under the age of four. And so I go home for dinner. And then by, you know, by night, I'm just totally gassed. So, and it helps that, you know, I have Steve. So I'm not editing my own videos anymore. I'm not, I'm not managing customer support. We just hired somebody part time to help us not only do customer support, but like to run my life. That was kind of the that's kind of the charter for her. It was like, listen, you're in charge of Aaron
Starting point is 00:32:10 now. So you do everything and and like order me around. And that has just been that's just been incredible. I highly recommend hiring your own boss. So yeah, it's a lot. But I do have things going for me, which is full-time extra help, able to just kind of focus on that solely. But yeah, it's too much. We won't do it. We won't do it back to back like this again. SQLite Postgres was too tight.
Starting point is 00:32:35 Yep. Do you have something that's not relational in the future? And not necessarily like NoSQL, but even like Redis or Elasticsearch or something like that? Yeah. So that is very much on my mind and I think a little bit out of my grasp. And so like, for example, SQLite, I had never, I'd used it before, like everyone's kind of dabbled with it, but I'd never used it in a serious way. But it's so adjacent to the stuff that I know and have known for two decades at this point that I felt comfortable that with concentrated effort, reading however
Starting point is 00:33:13 many books are back there, reading six books about it and printing out the docs and reading the docs, I can get to a point where I feel really confident. If I were to try to teach Dynamo, it is just a fundamentally different paradigm and a paradigm that I've never used in production. So like if I had used, what's a core, what's a, what's Dynamo adjacent? Like what's another one? Cassandra or something like that. If I had used Cassandra in production for 10 years, I would be like, yeah, I'll pick up Dynamo. Different, different flavor of the same thing. I don't think I can just pick up dynamo to teach it and I don't feel like that would be um not honest I don't feel like it would be dishonest um I just don't feel like I would be confident in reading four dynamo books and then being like I'm a dynamo guy because I'm just not and so
Starting point is 00:34:03 redis is a lot closer. It's not, you know, it's not in the same family, but I've used it a ton. And so I feel like I could get there. Elastic, that feels tough. Because again, I've never used it in a serious way. Yeah, yeah. Elastic is the one that I feel like five years ago
Starting point is 00:34:20 could have really used a good resource on. So it's like, you can do so many dang things with it and no one knows how to use it um i feel like it's sort of getting disaggregated now where you have like time series over here you have like some specific text search options you have like your log search options and things like that but for a while i think i think they're a good opportunity there the one that's outside of my wheelhouse that i do have my eye on and i do plan to try to learn if you know time permitting is DuckDB that feels like that feels uh sequel light adjacent and philosophy um but fundamentally different in workloads and that's like super interesting to me um so I have the curiosity
Starting point is 00:34:59 to get there on that one um and I I'm like yeah if I you know if i play with it for long enough i feel like i could get there but the other stuff i'm like they're they're just they're better people to do that and that's really not my wheelhouse yeah yeah that duck db one would be like a good one following up on postgres too because you're seeing like some integrations between those two um wait i think like crunchy bridge and parade db all they have integrations there so yeah it's pretty cool yeah and people that like sqlations there. So yeah, it's pretty cool. Yeah. And people that like SQLite like DuckDB because it's philosophically similar.
Starting point is 00:35:32 And so you could have two different workloads with kind of the same philosophy. And so, yeah, it seems really interesting. And it seems like they're doing cool stuff, which is always fun to watch. Yep. How did you get into databases as an interesting topic area? Yeah, I come from an era where you just did it all, right? So, you know, when I was 13, let's see, if I was born in 89, 13 would have been 2002 or something. Does that sound about right? We'll call that right. That's live math. So back then, it was like, oh, you want to make a website? Great. You got to learn Apache. You got to learn
Starting point is 00:36:03 PHP. You got to learn MySQL. You got to learn CSS. And got to learn php you got to learn my sequel you got to learn css and so like i came by it honestly um it's also in my blood my dad was a dba so my dad was a sequel server dba and so i grew up around that sort of stuff so like i'm you know i'm sitting at the living room computer you know giant desktop tower thing and i'm like dad i don't understand what's happening and he can like walk over and explain, he can explain bee trees and pages to me when I'm 13. And that's just people, most people didn't have that. And so, you know, it's kind of like I inherited it. And it also fits my brain super well, which is why I studied accounting in college, because it's the same, like accounting is basically databases, but for business people, it's like, hey, we've got eight rules that you must follow. And everything falls under these eight rules. Now
Starting point is 00:36:51 go figure out how to run a business using these eight rules. And I'm like, Oh, that's awesome. And so it's kind of like, that's just how my brain works. Yep. Yep. I loved I loved accounting too, in high school. And I went to law school and I love the tax classes, because because it's the same way. It's just like programming. I guess like... So you started programming when you were before college. You had some background.
Starting point is 00:37:13 Oh, yeah. Accounting is interesting, but why didn't you just stick with programming? It seems like way more fun to be programming. Turns out it is. I'm not an accountant. So programming was just a hobby all the way through up until college. And there was part of me, I don't know if I made the right decision. I'll just start there.
Starting point is 00:37:34 But there was part of me that thought, I don't want to ruin my hobby. And I will continue to. Wait a second. Wait a second. When you say part of you that doesn't know if you made the right decision in switching back to programming or... No, in not doing programming. Yeah, doing accounting. Yeah.
Starting point is 00:37:51 Okay. So part of me thought, I don't want to ruin my hobby. Part of me saw what my dad went through in 2001, 2003 when the industry imploded. And he was like out of a job for a while. And I thought, what's safe accounting, accounting is safe. As long as you don't work at, you know, Arthur Anderson, which audited Enron, and then it went away. So like accounting generally is safe. And I was originally going to be finance. And then I took a few accounting classes as a part of that curriculum and just absolutely fell in love and did that for five years.
Starting point is 00:38:30 I got my master's and I passed the CPA exam. I did the whole thing. I went to work at Ernst & Young. And while I was there, I realized that it sucked. It was just awful. It was so bad. Like in school, everything is like cathedrals in the sky. And it's like, theoretically, what would happen if you did this? It's like, I bet I can figure that out.
Starting point is 00:38:52 And then you get to a big four accounting firm and it's like, hey, there are numbers on this form, put them on that form. And that's what you do all day. It's like, oh, shoot, I have made a huge mistake. So I stayed one year because that's how long I had to stay to get to make sure that my CPA bonus didn't get clawed back. I think they gave me five grand for passing the exam. And I was like, I'm 21. I can't afford to pay it back. And so after one year, I was like, y'all, this is for the birds. I'm out of here.
Starting point is 00:39:19 And I just went back to programming. Wow. And and then like, what was that like? Did you just like go get a programming job somewhere? Did you? Yeah, I guess like, yeah. What was that transition like? Yeah. So during the year that I was there, I was doing, you know, how when you're a programmer, everybody's like, Oh, well, my brother-in-law needs some help programming. It's like, there's like a 4% chance I can do what he needs. But you know, I picked up a few of those jobs while I was at Ernst & Young and I was doing stuff on nights and weekends, because I thought I got to build a way out. Because I knew,
Starting point is 00:39:48 I knew within the first month, this is not going to work. And so I started taking on, you know, side work nights and weekends doing programming stuff. And then just like, story of my life, I was just blogging about learning how to do things. And like, hey, I discovered this when this PHP framework pre Laravel. And so after I got out of Ernst & Young, I live in Texas and a company from California called me and was like, or I guess emailed me and was like, hey, we saw your blog post. Do you want to work for us? And I was like, what's going on like i just spent five years getting credentialed and i went through this whole recruiting season that lasts a full semester and barely like i'm thrilled to get in a job and then i you just email me you're like do you want
Starting point is 00:40:36 to work for us like what a difference of industries and so after i got and i said yes of course because i was like yeah i would love a job um so after i got that like once said, yes, of course, because I was like, yeah, I would love a job. So after I got that, like once you're in, you're in. And I just kind of hopped around ever since then. Yeah. Yeah. Okay. Do you think you'll still be a programmer in like 20 years? Yeah, I do.
Starting point is 00:40:59 My I'm trying to formulate like the right way to say this. And I want to write about it someday, but I haven't figured out the right way to say this. And I want to write about it someday, but I haven't figured out the right way to say it. My focus, I look beyond programming. My end desire is not to be a great programmer. My end desire is to build great things. And it just so happens that programming has allowed me, it has afforded me the opportunity to do that. And so because since I, as literally as long as I can remember, like I remember I have a brother who's two and a half years older.
Starting point is 00:41:38 And I remember being at home one summer day and asking him, Hey, Jonathan, what do you want to build today? And he's like, what are you talking about? I'm like, I want to build something. What do you want to build? That has been me forever. And turns out software or like being a developer is just frankly, the best way to create something from literally nothing. X nihilo, I'm going to create. And so I think in 20 years, I'll still be building. And frankly frankly it'll probably still be the best way to build things um i don't think i'll ever give up projects and i i think development is going to be the way that i do that forever yep yep i wanted to ask you about that because like i don't know if you're like super high agency or just like creative or whatever but you're like always doing
Starting point is 00:42:23 stuff and that's like one of the, they're like two or three skills I want my kids to have. And that's like one of them is just like high agency slash like go do it. Don't be scared of it. Do you think that's like just born in you? Like since your brother didn't have it or like, is it, how would you cultivate that?
Starting point is 00:42:41 Do you try to cultivate that in your young kids? Like, yeah. How do you think about that? Absolutely try to cultivate that in your young kids? Like, yeah, how do you think about that? Absolutely try to cultivate that in my kids. So my kids are, I have two three-year-olds and two eight-month-olds. And so like concrete, yeah, two sets of twins. Concrete example, puzzles.
Starting point is 00:42:58 Puzzles are big. We're into puzzles right now, specifically puzzles with dinosaurs on them, which is like, is there anything more pure than a kid doing a puzzle that has dinosaurs on it? And so the kids are always asking me for help with the puzzles and with everything. Cause they're kids. They don't know how to do anything.
Starting point is 00:43:14 And I'm always, my response is always, you can do it, but I'm here to help you if you need it. Like, why don't you try it first? And then if you need help, I am right here and I am going to do everything in my power
Starting point is 00:43:26 to move heaven and earth to help you, my child. But it's always, why don't you try? Have you tried it? Give it a go. See what happens. So yes, I always definitely try to cultivate that in my kids. That is, I think, something I was born with the seed of, but have specifically tried to cultivate that in myself, frankly, specifically, I think in the past, maybe, maybe 10 years. So like into adulthood,
Starting point is 00:43:57 I've tried to, I became aware of this term high agency. And I thought that is the way that I want to live. And it's a constant, it's a constant battle of, um, trying to like fulfill that, to fulfill that role in my own life of being high agency. But I very much ascribed to like the, you can just do things mentality. Like I don't want to, um, I think I don't want to have reached the end of my life, not in like a morbid way, because I know that's going to happen, but let's say the end of my career. I don't want to reach the end of my career and think,
Starting point is 00:44:35 oh, you could have gotten so much more if you just like, I don't know, tried? Like, what's the worst that could happen? Some people think you're an idiot. Well, that's okay. Actually, people aren't thinking about you at all. They're thinking that everyone else is thinking about them. We're all living in this world where everybody's like,
Starting point is 00:44:49 ah, I wonder what people think of me. And the reality is nobody thinks about you at all. And so I don't want to get to the end and be like, dang, you had a lot of opportunity, but you sure were scared. And so that's like the thing that I keep in mind because when you're competing with like the fear of putting yourself out there and being made to look a fool and the fear of looking back on your life and regretting it.
Starting point is 00:45:11 Shoot, one of those is much bigger than the other. And so we just we go with the less scary option. It's true. One is bigger, but one is like so much more immediate, too. It's like so much more immediate. It's pain today. Yes. I have to go look stupid.
Starting point is 00:45:22 So, yes, it is so much more immediate uh but there's like this fundamental like deep soul fear of looking back and regretting this like oh gosh i can't bear to even think about that yep yep with your two three-year-olds do you see a difference in them in like in the puzzle stuff of like one is just like persistent i'm gonna go do it and one's like gonna go find you more quickly or do you not 100 entirely different um yeah they're they're they are twins they're but they're boy girls so they're fraternal um and they their personalities were evident this is not just like a folksy dad thing their personalities were evident from the moment they came out of the womb my daughter just fierce and strong and like independent when she came out she screamed her head off my son gentle and like and and pure and when he came out he was sad and like that has that has persisted into
Starting point is 00:46:28 into now the the three years of their lives my daughter will run headlong into a wall if if you tell her not to she's gonna be like i'm gonna do it anyway and my son is just it's just so gentle and all of the teachers and the kids and everybody loves little Simon. They love Amelia too, but it's just like this. Simon is so sweet and gentle and Amelia is so intense and so powerful. And it's so great. Like, it's wonderful to have both and for them to be the same age and tell each other, like, you're both, uh, you're both doing the right thing and you
Starting point is 00:47:06 could also be more like your sibling and that would that would be fine too and it's like we have everything it's awesome yeah that's oh man that's so it's so much fun to just like see their personalities grow up and like how how early they're evident um yeah it's wild it's wild yeah it's crazy it's great and we have you know we have another set of twins and i can't tell their personalities at all can't tell them at all they're both just as chill as could be and i guess maybe that's their personality but it's a boy girl set as well and they are both they're the exact same as each other they're both super chill they're both super smiley and they just kind of you know sit there and watch their older siblings run in circles and it's like i don't know what y'all
Starting point is 00:47:48 are gonna be like so it is you know i feel like we have the whole the whole spectrum yeah yeah um on that same topic of like agency and habits or skills we want to see in our kids do you think making money is a skill like do you agree with that sort of idea? Yeah, I do. I super do. Yeah. Do you, I guess like, how do you think you are at it? And is that something you want to try and like encouraging your kids from a young age? Yes. A hundred percent. Um, I think I'm very good at it and have always been very good at it. And I think, so I think, for example, my dad is very bad at it. And my dad is potentially one of, if not the smartest people, persons that I know, but he just doesn't have that like, he doesn't have that thing where he can turn it into money. And I think the fundamental flaw there, not necessarily with him, but what I see, what I observe in a lot of people in the world that are similar, that are incredibly intelligent, but can't crack that nut, is I see a lot of people, and it's very common amongst developers, honestly. I see a lot of people that look at the
Starting point is 00:49:05 world and say, this is not the way that it should be. I am going to fight, and I am going to claw, and I'm going to change the system. And that's fine. In some aspects of my life, I am the exact same way. People on the outskirts, people that have no leverage, people that are marginalized, I'm like, we got to change the system. But when it comes to my company, I don't work at a company, so I'm allowed to say this. My company calls me a family and that's toxic and I'm going to change this. It's like, man, I don't care. Like, call me a family. I don't care. I don't believe it.
Starting point is 00:49:48 But I'm not going to agitate inside of a company, make everybody mad at me, and then end up getting laid off and put on a pip or something. Because it's like, that guy Aaron never shuts up about how everything is broken. It's like, I can fight that system or I can just operate within it,
Starting point is 00:50:07 knowing full well that when a company calls me a family, they're doing it so that I think that we're a family and I don't go anywhere, but they'll fire me at any moment. It's that kind of thing where it's like, you have to decide which systems do you wanna rage against? Like, do you wanna rage against the machine or do you wanna observe the rules of the system and operate within them to your advantage?
Starting point is 00:50:29 And most of the time, I want to observe the rules of the system, operate within them to my advantage. And I think that has worked pretty well for me so far. Yeah, yeah, for sure. So you're on your own and doing a lot of video creation now. How do you keep up your programming skills when you're not full-time, you know, digging in the muck anymore? Yeah. That's the risk, isn't it? Because then at some point your, uh, your skills say in 2024 and it becomes 2030 and you're out, it's over. Like you've lost it. Um, I really like programming. That's how, that's how I do it. And, um, so I continue, I continue to actually
Starting point is 00:51:13 program. So like, for example, um, our, you know, high performance sequel light.com, uh, serves all of our videos and everything. And that's just a platform that we wrote me and Steve together, just like it's a Laravel backend of UJS front end inertia in the middle. Uh, we just, we do it. We just still do it all. The other thing is I don't feel pressure. Um, well, I don't feel the effects of pressure. I get outside pressure to be like, Hey, can you compare, uh, can you compare next JS with Laravel? And I'm like, nope, can't. Don't know Next. Don't want to know Next.
Starting point is 00:51:47 Don't want to work with it. It's fine if you like it, but I'm not going to offer an opinion on it because I don't know anything about it. And the same with like something that I do have a ton of respect for is Rails. And people are like, what are the differences between Laravel and Rails?
Starting point is 00:52:01 And I'm like, that's a great question. Don't know. Couldn't tell you. And so And I'm like, that's a great question. Don't know, couldn't tell you. And so that I feel like keeps me, it keeps the options narrowed such that I can continue to like teach about things that I actually know. And that goes back to Dynamo,
Starting point is 00:52:21 like, meh, don't know, can't do it, not gonna do it. And so while people do ask me that, and I think I see a lot of other developer creators trying to be super broad and learn a new stack every day. And to me, for my personality, that's exhausting. I could not have 30 half-finished projects in different stacks and be happy about it. Because like I said,
Starting point is 00:52:51 the thing that I focus on is in fact beyond being a good developer and it's building things. And so what I want to do is build things. So I stick with the stack that I like. And occasionally it's like, ah, the curiosity bug has bitten me. I will read the entirety of the documentation for this thing. And that's where the new stuff comes in. But primarily, I just stick to what I like. And I continue to go deeper on that. And so the well of what I can teach is just overflowing because I'm always doing something from which new ideas to teach spring. Yep, for sure.
Starting point is 00:53:19 Do you think, so then content-wise, do you think you'll go outside databases, but into something you do know and love, like PHP, Laravel, something like that? Yeah, there's a very real possibility where by this time next year, I've got high-performance Laravel, for example. Or I've got Laravel from scratch or something like that. There's also, this is a higher possibility that I teach a course on ScreenFlow. So I've got screencasting.com, which is like philosophically, how do you record screencasts well and quickly? Cause boy, are they a pain. But I'm going to do a course on the
Starting point is 00:53:58 particular software that I use, which is ScreenFlow. And yeah, they're, they're definitely, it's going to expand outside of databases, but it's not going to expand outside of things that I want to teach, which I think is like, that is the ultimate boundary circle. I'm just, I'm not going to teach TypeScript. I don't know TypeScript and I have no desire to learn it. And so anything inside the circle of interest, it's fair game. Yep. Do you have a sense of like, this is how many courses I need to do a year going forward? Do you think about it that way? Or is that a bad way to think about it?
Starting point is 00:54:31 Oh, yeah. Super do. So we've been public about this. High Performance SQLite did $130,000 so far, which you hear that and you're like, wow, Aaron's rich. Hang on. Hang on, friendo. So there's me and Steve, which you hear that and you're like, wow, Aaron's rich. Hang on, hang on, friendo. So there's me and Steve, which already divide by two. We have a part-time employee. We have self-employment taxes. I've got a wife that works very hard, but doesn't get paid for it and four
Starting point is 00:54:57 kids. And so that gets sliced and diced two bits immediately. And so yeah, there's a big question about like, how do we make this a sustainable business? Like we did a very successful course launch, which is awesome. Better that than an unsuccessful course launch or a poke in the eye, right? Better to be successful. Then the real question though, is how do you turn that into a business? And that's something that like Steve and I are 100% trying to figure out. And I think some of it will be launch new courses. But then the more interesting thing that we're trying to figure out is the SQLite course is not out of date.
Starting point is 00:55:39 So how do we market? How do we come up with something sustainable? How do we make it evergreen? How do we leverage new courses to sell old courses? Like when we launch Postgres, are we gonna see a spike in SQLite because we have attention shined upon us that's like, oh, you don't like Postgres?
Starting point is 00:55:56 Well, we've got this other thing. So yeah, we're trying to figure that out. Like I said earlier, the pace that we're on now is not sustainable, but we are in a mode where we have to get to a certain velocity and then we can coast, but we're not at coast yet. Yeah. Do you anticipate trying to do a SaaS again or anything like that? Or do you think you'll stay in content for a while?
Starting point is 00:56:21 Yeah. I do think there is a path and I hope that this path emerges, frankly. I do think that there's a path where in the course of our work and our audience growth and our distribution slash attention, because that's the game we're in. Like, yes, I am an educator at my very heart. I am an educator, but the game we're in. Like, yes, I am an educator at my very heart. I am an educator, but the game we're in is distribution, right? And we currently have it.
Starting point is 00:56:51 And so if we can get to a point where a SaaS idea emerges or a SaaS partnership emerges, so somebody comes along and says, hey, I have built a SaaS, but I don't have distribution. You have distribution, but you don't have a SaaS. Like that would be awesome. So I'm a hundred percent, Steve and I both are on the lookout for that. Steve is, Steve is a unicorn. He's a video editor, developer, database dabbler. Like
Starting point is 00:57:19 he does it all. And so between the two of us, we're, we're always on the lookout for in our course of work slash with the audience that we have and are growing what is a good fit here because yeah recurring revenue can you imagine that'd be amazing i would love that so but we're not we're not quite there yet yeah yeah what about do you have the goal of like hey i'm never working for for someone else again or are you more like hey this is fun right now. I like it. I want to give it a shot. But, you know, who knows?
Starting point is 00:57:47 Or if a good opportunity comes up, like, I'm fine with that. The goal is to never work for somebody else again, for sure. But that doesn't mean that we wouldn't sell the company. Steve and I are both like somewhat uncomplicated. We're like, if somebody comes along with a huge bag of money, we're going to sell the company. Like, yeah, yeah, Perfect. Great. Sounds good. Um, so it's not like I have this, I have this, uh, pure, like I must, this, this company is my life's mission. No, not even
Starting point is 00:58:16 close, but like, yeah. Do I like working for myself instead of someone else? You bet I do. It's a lot more, it's a lot more stressful right now, but it sure is a lot more fun. Um, so yeah, that would be, that would be the goal is to either through this mechanism or some other mechanism, continue to do stuff on our own with, you know, me and Steve. Okay. So you've obviously been very successful with video content. So you've got three video courses that are six figures. You've got two channels that are, I don't know, 30, 40,000 people, subscribers each. Um, what, like, what can you tell me or tell others about video content and like how to be six? Do you watch a lot of video content? Um, I guess, yeah. Broad, broad ranging question. Um, I watch a lot of, I watch a lot of maker content and sometimes that is software developers on YouTube. Oftentimes that expresses itself as builders. Like I watch a lot of woodworking YouTube. I watch a lot of
Starting point is 00:59:12 homesteading YouTube, a lot of like construction YouTube. And honestly, I think that informs my content a lot more than watching some other person that I'm ostensibly competing with, right? Because what I don't want to do is like watch somebody that's in the same space and be like, oh shoot, they're doing it better. I got to copy that. I think that's a death knell for any creator to be like, I'm just going to do what they do.
Starting point is 00:59:36 There's part of me that thinks doing what somebody else does is a great way to get started, but you have to pretty quickly decide, maybe not decide. You have to pretty quickly express who you are in the content versus trying to be somebody else because people like we, we,
Starting point is 01:00:00 we like different movie stars. We like different restaurants. The fact, the fact that pizza hut exists does not preclude Papa John's from existing. And so I think that same thing is true, which, by the way, I like both of those very normie pizza places. They're both fantastic. And I'll order from both of them. And I think that is true in content, right? So what I see most often is people being afraid just in life, full stop. But in content, people being afraid to express who they are and try to do something like,
Starting point is 01:00:37 let's say, Primogen or Theo does, right? Instead of saying like, you know what? I do things differently. Like I've taken certain stances that are contrary to what Prime or Theo do, which is no moral judgment against them. It's just like, I have to do it my own way if this is going to be sustainable.
Starting point is 01:00:55 So that's philosophical. Like, you know, in theory, how to be different or how to be successful. I think practically how to be successful is publish. That's it. That's the full answer. Publish. Like you can sit around and watch Prime or Theo or me or Josh Siri or you or any of these people and be like, I'm going to study. And that's great. Except that that becomes a vector for procrastination and a vector to release your fears, to be like, I can't do it yet because I'm not there yet.
Starting point is 01:01:27 And you're like, no, no, no, no, no, no. The only way that anybody got there is they just put it out there and they just kept going. I look back at some of my early stuff and I'm like, that's not very good, but I'm super proud of it because I'm like, you did it. I owe everything to that guy. That guy who put out that crappy video i owe him my
Starting point is 01:01:46 entire career and so it's like you just got to get started yeah yeah but before you like really took off did you know like hey video is is sort of the type i want to do or did you like do about you mentioned doing some vlogging and getting a job from that like i guess like did you always think like hey i like making videos the most or was like, oh, you got some traction with that. And it was like, this is a good thing. Um, I did not think I did not think that video was going to be my way out. I really didn't. I enjoy writing a lot.
Starting point is 01:02:18 And I've written a lot. And I've done it for a long time. And I think I'm good at it. But I noticed so back when I like very first started doing video, I was also like trying to build software products as well. And it just wasn't working. And people kept being like, yeah, we don't we don't care about your SaaS. But we when are you going to put out another video? And I'm like, y'all that no, the whole point of the videos is to get you to go over there and buy my software. And people are like, y'all, no, the whole point of the videos is to get you to go over there and buy my software. And people were like, yeah, I don't get your software, but your videos
Starting point is 01:02:50 are awesome. And that's, again, that goes back to like, should I fight the world, which sounds exhausting, or in this regard, should I give them exactly what they're looking for? And it's like, ah, I am going to ride my bicycle downhill instead of riding it uphill. And so once I realized, like once I finally internalized, it's a very uncomfortable, you have to understand it's a very uncomfortable realization to come to, to, to, to realize that people want to see me on video. Cause that feels very like self-centered and egotistical to be like, aha, the market is demanding more of Aaron.
Starting point is 01:03:32 It's like, are they bud? Are you sure about that big guy? Um, but once I finally internalized like, Hey, people enjoy your content. You should do more of it.
Starting point is 01:03:41 That's when it started to go downhill in a good, in a good way. That's when it started to be a lot easier to get there. Yeah. Do you, do you get energy then from, from that and realizing like, Hey, I'm a part of this is personality and things like that. Or are you like, is it tiring to be like, Oh, I have to keep sort of this flywheel go like me personally has to keep this flywheel going. Yes. Yes. And yes to both. I get energy from it. Like I do get energy from releasing a thing and hearing people say like, wow, that was a really good thing you made. And I feel a sense of pride. And I'm not fighting against that. I think it's good to take pride in one's work. I think that is a good thing. I think it is a good thing to do work
Starting point is 01:04:24 well, even if nobody ever says you did a good job. So I think there's nobility in doing good work. I think that is a good thing. I think it is a good thing to do work well, even if nobody ever says you did a good job. So I think there's nobility in doing good work. I take pride in my work and I enjoy it when people say you did a good job. It is also exhausting. It really is to have, um, because for everyone that says you're doing a good job there there may be as many people saying like you did this wrong and that like that gets to me i am not i am not like a a very um i want to say strong but that seems bad yeah i'm not very thick-skinned i'm not when people say when people say like hey that implementation was kind of stupid i'm'm like, Oh man. Or like, why do you, why do you type the word clear in your terminal instead of hitting control L? Everyone knows that control L clears the terminal. And I'm like, I did not know that.
Starting point is 01:05:15 I didn't, I didn't know that. I just typed the word clear like an idiot. And everybody's like, ha ha, what an idiot. And I'm like, shoot, this sucks. Um, so yeah, it definitely, you know, it vacillates between I'm the smartest man in the world and why am I even doing this? Um, and there's some of that that's healthy, like, you know, exposing yourselves to the extremes is healthy to like center you, but I would rather just not be exposed to extremes, but, um, I enjoy it. I enjoy the craft. I enjoy helping people. I enjoy people thinking that I'm good at it and taking the sometimes constructive criticism and sometimes just mean people.
Starting point is 01:05:53 I think that's just part of the game. Yeah, yeah. Okay, I want to close off. I want you to educate me a little bit on PHP and more just like the ecosystems and the vibes. Here we go. You're about to get PHP pilled. Well, like I would, I'm self-taught i've only done like python and javascript so i would i'm not like a snobby
Starting point is 01:06:11 programmer at all but i would say like my impressions of php before five years ago was like kind of janky and things like that but like a lot of people in the ecosystem are really good at the craft like you and taylor and adam wathen like it's just like a there's a lot of really good people had a lot of we've had a lot of graduates yeah yeah i guess like was i wrong there or was there some sort of shift that i just didn't realize like yeah what's the php story over the last 10 or 15 years? Yeah. The PHP story over the last 10 or 15 years is one of, in my opinion, continual improvement on a couple of different fronts. One is the PHP core, which I guess is like the PHP foundation or whatever, the people actually in charge of the language. I have been continually
Starting point is 01:07:05 impressed by the ways in which they are pushing the language. And so like at its very, this is not vibes based, like we'll get to vibes, but at its very, at its very fundamentals, the language has gotten better. It's just gotten a lot better. And so, you know, we have a lot of, um, we have a lot of types that you can opt into. So if you're like, ah, I love TypeScript. It's like, well, we also have types now. We don't have generics, but you can add generics with a, you know, a package. Um, but we've come a long way on like type safety. Um, we have come a long way on like, um, on stuff like, you know, enums and traits and all these like language levels features that have been added have come a long way.
Starting point is 01:07:48 There's also a big interoperability group for PHP that puts out these PSRs. I actually don't know what PSR stands for, but it's like, we all agree on this thing and then we're gonna codify it. Codify it? Codify it. We're gonna make it a standard. And so we've got psr1 through like 14 15 16 or something like that
Starting point is 01:08:09 and that is what i see missing frankly in let's say the javascript community is like we have all these different wait and sorry when you say psr these are like are these new features they're getting added like so these are ways of working. So let's take, for example, auto loading of files. So like in PHP, you've got classes that live in namespaces. And so like if you've got an app slash models directory, you put your user and your bookmarks or whatever in there. There is a PSR, I think it's PSR 4, that codifies,
Starting point is 01:08:45 here is how we're going to auto load classes. And so every framework, Laravel, Symfony, Yee, CodeIgniter, whatever, they all adopt PSR 4. And so when you're jumping back and forth between frameworks, you know, if I put my class in this folder, then I can load it in another class by doing it this way. And so we've all standardized. So like, code styling, I think is a PSR, a cache implementation is PSR. So like, if you have a cache package, and that's, shoot, if it's PSR 14, maybe PSR 14 compliant, then you know, oh, I can just use any of these cache packages off the shelf, because they're all PSR 14 compliant. There's a request response PSR that says like, hey, this is a PSR seven response. And so you automatically are guaranteed.
Starting point is 01:09:39 All right, well, I've got these affordances on there. And I can swap out my implementations if I need to. And so there's this group and it's got a, you know, board and voting members, Taylor Otwell's a part of it. It's like, um, they put, they put things up for vote and the group decides like, yeah, we need a cash, like we need a cash interface that everyone can adhere to. And then you can do whatever you want in your implementations. And so that just become like, I feel like that precludes the possibility that like an EJS, CJS thing could happen, right? Because all the big frameworks get together
Starting point is 01:10:14 and fight about it. And then they agree on something and we ship it. And it's like, all right, everybody uses PSR-4. That's just how you load your files. Every package in the community must use PSR4. And if you don't, nobody's going to use your thing. And so that goes a super long way into making things, I guess, cross-framework compatible or interoperable. Interesting. Yeah. So it's not the language itself, but it's just like all these things
Starting point is 01:10:39 that themselves have market share sort of operating in a similar way okay okay and i i got the impression that or php was like a ton of laravel now are is there like like is it pretty evenly split between they're not evenly but at least like symphony and these other ones are also quite big um symphony is quite big uh symphony is the most popular or yeah okay no you're not wrong um they're anyone that is a hardcore Symfony user right now is just screaming that like, Symfony was there first. And it's like, yes, I agree.
Starting point is 01:11:10 Totally. You're right. Symfony is great. Symfony, in my opinion, we're getting into hot take territory. In my opinion, Symfony suffers from technical correctness where Laravel has exceeded in what we now everyone calls developer
Starting point is 01:11:28 experience, right? And so while Symfony historically was very, very good, Laravel, in fact, builds on top of a lot of Symfony components. And so like, we have the utmost respect for Symfony in the Laravel community. But there are just a lot more like, it's a lot more fight versus win. Again, it's like, hey, this is the technically correct way to do a thing. But we're gonna make it easy. Like, yeah, we're still gonna do it right. But we're just gonna make it a lot, a lot easier for everybody. And then like, that's the that's like the framework level. I think in the ecosystem level, that philosophy has extended from local development through to production. So like, let's say you want to fire up Laravel. Well, you can download Laravel Herd.
Starting point is 01:12:13 And Laravel Herd is a free tool that will set up PHP, MySQL, Redis, and Nginx, and honestly, like an ngrok type of thing. It'll set all that up on your machine. You could go to the Apple Store or the Windows Store. I don't know what that is. You could go to the Apple Store today, buy a new MacBook, download Laravel Herd and be up and running with everything you need
Starting point is 01:12:36 to run Laravel in five minutes. And then that goes all the way through to, there's a first, there are actually two, first party deployment solutions for Laravel. So the creator of the Laravel framework has created a way in which you can deploy Laravel to either serverless with Laravel Vapor or any server with Laravel Forge.
Starting point is 01:12:59 And it's like the entire lifecycle slash journey of a Laravel application has been covered by the Laravel team, which is fundamentally different than something like Rails, where it's like, we give you Rails, and now we kind of give you Kamal. But you got to figure like Heroku has to exist, you know, you got to figure out all the rest of it. The Laravel team has just decided, you know what, we don't have a base camp or a campfire or whatever our entire mission is to make tools for laravel developers it just makes our lives like really easy yeah interesting what's the origin story of taylor and laravel like i did taylor taylor worked for ian right like did he make laravel there and
Starting point is 01:13:39 then spin it off like what's how did how did this happen yeah so the creator of Laravel is named Taylor Otwell. He worked a long time ago for a guy called Ian Lansman, with whom I host a podcast. And Ian was out there looking around for, he was a PHP shop back in the day. This is probably, gosh, 2011, 2010, something like that. He was looking for a PHP framework. And he happened across the docs for early Laravel. i want to say like one two or three very very early on and was um taken by how good the docs were and so he reached out to this guy taylor and was like hey man what's the deal
Starting point is 01:14:19 with laravel and it ended up that taylor came and worked in-house at Ian's company. And Ian gave him like 50% time to just work on Laravel. He's like, just go in the cave and make it better. You can open source it, but we need like, hey, we need an active record implementation. You've got to go write a database driver kind of deal. And so Taylor worked there for a number of years. And then Laravel just outgrew, outgrew his, his being employed. And so then it became an independent thing. And that was just why we call Ian the godfather of Laravel. Cause he was like, he is, you know, he's more like the patron or something of Laravel, but he really likes the godfather. So we give it to him. But yeah, that's where it came from. And historically Taylor, I think was a.net developer.
Starting point is 01:15:05 And so he took a lot, you know, he took a lot of inspiration from his blazer, a thing. Uh, I've heard of that. Yeah. Yeah.
Starting point is 01:15:12 Who can say, um, he took a lot of inspiration from.net, a lot of inspiration from Ruby on rails. Um, but then implemented it in kind of the forgotten lands of PHP and just kind of like, uh,
Starting point is 01:15:23 just kind of dominated. Is, do you think PHP is in like a noticeably different spot if like Taylor Atwell doesn't exist or just like stays in she's sharp world? Like, yes, a hundred percent difference. Um,
Starting point is 01:15:38 my opinion of PHP is it has always been the working man's, the working person's language. It's always been the language of the levels IOs. Like it's always been the language of people who are like, oh man, I just freaking want to build a thing. And that ethos like goes through to WordPress. It's like, it's a disaster in there. I've never worked with WordPress. So this is just an outsider's opinion. It's a freaking nightmare, But hey, we run every site in the world. So who's mad? You know, PHP has always had that like hacker, builder, tinkerer kind of ethos where like
Starting point is 01:16:12 the more purists do migrate to something like Ruby or something that is like technically beautiful. And PHP is like, yeah, sometimes the, you know, array find and array search, the order of operations is switched. And you just got to kind of remember that or order of arguments. But somebody like Taylor comes along with a product mindset,
Starting point is 01:16:31 someone who can say like, yes, PHP is bad, but what if we made it appealing to the people? Like what if we made these things, these 18 different products, and put like a level of polish on it that frankly, nobody has ever done before? Like, what if every single open source library was branded and packaged and had beautiful docs and tests and a logo, and somebody with that kind of product mind comes along and walks into this
Starting point is 01:17:03 wasteland of PHP and is like, what if we made it beautiful in here? And I feel like that was the thing. He's a very good programmer. I have to admit, he's an incredible programmer, but his product mind, I think, is what has made it. His taste is very, very good. Interesting. Okay. Is the PHP world still like mostly MySQL? Is that shifting at all, or is it still? So Taylor has publicly said, I'm not talking his book, he has publicly said that of the sites that they deploy through Laravel Forge, which are numerous, 90% to 95% choose MySQL.
Starting point is 01:17:40 Okay. Yeah, I feel like Postgres is eating the world, but it's still hard to shift a default like that. And there's probably not enough differences. It is. And I think MySQL is helping out Postgres a lot here. If you follow Mark Callahan, I think you do on Twitter, every Tuesday or Wednesday or whatever, he's like, there's a new MySQL release and the regressions are this bad. And you're like, shoot, this is not going to last, is it? It's like MySQL 8 is on a steady march of regressions and somebody has got to step in. And I don't know if it's going to be Oracle. There's another company in the space that might do it, but I can't speak to that. But somebody has got to step in and do something because the
Starting point is 01:18:19 continued regressions I have actually heard in back channels that I think matter. People are like, I don't think my SQL is going to be it. I just don't think it's going to be it. And so people are starting to look at Postgres more seriously in our, you know, tiny part of the world. Yeah. Interesting. Yeah. And, and, and then at other things that I consider like PHP adjacent view, how is, how is view doing? Is view like the most popular front end thing for PHP and how's that doing generally? Yeah, it's interesting that the entire world kind of settled on React except for Laravel.
Starting point is 01:18:51 And we're like, nah, Vue is the stuff, man. So I think early on, so like Vue early to dot releases, Taylor looked at Vue and was like, this is what I would have done if I were writing a JavaScript framework. And so when he adopted it, and then Jeffrey Way, who's the instructor at Laracast.com, when they adopted it, that kind of, again, ran cover for the rest of us to be like, great, we're using Vue now. And that really, it really did. I mean, this as a compliment and not
Starting point is 01:19:23 a slight, it's like a back end developers front a slight. It's like a backend developer's frontend framework. It's like Vue 2 just made perfect sense to me as a backend developer. And I was like, I adore this. And you can still get that with Vue 3 as long as you don't opt into like all the TypeScript stuff. You can still kind of get the same vibe. But yeah, they, they kind of like settled early on, on view as view is our thing. And all the stuff they built is view since then. Um, you know, Phoenix live view came along, uh, rails has hot wire or like their whole turbo. There's a whole mess. I don't actually know all the names of their stuff that like that paradigm came along and we have our own implementation of that. Um, and that's Laravel Livewire done by Caleb Porzio,
Starting point is 01:20:05 who also wrote Alpine JS. And so he's got a few frameworks there. But I would say the majority between Vue and Livewire, that covers the majority of Laravel applications. I will say some people have started to switch more to React with just the giant proliferation of libraries that are available over there. Like ShadCN is like, boy, it would be nice to use Shad, wouldn't it? And I've actually used ShadCN-view. Somebody ported it to Vue and it's pretty good. But yeah, React still has the upper hand
Starting point is 01:20:38 on ecosystem, in my opinion. Well, thank you. I appreciate you educating me on PHP here. And just generally, thanks for coming on. It's been great. Yeah, fan for a while. So good to have you on the show. Yeah, same, same. I've been admiring your education and education business journey for a long time. So thanks for having me on. Yeah, for sure. Anything you want to pitch as we head out? I spend more time than i should on twitter which i refuse to call x so you can find me at twitter.com slash aaron d as in daniel francis uh
Starting point is 01:21:11 yeah that's about it aaronfrancis.com i guess and if you want to give me money if you're a sophomore at texas a&m accounting 220 acc t229.com i don't know how many listeners of yours are in texas a&m circles so or screencasting.com or high performance sequel light.com. I don't know how many listeners of yours are. We're really big in Texas A&M circles. Or screencasting.com or highperformancesequalight.com. But honestly, it's been a joy to be here. And y'all just find me on Twitter and let's hang out there. Cool. And Francis, thanks for coming.
Starting point is 01:21:35 Yep.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.