An interview with Taylor Otwell, creator of Laravel, about what he did before Laravel and what got him started.
- Views by Drake
- The Life of Pablo by Kanye West
- Free 6LACK by 6LACK
- 808s and heartbreak by Kanye West
- Blue Neighbourhood by Troye Sivan
- Laravel & Lawns
Transcript (sponsored by Laravel News):
Matt Stauffer: Welcome to the Laravel Podcast, episode 55, in which I talk to Laravel creator Taylor Otwell. We learn about his back story, where he came from, and what helped him—and made him—start Laravel in the first place. Stay tuned.
Taylor, it's great to have you on season three of the Laravel podcast. Obviously you've been around since the very beginning, but we're doing a little switch up here, where I'm going to start doing interviews. So, I'm super excited to have you as the first person whose brain I get to pick here. So, I guess we can start with ... Say hi to the people.
Taylor Otwell: Hey people. Hey party people.
Matt Stauffer: Ha. Party people. What we're going to do here for today, and I told you this beforehand, but I feel like a lot of people have talked to you about Laravel, about development, about the latest version. Every time a new version comes out, 5.5 just came out, people want to talk about that. And maybe we'll cover that a little bit, but what I feel like we haven't talked about quite as much is, the man behind the scenes, kind of thing. I think there's a lot about you that people don't know, so I first started with the questions ... I've known you for years now. I feel like I know you really well and there's still certain things I don't know about your past, but then I also asked a few folks, "What are some things you really want to know about Taylor and how he works?" So, we're just going to off-the-cuff, just throw some of those questions at you and see where it goes. Sound good?
Taylor Otwell: Sounds good.
Matt Stauffer: Awesome. So, first of all, back to the early days, when did you first have a computer in your home? Taylor Otwell: I think I was about ten or eleven, I had a computer. 66-megahertz computer that our neighbor actually, I think had, had it built of us, because our neighbor was a computer programmer, across the street. And this was back in the early days of Windows.
Matt Stauffer: Mm-hmm (affirmative).
Taylor Otwell: I guess it was like Windows 3.1 or something like that.
Matt Stauffer: Yeah.
Taylor Otwell: He was an early Windows programmer. And my parents had, I think asked him to help them get a computer for us. And it had a little megahertz readout on the front of the screen ... or on the front of the tower I guess. And was like Windows 95.
Matt Stauffer: I'm always interested to hear from people what role, kind of early access and interest in computers has for them. So you having that neighbor, was it your neighbor that sparked your interest or was it having that computer? What was it that really sparked your interest in computers when you first got into them?
Taylor Otwell: You know, it's hard to say, I don't think it was necessarily the neighbor that sparked the interest. I'm not sure I even realized that my neighbor was a programmer until later. I think I was just always interested in sci-fi type stuff and geeky stuff. Of course, I always liked Star Wars. I liked The Jetsons cartoon when I was a kid and all the cool tech stuff they had, so I guess I was just always drawn to futuristic tech stuff, so it was natural to be into computers. My first dabbling in programming was just playing HTML, where I would make little websites about the games I liked, like Pokemon or whatever other games I was playing at the time. Just little tips and strategy site. I remember one of the first ones I ever made actually, which was on CompuServe. And our neighbor, that same neighbor helped me and his son put it on CompuServe, was a website about Civilization 2, and sort of our strategies for that game.
Matt Stauffer: Yes. What's the oldest website that you still have access to? Do you know?
Taylor Otwell: I don't have anything from my childhood unfortunately. I wish I did. I wish I had thought to take screenshots of them and stuff. But a lot of them ... Several of them were on GeoCities and other free sites like that.
Matt Stauffer: I remember my GeoCities sites. The only thing that I remember is the first one that I ever built, I hosted on GeoCities and it had a single image in it because image tags were pretty new at that point. So it was basically like text about me and a giant picture with a page scroll on the corner of the picture because the page scroll was the hottest Photoshop effect or whatever.
Taylor Otwell: Yeah. I always thought the counters were really cool too. That you could put on your stuff.
Matt Stauffer: Oh, my God, yeah. I was listening to somebody's podcast recently, I don't know who it was and the guy who had originally created link exchange was on there. Did you ever do those?
Taylor Otwell: Yeah. I remember those. Those were big especially in the Pokemon website world.
Matt Stauffer: Right? Yeah. We were all just waiting for one of those big sites to get a link over to us because of how the link exchange rule played. So it sounds like HTML is where you go started, do you ever do any, I don't know what the right term is like coding, coding, like a basic or anything like that early on, or was it not till later.
Taylor Otwell: Yeah, I wrote few basic things. I also got really into TI-83 calculator programs where I would write little strategy games. Back then, at least in like middle school and high school the popular thing was like that drug wars game.
Matt Stauffer: I was just going to say drug wars, that was it.
Taylor Otwell: I would write games like that, either with drugs or with other lemonade stand type games. And I learned how to do that basically like sitting in ninth grade English, I just kind of taught myself how to program the calculator. Those were really the first real programs I wrote, I feel like.
Matt Stauffer: When was your first exposure to the Internet that you remember? Taylor Otwell: We had internet pretty early after I got my first computer. We had dial up Internet. Just like at 14 4 modem. That was my first exposure to the internet. I don't even remember what sites were really a thing back then. I remember mainly looking at video game sites and just like Yahoo, and stuff like that.
Matt Stauffer: When you were thinking, then, about coding ... I think a lot of us we were just kind of figuring it out as we went. Did you think, "Man, this is what I want to do forever," or was it just a fun thing and you were still ... did you have a different plan for your life at that point?
Taylor Otwell: I actually did not plan to do coding, even when I entered college, I was doing my degree in computer networking and stuff because I thought programming would be too mathematical and sort of boring.
Matt Stauffer: Mm-hmm (affirmative).
Taylor Otwell: But I didn't really have a good understanding of what real programming was like, on a professional level. I'm not sure if schools back then, even in college ... I'm not sure I really got a good picture of what actual, on-the-job programming is like. I always imagined it to be so theoretical and really hard, like calculus all the time and stuff like that. But it really, at least for the kind of programming we do on the web, it doesn't tend to be that way.
I went through all of college not planning to even be a programmer.
Matt Stauffer: Did you do well ... I hope you don't mind me asking ... did you do well in math in high school, did you take calculus and everything?
Taylor Otwell: Yeah, I was always like a B student in math.
Matt Stauffer: Okay.
Taylor Otwell: I was just okay.
Matt Stauffer: Right.
Taylor Otwell: I wasn't exceptional.
Matt Stauffer: Not enough that the idea of programming being very "mathy" made you excited about it.
Taylor Otwell: Yeah, exactly.
Matt Stauffer: Okay. Did you ... like a different tact ... did you always consider yourself someone who's gonna do entrepreneurial stuff? At what point did you start thinking of yourself as, "I'm someone who's going to start a business"?
Taylor Otwell: Only a few years after I'd gotten out of college and had a taste of the fact that anyone could take PHP and build an entire web application, which I didn't really realize, I guess, at the time that that was pretty possible for someone to do. Once I realized that, my brain just started churning with different ideas, and even if it wasn't something I could do full-time, but just something small to supplement my income or whatever. I was probably two or three years out of college before I really started thinking that way, though.
Matt Stauffer: What was your first exposure to PHP that led you to having that experience?
Taylor Otwell: My very first exposure was in college itself. We had a class project, it was a group project with two other people, and we had to build an inventory tracking system for a local charity. This was our final senior thing. We were all assigned real-world projects in the community, and so we happened to get this inventory tracking thing. One of the guys in the group was familiar with PHP, apparently, and said, "We can use PHP for this, because it's pretty easy," and I didn't really know any better, so I was like, "Sure, sounds good." That's when I really got my first exposure to PHP, even though I, on that project, mainly did talking with the customer, and finding out how they needed it to work, and stuff like that.
Later, a couple of years down the road, when I started having ideas for side projects and stuff, I had remembered that he had chosen PHP back a couple of years ago in that class project. It was supposed to be easy or whatever, and I knew that we were able to lush the projects, so it wasn't too hard, apparently.
Matt Stauffer: Were you ...
Taylor Otwell: Yeah, so that's when I revisited PHP, because I hadn't actually used it very much in college. My partner had chosen it as our programming language for that project.
Matt Stauffer: In college, when he chose that, were you doing .NET at that point, or did you get into it out of college?
Taylor Otwell: No, I only did .NET once I got hired at my first actual programming job. The only programming courses I took in college were two semesters of C++, and that was it, actually I had those two semesters of programming, again, because I was in a networking degree, so I didn't have a lot of programming classes, like a pure computer science major might have.
Matt Stauffer: Right. I think I remember you told me that the .NET thing was an intentional, learning-the-job-type situation?
Taylor Otwell: Yeah.
Matt Stauffer: What was that experience like?
Taylor Otwell: Yeah, so, the place that hired me right out of college, they came to my university, which was Arkansas Tech. They were just interviewing students, and since they were there, I just decided to do an interview, even though I hadn't planned on being a programmer. I did the interview, and got the job, and the immediately put you in this six-month training program, where basically, for the first six months of the job, you spend most of your time in class, especially for the first three months, and then for the remaining three months, it's like 50-50 in class, and doing little projects and stuff.
They actually taught me basically all of classic ASP, COBOL, JCL, which are two old things, and some beginnings of .NET, but not a ton of it. I did a lot of COBOL and classic ASP, and then eventually got put on a .NET project at work. I just picked that up from the existing code that was already written on the project, because I wasn't writing it from scratch at first. I just taught myself .NET as I got in there, because I already had been programming for a couple of years, so picking up another language was not too difficult, since they actually wrote in VB.NET, and all of their classic ASP was in VB, so ...
Matt Stauffer: Right. The syntax was really similar.
Taylor Otwell: Wasn't too bad.
Matt Stauffer: That actually ... I wanted to ask about .NET and VC, but stepping back for a second, when you guys were writing PHP in school, was this classic PHP, was this ... I'm assuming it was 5-3, based on what I've talked to you about before, right? Was there any framework or anything?
Taylor Otwell: No, there was no framework on that project that I remember. It was just classic ... from what I remember, because I actually had to put it all in a thumb drive and install it at this charity, it was just a bunch of random PHP files. There was no real structure to it.
Matt Stauffer: Index.php, about.php ...
Taylor Otwell: All the ... I remember looking at the HTML and all the PHP being mixed in.
Matt Stauffer: Yeah. You got your SQL queries up top, and then the end bracket, and then, all of a sudden, your HTML.
Taylor Otwell: Yeah. But then, when I came back to PHP later, it was on PHP 5.3. But again, I started with plain PHP for a few weeks, and then quickly realized that I needed some structure, and that's when I used CodeIgniter for a little bit.
Matt Stauffer: Okay. Now, when you were doing .NET, was it .MVC at that point, or was it some predecessor?
Taylor Otwell: I've done both. I've done .NET webforms, which were a predecessor to .MVC, and later, I did .MVC, the early versions.
Matt Stauffer: I have experience with webforms, and I've never got my brain around the way it works, because if I remember right, it's basically ... rather than a route or a controller, or anything, it's really basically a form that handles its own validation, that handles its own everything. Everything is centered around this form, and then that form, and then that form. It's just a very different mental model, in my ... I know that's not a great description, but am I right in remembering that that's the difference between that versus .MVC?
Taylor Otwell: Yeah. I think what they did, is they took WinForms, which is what we used to write desktop apps. On WinForms, how it works, if you want to do some action on a button-click, when they click on a button on your desktop app, you're literally in, the designer can click the button, and it takes you to the spot in the code that's like a click-event handler, and you write all of your code. I think on webforms, they tried to have ... basically, their thought process was, "Wouldn't it be cool if we could make the same model for the web, so that all these WinForms programmers can write these dynamic web applications, so you have the same thing, where you have button-click handlers in your .NET code that correspond to things on your front end."
Somehow, they routed that using ... I don't know if it was query strings, or what they were actually passing in the form, but somehow, they were able to route that to the right piece of code when you clicked a button on your web front end. It felt like building a WinForms app, and was really different than any other web technology I've ever used since.
Matt Stauffer: Yeah. The reason I was asking is, my brother has done .MVC for ages, and he helped me understand .MVC when I first got into CodeIgniter, but I remember having written webforms before that, and it's such a complete ... it felt a little bit like writing a classic ASP, especially if you're using VB, but then it felt a little bit like some kind of super-powered jQuery, basically. It's not like a mentality that I'm used to seeing anywhere else. Before you got back into CodeIgniter, you had had some experience with .MVC, then.
Taylor Otwell: Yeah. I had .MVC, and that's why I even knew the frameworks as a concept to look for, basically.
Matt Stauffer: So, you got a job out of school. It almost seems like it was a sponsored boot camp, basically, for the first six months. Is that a good way to think about it? There are getting used to real-world stuff, but you're actually sitting in classes sponsored by the company?
Taylor Otwell: Yeah, a little bit. It was all on site, and all the instructors were full-time employees that actually were in other departments, actually. They would just pull them into these training classes when they needed them. But it was a really unique place. They only hired new graduates, and everyone goes through the same training program. It's like they just want people fresh, and wanted to sort of train them in their way of doing things, rather than bring in existing programmers that are already, I guess, ingrained with other ways.
Matt Stauffer: Right. That you have to un-train, basically.
Taylor Otwell: Yeah, it was one of the of the ... I guess, the only places I've worked that only hired new graduates.
Matt Stauffer: Interesting. So, you're doing that, you're working at .MVC, and you have this idea that you want to do some side projects, and you mention that seeing your partner in that class project using PHP gave you a little of the idea that you could do something on your own. Can you tell me a little bit more about what the mentality was, and what the thought process was, that led for you to have a good, paying job doing .MVC, that you could do that for quite a while, and saying, "You know what? I want to do something on the side." What was the itch there?
Taylor Otwell: I think part of it was having freedom to move wherever I wanted to if it did take off. Then, I could work from home, and we could move back closer to family, because at the time, I was living three or four hours away from the main bulk of my family, which lives in one town. It was just gonna be more freedom is what I remember to live wherever we wanted to.
Matt Stauffer: Yeah. You wanted that freedom, you wanted to be able to be self-employed. If it's anything like it was for me, and then you can tell me if I'm wrong, that there wasn't quite as significant of a culture around being an entrepreneur. It feels like there is, today ... there wasn't all these conferences about being a sole entrepreneur. I guess hearing Ian and Andre talk about it, they're definitely ... what's that form they're always talking about? Business and Software?
Taylor Otwell: Mm-hmm (affirmative).
Matt Stauffer: But I don't know about you ... have you ever heard of any of those folks who are really big about doing your little business, or is it just something where you said, "Well, I want to do this, and I'll figure it out as I go."
Taylor Otwell: No, I didn't know anyone else doing anything like that. I didn't even go to any websites that talked about that or anything.
Matt Stauffer: Yeah, same here. I'm interested ... let's see if anything will come up during this chat ... whether the lack of those resources help to hurt us in various ways. You knew PHP was an option. You knew that you could ship with PHP. You at least had the ability to compare it against some other web-based programming things, and it seemed like PHP was more viable for getting something launched, working solo, and so you dug into PHP, you did a little bit of old-school procedural PHP, quickly realized you wanted to do CodeIgniter. What was the first project, do you remember, that you built with CodeIgniter?
Taylor Otwell: One of the first projects I built was this really niche thing. I had known someone that owned a book bindery, they rebind old books, and I was going to build a little system for them to take orders and keep track of orders of books they were rebinding. It was a very specific product for this company. I think they were based in Tulsa or something at the time, pretty close to where I was living, really.
Matt Stauffer: You built an app custom for them, you built it in CodeIgniter ... what was hosting like? What was the front end like? Do you remember any of the other technical details of what that was like?
Taylor Otwell: I think I used DreamHost at the time, so it was just a shared host, because I didn't really know how to configure my own VPS until years later, basically. Yeah, I know I was on DreamHost, and would FTP the files using FileZilla, because I was on Windows at the time, and actually, I didn't even have a Mac until I started working for UserScape after Laravel had been built. All of Laravel, the first version, was built on a cheap Windows laptop. I would just FTP all the files up. When I first started, I was using Notepad++.
Matt Stauffer: Yeah, man, I love Notepad++. A lot of good work done with Notepad++ and FileZilla. You were doing that, and at some point, you felt like ... well, actually, I was gonna say, at some point, you felt like CodeIgniter wasn't giving you what you wanted, but actually, the reason you and I first interacted was because I was a CodeIgniter developer who had started learning about IOC and DI, and stuff like that, and I said, "What I wanted was an IOC container for CodeIgniter," and this guy Taylor, this young guy, had written an IOC container for CodeIgniter, and I couldn't find the code anywhere."
I ended up DMing you or something, and you ended up saying, "You know what I just pulled ... I got rid of it, I pulled it in Laravel, you should check out Laravel." That was basically how I first my Laravel. I followed Jeffrey at Nettuts for a while, and he'd been talking about Laravel for a bit, so that was what finally switched me over. It sounds like before you went off on your own to do your own thing, you were trying to work in the CodeIgniter ecosystem to improve it. What was that like?
Taylor Otwell: Yeah, so at first, I had no intentions of splitting off and writing a framework. But you're right, one of the first projects I wrote was CI injector, CInject or something like that. I was actually pretty proud of that. It was actually the first reflection-based IOC container in PHP at all that I'm aware of. There was one other IOC container that was also written in 2010, a few months later. That was one of the main pieces of .NET/.MVC that I really like was the auto-resolving container. Laravel's container still works, basically, like that first CodeIgniter container did. The other thing I was really interested in was the better ORM for CodeIgniter, and I wanted to get those two things in ... oh, there was a third thing.
I wanted better templating, like Blade, where you have an @extends at the top, and then you define these sections that override the parent template section, stuff like that. Template inheritance. I remember the final straw, that I couldn't really continue with CodeIgniter anymore, is I wanted auto-resolving dependency injection in my CodeIgniter controllers. To make that work, you really had to start editing the core files in a way that was not in a nice, packageable, shippable way, where other people could do it. Then I hit this crossroads, where I considered just forking CodeIgniter, and making this "special edition" of just sort of souped-up CodeIgniter on steroids, and giving it another name. Or just starting fresh. I think I just started fresh to just experiment at first, and then got so far along, I just kept going. I know I rewrote the first version of Laravel, probably a solid five or six times until I was happy with it.
Matt Stauffer: What was the first thing you wrote in Laravel?
Taylor Otwell: I remember writing the routing engine first. Probably the routing and the views. I think ... I don't remember exactly what I was doing for the database at the time. There was an active record of implementation called PHP ActiveRecord, that even at that time had become abandonware. That was back in 2010. Then, there was another couple of libraries. One was called Idiorm ... it was I-D-I-O-R-M, and then it had a corresponding ORM called "Paris". I think the Idiorm thing was the query builder, Paris was the ORM. Actually, Eloquent was very inspired by Paris, because it had the sort of model where a relationship is just a function of the model that returns a query builder. Eloquent, of course, still works like that to this day, so Paris deserves quite a bit of credit for coming up with that model. I don't think the person who wrote Paris even programs PHP anymore, last time I looked, but I'm not sure they're aware that Eloquent was so inspired by that.
Matt Stauffer: That's really cool. I remember the moment where I realized I had to leave CodeIgniter was when I recognized that some of its inherent restrictions were forcing me into writing worse code. For example, some of the ugliest stuff in my old CodeIgniter apps were because I had ... database models, they called it, which was really like it was a model and repository and three other things, but you cram it all into one, and so you have methods that are everything you could just possibly imagine that would touch the database in any way, would all get crammed into a single class. If you're lucky, you've figured out enough to at least differentiate those classes by table.
But that wasn't even always the case. Like you said, without view inheritance, you end up loading views and data in every controller and passing them around to each other, and you've got a single variable that you're passing through your controller method that tracks the data that's eventually going to get past the view. There's just a lot of things, because of the constraints of CodeIgniter, you just wrote worse code. When you started doing Laravel, you wanted to be able to do dependency injection and all these things. How much of your mindset was, "I'm gonna write things that are gonna make people write better code," and how much of it was, "I want to do these things, and I can't do these things." Was it a purity concept? Was it an ease-of-use concept, or were those things all tied together?
Taylor Otwell: At first, I feel like it was a lot of ease-of-use, but also, there was some purity mixed in as well, because of the whole dependency injection thing, which I considered a more pure approach to doing some things back then, and of course still is a more pure approach a lot of times now. I feel like ... but also, ease of use was huge, too, because I wanted it to be very Apple-esque, where it was just really nice to use out of the box, and you didn't have to do all these hacks and customizations to get it really nice that I had to do with CodeIgniter. I wanted it to be like when you unwrap Laravel, it was this nice package that you could use, it was all cohesive and coherent.
Matt Stauffer: Yeah. I want to talk a little bit further on that for a little bit. One of the things that you've talked about since the early days is that you recognize that the documentation in the community just make a really big impact on people's experience, working with the framework of a library. You've reference the fact that CodeIgniter was so successful, in large part because it had great documentation. For starters, what do you think it is that prepared you to be in a place where you could recognize that? Is it because you hadn't trained to be a programmer, or are there other experiences in your life that made you more sensitive to those types of, or do you even have a sense for what that is?
Taylor Otwell: I don't know. I feel like it was just a low tolerance for pain in terms of programming, because programming wasn't a hobby for me, even really back then. I didn't come home and program, I did other stuff. To have a painful experience programming wasn't that great for me, because it wasn't something I was particularly obsessed about, and so if I was gonna do it at all, I wanted it to be really enjoyable, and easy to do, and fun. I just had a really low threshold for any pain points in the tools I was using, I think.
Matt Stauffer: Yeah. It's like we always joke about the fact that a lazy programmer is a good programmer because they're gonna do the one that doesn't waste time or whatever else it ends up being, so I hear that.
Taylor Otwell: Yeah, and even when I was at my .NET job, I had already discovered that I really enjoyed writing tools that helped programmers be more productive, because I remember one of the things I did there in my free time, when I had a few extra minutes, was I wrote this little program called WeDev in .NET that was like ... the closest thing I can think of, it would be a lot worse version of Slack, but it had a file dropbox where we could drop files to each other, and it had a little status indicator of what you were doing then, so it was like our own little instant messenger with a file share thing. But I really loved that project, so that was my first taste of, "Hey, I really enjoyed making developers' lives easier." I think that was part of what drew me into Laravel, was it became this fun project to see how productive I could make a programming environment.
Matt Stauffer: Yeah, I like that. One of the things that really struck me when I first started going to Laravel conferences was how many people told stories about the ways that Laravel had changed their lives. That was something I wasn't used to. I think people ... there's some jokes around that the terms of "artisan" and some of the other terms we use in the Laravel world, but it's reflective of a really different approach for what the priorities and values are coming from Laravel.
What's the goal? That's the question I was asking about purity versus ease of use, it seems like developer happiness is really a very significant ... like productivity and happiness are really significant goals that you have there. When you were building Laravel, you started out, you wanted to scratch your own itch. You wanted to make something that was good for you and it made you be able to do things a certain way, but you were relatively public about it. You started showing people. At what point did you start to realize this is something people are responding to? This is something that might really be a big player in the post-CodeIgniter framework world.
Taylor Otwell: I think when I was pretty far along and had, basically, a finished product, only then did I really decide that I would go all the way and document it. I knew that the documentation would be huge, because I felt like that was why CodeIgniter was even popular to begin with, because there was Kohana, which was another, CodeIgniteresque-type framework that had some advantages, and had some better features, but the documentation was so much worse that it just never really had the same steam that CodeIgniter had.
I had picked up on that pretty early that if I wanted Laravel to be popular, I would have to write really good documentation. I tried to write, basically, CodeIgniter-level documentation from the very first 1.0 release, because I've seen a lot of people put stuff out there, and then looks like, "Documentation coming soon," or "Documentation in progress," and it's never gonna get the same reception as if it's a finished product. I thought I had a pretty productive little thing, and decided, "Hey, I'll go ahead and document it and put it out there, and see what the response is." My mentality at the time was, "Even if nobody else ever uses this, then that's fine with me, because I at least have something enjoyable to use when I write PHP."
Matt Stauffer: Are there any people or moments or inflection points or whatever where you point to a thing and said, "If that thing hadn't happened, or that moment hadn't happened, it would have been a completely different story"?
Taylor Otwell: Yeah, so there's a couple of moments. A big moment was, there was a point where a few PHP programmers were teaming up to make this PHP framework called "Fuel", and it was a few CodeIgniter people like Phil Sturgeon, and Dan Horrigan, and one other guy, I think, one or two other guys. I think they were trying to build the successor to CodeIgniter that was moving faster and had features that people wanted, and stuff like that. They had some pretty decent marketing pages for it, and stuff like that. I remember I had some ideas ... I was actually excited about Fuel, and had some ideas that I wanted to put into Fuel. I can't remember what they exactly were at the time.
I think one of them might have been some type of route filter-type thing that ended up being in Laravel, or something like that. I had messaged one of them and said, "Hey, I'd really like to help out on Fuel. This is the feature I want to add, or whatever." They weren't super-interested in the feature, which is fine. It's not a knock on them, they just weren't interested in it. I was like, "Okay, I guess I'll keep working on Laravel," but if they would have bit on that, and been interested in me helping with Fuel a little bit and some of these things, then of course, I think things could have been really different, because I would have jumped into Fuel and started adding stuff there, and probably would have just started using it, and become invested in it.
That's one moment. Probably the biggest moment I can think of where things could have taken a really different direction because that feature wasn't really a fit for them, that I just kept working on Laravel.
Matt Stauffer: Yeah. Well, I, for one, am grateful to whoever it was that rejected that feature. I think ... it's not to say that something else wouldn't have come along, but I think your life would have looked a little bit different after that point, so I think it's a good time to ask a couple questions about what's your life like today. When you were working full-time ... I assume it's at least a 40-hour work week .NET job, and you were writing Laravel on the side ... do you have a sense for what your hours a week were looking like between day job and Laravel work?
Taylor Otwell: Yeah. I seemed to have a lot of energy back then. I worked eight to five, and then I came home. James, our first child, was pretty young at the time, just basically a baby, when I'd first started working on it. I would hang out with the family from five to nine. We were just in a little two-bedroom apartment, it was 900 square feet. We were all in there together, pretty close. Abigail would go to bed around nine or 9:30, and I would actually stay up until one or 1:30, a lot of the time. Going to bed at midnight, for me, was like, "I'm going to feel great tomorrow, I went to bed at midnight."
I would stay up until midnight, one, sometimes two, the majority of nights, really, and work on Laravel. I was putting in, let's see, probably three to four hours of Laravel work every night, and somehow felt pretty good, actually. I can't really seem to do that anymore. I don't know what changed, but ...
Matt Stauffer: Yeah. When my wife was pregnant, she would go to bed at 9:00 every night. I was not happy with my day job situation, and that's when I wrote my first softwares and service. I was working 90, 100-hour work weeks between my normal job and that. It's the same thing. There's no way I could do that right now. But I'm glad I did it then, back when I had that energy.
Taylor Otwell: Even when I wrote Forge, I was still working at UserScape, and would stay up until midnight or one routinely, because that took six months for me to build just in my free time.
Matt Stauffer: Yeah. At some point, you had Laravel to a point ... I don't want to go too deep in this story, because it's been told before, so I want to cover things I haven't, but you got to a point where Laravel was good enough that it attracted Ian's attention. He was looking to do a reboot of UserScape, which was handled PHP from scratch, and he pick Laravel, and he hired you, and said, "Hey, you build this thing out, and you can make Laravel better, so it can support our needs." You would add a lot of features that UserScape needed, and that helped Laravel grow up in a lot of ways. You told that story. I think the interesting aspect that hasn't been covered before, is what the shift from being UserScape plus Laravel to solo Laravel look like. What were some of the things that you were thinking about when you were starting to make that decision ... when you were starting to consider going out on your own, what was scary, what was exciting, what considerations did you have before you decided to go solo?
Taylor Otwell: Some of the scary parts were just not knowing how much longevity Laravel, as the ecosystem, would have, because ... Forge was out, and was doing well, and I was actually making more on Forge than I was making at UserScape pretty quickly. But Laravel was still relatively new. It was only three years old when Forge came out, so there was questions. What if everyone stops using Laravel? What if a better framework comes out in six months and everyone's like, "Screw Laravel, screw Forge, I'm using whatever." That was one of the main fears. The exciting part was that I would just have so much time to work on Laravel. At the time, it was just unfathomable if you know how much time that would be, because 40 hours a week on Laravel. If I'm working just two or three hours of my free time at night, it's two weeks worth of free time. I could try stuff faster, I could experiment faster. That was the most exciting part for me.
Matt Stauffer: Yeah, that's cool. I remember talking to you during that time where, to me, it seemed obvious because I have a similar story where I did DreamHost, but I was running a softwares and service from 2010, 2011. I needed a VPS, and I tried managing my own Linode VPSes, and it was just awful. I wasn't trained in that stuff. I ended up paying for these super-constrained hosts that didn't let you do what CodeIgniter and Laravel needed, because nothing like Forge was out there, and I just couldn't afford from my SaaS to pay a DevOps person to handle it. When Forge came along ... I don't want to be bombastic, but it really revolutionized individual developers' and small teams' ability to run fully-robust VPSes without having full-time DevOps people. For me, as someone from the outside, first of all, I said, "Please let us pay you more money," but second of all, I knew that was really gonna sustain. But I know that there were times where it was a little bit scary.
Within your realm of comfort ... I don't want you to have to say your deepest, darkest secrets, but what does make you nervous today? Are you worried about some other framework? Are you worried about PHP no longer being viable? Are you just feeling pretty good? What does ... in the life that you have, where Laravel is very popular, very stable, what's on your horizon?
Taylor Otwell: Nothing makes me too nervous anymore, because even if Laravel started dying today, and died a slow death over the next few years, I would have secured my future at this point, in terms of "I'm gonna be able to retire with my family, the kids' college is paid for, and I don't have to worry about those things anymore." I would just be like, "Okay, great, thanks for the memories," and I would apply to work at Tighten, I guess.
Matt Stauffer: I know, I love it, yes, I'm sold.
Taylor Otwell: I would have to just go back to being a regular guy programmer, working on projects and stuff, but I don't know. It doesn't make me too nervous, because I always try to have this mentality that Laravel, obviously, will not be a thing anymore, that either because PHP's not a thing anymore or there's some other framework that's better or whatever. I don't know how long that will be, but I don't really get too nervous about it, because I feel happy with what I created, the memories I made, what I did for my family for decades to come, basically. If it all ended tomorrow, I would be fine. It would be a fun ride.
Matt Stauffer: I love it, and that's really good. I think that makes me so happy I want to touch two other things, and then we might just cut it short. The two other things are in that same direction, about what makes you happy and what gives you peace outside of programming. I think the first question is, do you have any daily practices or any mantras, or any things that you do to center yourself, and just help you handle life when it's stressful or not? Just things to keep you steady, I guess.
Taylor Otwell: Yeah, I try to meditate some. I can't say I do it every day, but every other day at least, let's say, I try to meditate. For me, that's a spiritual thing, but for other people, it might not be. It might be more just a "focus your thoughts" kind of thing. Also, just try to keep life and perspective during that meditation, I guess. Try to think some of those things ... same thoughts where I don't want to hold too tightly on the success of Laravel, or being a popular programmer is core to my identity, because I think that's setting yourself up for a lot of pain in the future, because all things pass away eventually. It's just a time to focus my thoughts.
Also, I just think about my family, stuff like that. More important stuff than programming. But I find it just de-stresses me a bit, helps me focus on what's important, and it's refreshing. But now I try to make time to do it. I feel like as soon as we get up in the morning, now with two kids, it's sort of rushing around everywhere getting ready for school and stuff like that. But yeah, that's what I do.
Matt Stauffer: Yeah. You got to be intentional about those things. You've talked about productivity systems and how much you love Wunderlist and stuff. How structured do you keep your life? Do you have, "This is the hour when I do that"? I remember you've talked about starting with pull requests and issues. Do you still have some of those same structures, or is it different with Mohamed around?
Taylor Otwell: Yeah, I still have some structures. It's not structured to the point that every hour of the day is structured. I'm more focused in day increments moreso than hour increments in Todoist, which is what I moved to after Wunderlist, which I'm really enjoying, actually. I have this bullet journal approach, where I only really sit in the "Today" column of Todoist, and I have, usually, five or six things that I want to do that day, and I have them in Todoist, and then I have projects that I treat just as grab-bags, the things I want to do at some point.
Some of my projects in Todoist are actual projects that I'm working on, like Laravel Horizon was, where I have all the things I want to do. But some of them are just movies I want to watch, or music I want to listen to, or something like that. I do keep my day fairly structured, where I start my day with port request and emails, but then after that, it's not so structured. I just work through my to-do list for that day as I ... just whatever I feel like doing next. But it's still structured at a daily level.
Matt Stauffer: Right. In regards to the music that you're gonna listen to ... I'm not gonna ask you to tell me the best rap album of all time, because we could do a whole podcast on that, but do you have one that, even if it's not your favorite today, has been the longest-running favorite, or the most significant impact, just the one that you played out like no other album or something.
Taylor Otwell: I feel like I go in phases, and it's funny because each Laravel release, I feel like, has had an album that I feel like I really played a lot for that release. I know on one of the releases, I played the Views album that Drake put out quite a bit. One of the releases was "The Life of Pablo" from Kanye West. But I think one of the albums recently that I really played a lot was ... I think you pronounce his name "Black" even though it's spelled with a six on the front, so "6lack" is what it looks like. He's a rapper/singer hybrid, I guess you could say, almost more singer than rapper, but I played that album a lot when it first came out, and still play it quite a bit.
Matt Stauffer: All right. Did you like 808s and Heartbreak?
Taylor Otwell: Yeah, I really like that album.
Matt Stauffer: I played that out like no album for quite a while.
Taylor Otwell: Yeah, looking through my music ... okay, another album I played a lot was "Blue Neighbourhood", by Troye Sivan, who's not a rapper at all, he's a singer. But that's another album I just really wore out over the past couple of years
Matt Stauffer: I've literally never heard of it.
Taylor Otwell: Okay, you should check that out.
Matt Stauffer: I definitely will. That's awesome. I'll put all of this in the show notes. Okay, let's see, so I'm sure rap is one of these, but what outside program inspires you? Whether it's inspiring you to do good things with programming, because you hear something that gives you a thing, or just inspires you in terms of your life and your family and your entrepreneurial-ness or whatever else. What inspires you?
Taylor Otwell: Any time I travel, I feel like I get inspired. Any time I see some cool part of the world, or some really beautiful piece of scenery while I'm traveling or something, somehow that just inspires me to create cool stuff in general. For me, that usually translates into trying to think of cool Laravel ideas, so travel is a big inspiration for me. Let's see, what else ... you know music is a big inspiration. I don't know. Those are the two things that jump out at me.
Matt Stauffer: That's good. I didn't prepare you for this one, so sorry, but my friend DeRay and his podcast always asks every guest for one piece of advice that they've received that's really influenced them across their life ... is there any one piece of advice that really stands out, that has big impact on you, that you've gotten from somebody else?
Taylor Otwell: One thing that comes to mind that wasn't really a piece of advice, but just more like learning, is probably from my grandfather, who just did jobs really well. Anything he worked on, he just made sure it was done really right, in a way he could be proud of. I don't know, I guess it goes back to an old-fashioned work ethic that he must have been raised with, but I think that was really inspiring, and I actually blogged about this once, but when I worked with him, actually when I was in college, we took care of all the lawns at our local church. It was just a lot, because they had soccer fields, and just big lawns and stuff, and even with that, he put a lot of attention to detail into that. It inspired a lot of my own attention to detail and going forward. It wasn't a spoken piece of advice, it was more of just a thing you had to observe, but was pretty impactful.
Matt Stauffer: I remember that post. I'll link it. Well, I could ask you questions for another hour, but I'm gonna try and keep this one to the hour range, so I think that is pretty good for my questions for today. Is there anything else, especially along this line of questions, but just in general, that you feel like you want to talk about today?
Taylor Otwell: I can't think of anything.
Matt Stauffer: Okay. Taylor, this was ridiculously fun. Part of the reason that I'm having you is that the first episode of the Laravel Podcast, Season Three, is because everybody wants to know about you and you have a lot to say, but also I just want to say, officially, from me, and from Dan, and from the rest of the crew at Tighten, and the rest of the Laravel crew, thank you for what you've done for our community, because when I talk about Tighten, I say, "You know what? We're creating a company that we want to take care of people. We want to create good jobs for people and stuff like that." You're doing the same thing with Laravel. Yeah, you make money off of it, and you have the ability for yourself to create certain kinds of codes and stuff like that. But your attention to providing good things for people is evident throughout this interview, and just throughout everything about what you've done for Laravel. From all of us, thank you very much.
Taylor Otwell: All right. You're welcome.
Matt Stauffer: Awesome, man. Thank you so much for speaking with me today, and that's it for today.
Taylor Otwell: All right, see you. See you.