
The Laravel Podcast brings you Laravel and PHP development news and discussion. Season 5 consists of Matt Stauffer interviewing the creators of the most popular packages in the Laravel ecosystem.
Similar Podcasts

The Rabbit Hole: The Definitive Developer's Podcast
Welcome to The Rabbit Hole, the definitive developers podcast. If you are a software developer or technology leader looking to stay on top of the latest news in the software development world, or just want to learn actionable tactics to improve your day-to-day job performance, this podcast is for you.

PHPUgly
The podcast your mother warned you about. Ramblings of a few overworked PHP Developers. We discuss everything, from the challenges and excitement of running our small business and development shop the DiegoDev Group, to general day to day coding projects, to anything geek related or any other tech topics.
Hosted By @shocm, @realrideout, and @johncongdon.
Become a Patron!

Developer Tea
Developer Tea exists to help driven developers connect to their ultimate purpose and excel at their work so that they can positively impact the people they influence.
With over 13 million downloads to date, Developer Tea is a short podcast hosted by Jonathan Cutrell (@jcutrell), co-founder of Spec and Director of Engineering at PBS. We hope you'll take the topics from this podcast and continue the conversation, either online or in person with your peers. Twitter: @developertea :: Email: developertea@gmail.com
Interview: Antonio Ribeiro, package author and master of StackOverflow Laravel
An interview with Antonio Ribeiro, package author and master of StackOverflow Laravel. Rio de Janeiro Laravel-News interview TDDD Stats Tracker Antonio on Twitter Antonio on StackOverflow Antonio's web site Version Google2FA Firewall Pascal Delphi "Concourse" (?) Antonio's photography Editing sponsored by Tighten Transcription sponsored by LaraJobs Matt Stauffer: [music] Welcome back to The Laravel Podcast, this is your host Matt Stauffer. Today I'm going to be talking to someone whose name I struggle with, Antonio Ribeiro. He's the master of Stack Overflow Laravel and much more. Stay tuned. [music] Welcome back to the Laravel podcast, season three. I'm your host. I wanted to say I'm your favorite host but I'm your only host so that'd be kind of cheating. Like when you only have one kid and you say "I'm your favorite kid". I'm your host. I'm one of your hosts. No, I'm the only host. See? Matt Stauffer. That's me. I'm the guy talking to you. Joining me is someone who a lot of you have probably learned from at some point in your life but you often haven't associated that you're actually learning from him. This is the master of Stack Overflow Laravel. That's what's going on here. And I think a lot of people have no recognized that this is actually a thing. We'll get into this in a bit. His name, in Portuguese, is pronounced in such a way that I'm going to totally massacre it. So I'm going to say it and then literally the first thing I'm going to ask him to do is say it the way it's actually supposed to be said. So, Antonio Heb ... Ribeiro. No see, it's totally failed. Say your name for us. Also, what I'd love for you to do is just give us a picture of who are you, what are you about, when you meet someone for the first time what do you tell him about what you do, and then where are you? And then I'll get started in asking some questions. Antonio Ribeiro: Hi Matt. My name is Antonio Ribeiro. Matt Stauffer: Howdy. That's how badly I pronounced it. Antonio Ribeiro: No, no. The second time you say it was really cool. Matt Stauffer: It was a little better? Antonio Ribeiro: I'm from Brazil, originally. I work in Brazil and I work for a company outside Brazil. I lived in Europe for four years or five years. I don't remember exactly how much time. I lived in a city everybody knows. I think everybody knows. It's Rio de Janeiro. It as difficult as my name to say. Matt Stauffer: Rio de Janeiro. [Said with intentionally strong American accent] Antonio Ribeiro: Exactly. I work for the Brazilian government. Specifically, the state legislature in Rio. So I'm a public service. I do six hour per day of public serving. Of work. And after-hours, I do a lot of work. I work for another company. Now, I'm not exactly working for them but I'm available for them. I love the program and that's why I got into Laravel so quickly and maybe had some success in Stack Overflow. So I started my programming life when I was 12, I think, in Switzerland, in a big department store working with computers that were in the store. I was amazed about computers. I got a job when I was 12, 13. Matt Stauffer: You got a job when you were 12 years old working on computers? Antonio Ribeiro: No, not working on computers. I got a job delivering groceries for a store. Matt Stauffer: Oh okay. Antonio Ribeiro: To buy a computer. Matt Stauffer: Oh nice! I was going to say. That's still impressive. Man, you're getting right into it here. You've heard this before and you know that I'm gonna ask about your whole background. But let me pause for just one second because what I want to make sure that I have is ... I want to have context for why it is that I'm talking to you. And like I said, the whole point of this version of the podcast is to get to know the people who everybody knows but maybe they don't know who they are. Also, to get to know the people that nobody knows but they might have benefited from. I think you're in the second box. So, the reason that I originally met you is because I started Laravel. I don't know if you and I started at the same time or not ... So actually before I go any further, what version of Laravel was it when you first started getting really involved? Antonio Ribeiro: 3.2. Yeah, 3.2. Matt Stauffer: Yep, so you showed up there just a little bit before I did. I remember in the early days, and especially in the middle days, every time I'd come across everything in Stack Overflow, you would always be the answer. It's just consistently over and over. And I'm looking at this and you have 59,000 reputation on Stack Overflow. If anybody doesn't know, that's a very, very, very large number of answers. Who knows how good their ideas are here of how many people he's reached but it is telling me that he's reached 3.7 million people with his answers in Stack Overflow. Antonio Ribeiro: Wow. I didn't know that. Matt Stauffer: Right! And the large number of them are in Laravel. His top tag is in Laravel and then he's got Laravel 4. He's got 1,000 posts in Laravel that he's interacted with. Or that maybe even he's created. So there's a lot. There's a lot going on here. He's in the top 0.3% in Stack Overflow and I'm only saying that, not because that makes you worthwhile or not worthwhile, but that was the reason that we originally connected. Now, since you've made a couple repositories in a couple packages for Laravel, the most recent ones that have come up have been your tracker, the Stats Tracker. Then the Test-Dashboard? Is that what it's called? I'm trying to remember what it's called. Antonio Ribeiro: Yeah. I call it TDDD now. Matt Stauffer: Oh, it's got a new name. So TDDD. Antonio Ribeiro: Yeah. TDDD. Matt Stauffer: Got it. Also, the one I've tweeted out a little bit recently is that you have Version. Which basically allows you to pull the version of your Laravel application into your app based on any number of criteria. One of which being the Git tag, which I was super interested in. But it seems like you got a lot more in those. Do you even know how many packages you have? Antonio Ribeiro: No. I'm not sure, really. I have, I think, five or six really popular packages but I have like 150 repositories in my account so I don't know. Matt Stauffer: Yeah. So you're big on Stack Overflow. You've got a lot of packages. You are also are a Twitter presence here and there. Just like a few of the other people we've talked to so far, you're not someone, at least in the US or Europe, where everybody knows you and everybody knows your name. I don't know the Brazilian Laravel community quite so well so is that different either in Brazil or Rio? Do you guys have a really strong community there that you're really invested and involved in? Or are you kind of solo with this? Antonio Ribeiro: Yeah. I'm kind of solo because it all started for me in Stack Overflow. Matt Stauffer: Got it. Antonio Ribeiro: And in English, which is not exactly a language I used to speak. So I decided to go deep in this Stack Overflow thing but it was way before I discovered I was ranking on Stack Overflow. Matt Stauffer: Yeah. Antonio Ribeiro: So, I did not really contacted people in the Brazilian Laravel community but we got in touch via IRC when Taylor was still very frequent. I don't know if they are now because I'm not very frequent now. Matt Stauffer: Not so much, no. Antonio Ribeiro: I know some people of the Laravel community, Laravel.com.br, which is the website but I just saw that they kind of let it down. Unfortunately, the last posts on the websites- Matt Stauffer: 2016. Antonio Ribeiro: 2016, yeah. One of these days, someone asked me if I was going to do a Laraconf Brazil actually. I didn't even know that it was happening so- Matt Stauffer: Right. Antonio Ribeiro: I just say, "I'm sorry." Matt Stauffer: Yeah, so you're relatively disconnected. Antonio Ribeiro: Yeah. Matt Stauffer: I want to get your whole backstory but I want everybody to have the context for what we're talking about here. Do you use Laravel in your day job? Antonio Ribeiro: Yes. Yes. Of course. Everything we do for the government, now, is done in Laravel. Matt Stauffer: Cool. Antonio Ribeiro: Mostly everything. I am a lead of a very small group of developers and we work primarily in Laravel. Laravel and VueJS. Matt Stauffer: Oh, very cool. Did you get in VueJS pretty early last summer or is it something you're jumping into more recently? Antonio Ribeiro: No, no. Pretty early Matt Stauffer: Okay. Cool. Antonio Ribeiro: Almost when Taylor started to talk about it, I got in. Matt Stauffer: Nice, very cool. It's interesting because I just googled your name so that I could throw your website into the show notes and found that you had done an interview on Laravel News. I try to read those beforehand so that I can make sure I'm not covering the same territory and I had never read that you've done that. I had no idea that happened. So, excuse me, I didn't do the research I should have done. But that's fine because I still have plenty of questions and curiosities. Okay. So, you are doing Laravel in your day job but you're also doing some stuff on the side. There's various level of folks who you're working with. You're in Stack Overflow English early. You're somewhat connected but it's been a little while with the Laravel Brazil community. One of the reasons I asked that is because my book has been translated into two or three languages and Brazilian Portuguese is one of them. I was pretty surprised by that because that takes a pretty big commitment for somebody in the community to have decided that it's a group they want to target. I was wondering if there's some huge Brazilian Laravel community that I wasn't aware of. It sounds like at least there at some point was but it, at least the one in Rio, might have gone a little quiet for a little while. Antonio Ribeiro: Yes, I think the community to large but they are not very connected. Matt Stauffer: Mm-hmm (affirmative). Antonio Ribeiro: I think they are more connected in the PHP community than in the Laravel community. Matt Stauffer: Got it. That makes sense. Okay, so before I got to your life story, I want you to give me a pitch real quick on the TDDD and then if there's any other one package that it's just really your favorite package or your favorite contribution to Laravel. I don't know if Stats Tracker or something else but first, tell me about TDDD as if I'd never heard of it before. Then, do you have any other packages that you really love and that you want to share with everybody? Antonio Ribeiro: Well, TDDD is becoming an app actually. It's an app for helping people do TDDD. Basically, you are writing tests. If you write tests before or during or after you are coding- doesn't matter. You can use it to help you test your app during development. You make a change in your code, it will run all your tests. If you do a change in one of your tests, it will run that test particularly. It's basically that. We have some other things it does. It is able to link all the lines of your failures so you can click a link and it will open your PHPStorm, or your Sublime Text, or VSCode. It doesn't matter what editor you are using. I just added code coverage to it so you can also see the code coverage there. It's basically that. You can add as many projects as you have. You can use whatever code editor you have. If you have a project which you have tests in JavaScript, in PHP, in any other thing, you can add as many suites you want to add on it so it's very flexible. I use it all the time. I think it's the package that I'm using the most these days. Matt Stauffer: Okay, very cool. Is this an app where you think that if anybody's doing TDD in Laravel, they should just be using TDDD? Or is it more for specific contexts and not for others? Antonio Ribeiro: No, everybody can use it. If you are using TDD in Laravel or PHP or you can use it in Ruby. It's very open. I think it's a good one to use because Freek has a package almost like it but it's for the command line. Matt Stauffer: Okay. Antonio Ribeiro: The difference for me is that I keep a monitor ... I have three monitors here. I keep a monitor with it and while I'm coding I'm looking at the monitor and seeing if anything is broken with the code that I'm writing. It's very handy. Matt Stauffer: That's really cool. I asked for one other package that is really big for you. I know you've been working on Version recently but I also know that Stats Tracker is one of your more popular ones. If you had one more of your packages that you think people should check out, which ones at the top of your brain? Antonio Ribeiro: I like, very much, Google 2FA but I think there are other options and people are using Authy which you can blend into Laravel very easily. I think Firewall is a package that people should look at. Matt Stauffer: Yeah, I use Firewall. Antonio Ribeiro: You use Firewall? Matt Stauffer: Yeah. I had basically written a crappy version of Firewall and then you can out with Firewall so I just switched over to using your package so ... Could you give like a high-level introduction to what Firewall is? Antonio Ribeiro: Firewall is basically something you put in front of your app to protect it. It's like a real firewall. The difference, of course, is that you cannot rely on Firewall for everything but you can rely on it for things like someone trying to exploit your app. A Firewall will be better on that but if someone tries to hit one route 50 times, it will warn you about them and it can block the person or block the country. It's very flexible in this way too. I like it because one of these days I found someone in Denmark trying to exploit one of my end points so it's cool. Matt Stauffer: Nice. Some of the things that Firewall can do is it black lists and white lists, it allows you to block people really easily. It also does some detection, like you were saying. It does some intelligent detection to find people causing problems. It's also got a couple other cool features. One of the things I liked was, you can basically send everybody on the whole site to a "Coming Soon" page except people with white-listed IP addresses. So there's a couple other tools that are in the same vein of Firewall but are not just for security purposes. Some of them are for access purposes as well. It's really, really fast. I think I remember looking at some other packages and they would add 50 to 100 milliseconds and your GitHub page says 10 milliseconds which is really basically negligible on most sites. Alright, so I have given a little bit of the high-level introduction. Who you are and what ... People may have heard of your or they may have seen your stuff before and not have always known. We're about to jump into the history of who you are but I wanted to point one thing out which is that for the longest time, I had difficulty remembering what your name was because you have an "I" in front of it in your twitter handle. So it says "iantontio" and I would always think, "His name is Iantonio or" ... But then I would remember there's a Carlos somewhere in there and I'd be like "Is it Ian Carlos" and I always had a lot of trouble. I've always wanted to tell you the "I" has been so confusing to me. Alright, so. Antonio Ribeiro: Sorry. Matt Stauffer: No no, you're fine. You said, when you're 12 years old you were in Switzerland? You were living there at the time and you got into computers and so you got a job delivering stuff so that you could have enough money to ... But what I'm curious about is, how did you actually get into computers in the first time? I don't want to go too far down this road but I will mention that there's a little more gray in your beard than there is my beard. Maybe I'll just say that. So at this point you were not discovering the same computers that I was discovering when I was 12 years old. What did it look like for you to learn about and get interested in computers and what were those first computers you were getting interested in at that point? Antonio Ribeiro: Commodore VIC-20 was the first computer I touched with my own fingers. People were talking very much about Commodore 64, I think. I wasn't able to use one but after some time I got back to Brazil. I went first to France. I was there for some time. Then I got to Switzerland, some cities in Switzerland. Then I got back to Brazil and I decided to do a course. I was 18, I think. Then I was really amazed by Apple computers and the first PCs in Brazil. I think it was that. Very early in computing, here in Brazil, I got catched by them. Matt Stauffer: Yeah, yeah. At that point, there were actually classes that you could be taking. You weren't having to teach you on your own, right? Antonio Ribeiro: Yes. Mostly, yes. That was my whole life because first I try a course to get classes and it was not very good because I was already reading a lot about computers and about programming. Then I got to try class of a friend of my father which basically gave me a book and a computer and told me to learn by myself. I was basically self-taught my whole life. Matt Stauffer: Was that Commodore 64 that you were working with at that point then? Antonio Ribeiro: No, at that point it was an Apple 2. Matt Stauffer: Oh okay. So I assume you were learning how to use the machine but were you learning coding, like AppleScript at that point? Or what were you learning at that point? Antonio Ribeiro: First, it was basic and then I got to dBase. You know dBase? Matt Stauffer: No, I've never heard of it. Antonio Ribeiro: Oh yeah. It's like a language for querying databases. Matt Stauffer: Oh okay. Antonio Ribeiro: It was not exactly a language. Then there was Clipper. I think Clipper is a little bit more popular that dBase. Matt Stauffer: I've never heard of Clipper either. dBase and Clipper. Okay. Antonio Ribeiro: Yeah, so those were the languages that I started to learn. Then after doing this course I went to a company to work for them but work and learn. It was more like a friend than a boss. There we started to work with C. Not C++ yet. This was before. We were building a translation system in Clipper and C. Matt Stauffer: Translation meaning translating languages. Antonio Ribeiro: Exactly. It was trying to translate from six different languages but it was like changing words, not really- Matt Stauffer: It didn't understand syntax. It just replaced one word with another? Antonio Ribeiro: Yeah, basically that. After, we started to translate to switch sentences and idioms and things like that. Matt Stauffer: You understood how to do the parsing well enough to write all that? Were you actively involved in writing those translation layers? Antonio Ribeiro: Yeah, it was not exactly a parsing. It was like, try to get the meaning in the sentence and just switch words. Matt Stauffer: Okay. Antonio Ribeiro: Really rudimentary I think. Matt Stauffer: Mm-hmm (affirmative). I'm trying to get all the age ranges here. You said when you got to Brazil you were taking courses so was that university when you got back home? Antonio Ribeiro: No. It was during high school. Matt Stauffer: Oh, okay. Was this job doing the translation layer, were you also still in school at that point? Or was that out of school? Antonio Ribeiro: Yes, yes. I was working then and studying at the same time. Always. Matt Stauffer: Okay, so what was your degree that you were seeking? Antonio Ribeiro: Some years after I got to do university here. I have a degree in computing. Matt Stauffer: Got it, yeah. It sounds like computers have been a thing for a very long time. The first thing you mentioned about when you were younger is getting into computers when you were 12 years old. I know that you're interested in photography and I feel like you've mentioned dancing at one point so I know you have some other things. Are those going as far back as computers, as well? Or have you sort of always been ... Computers is one of your biggest hobbies since the early days? Antonio Ribeiro: No. Both dancing and photography are things that I started five years ago, eight years ago. Eight years ago photography and five years ago dancing. At that point my wife had the dance classes. We are seven years together so seven years of dancing and eight years of photography. Matt Stauffer: That's amazing. What sort of dancing was it? Antonio Ribeiro: Samba. Do you know samba? Matt Stauffer: Yeah, yeah. I can't do it but I know what it is. [laughter] Antonio Ribeiro: Samba, rock-and-roll. We call it differently here but it's like rock-and-roll. And salsa. Matt Stauffer: My wife is a dancer and I'm one of the worst dancers of all time. She's like a professional dancer and I'm a klumbling, bumbling idiot so it's a very fun pair. I know the words even if I don't know how to do anything. So five to ten years of photography, five to ten years of dancing, but this computer thing goes the whole way back there. Was it weird that you were 12 and you were into computing and it wasn't as much of a cultural phenomenon ... I mean, a 12 year old kid that's into computers today is just no big deal. Being a 12 year old in the 90's, for me, was a little bit weird. I get the sense that you were in the 12 year old more in the late 80's or something like that. Was it culturally strange in Switzerland, where you were, or was this a normative thing? Was it normal in Brazil? Was it weird in Brazil? What, culturally, was it like being that into computers that young? Antonio Ribeiro: I think it was completely different for people to know that I was excited about something nobody knew at the time. It was very, very expensive. In Brazil, a computer- it was like buying a car or two. My mother didn't want me to go to that path because she didn't believe very much in the power of a computer. I had to be an engineer or something like that. Matt Stauffer: Yeah, yeah. Antonio Ribeiro: So I asked her to buy me a computer and she basically said no, of course not. Matt Stauffer: Of course not. What are you talking about? What was it that interested you so much about computers when you were 12? What was the thing that you saw or the possibilities that you saw or did you see a specific thing happen and you say, "I want to be able to do that"? What was it Antonio Ribeiro: I think it was exactly that. Infinite possibilities. Matt Stauffer: And you were able to figure that out? That early? Antonio Ribeiro: Yeah, I think so. For a lot of time, in that department store, I was just trying to figure out what the thing was about. I was able to play with it and to write things and to create small programs. It was really cool. Matt Stauffer: I learned basic but you said, this was the Commodore 64, or VIC-something, or I don't know. What were you writing at that point? Antonio Ribeiro: VIC-20. Matt Stauffer: Yeah, 20. What were you writing in at that point, when you were really getting started? Antonio Ribeiro: I don't remember. I was just copying stuff from magazines and then changing words and changing functions. Matt Stauffer: And seeing if you could control things, yeah. Antonio Ribeiro: Yeah. Matt Stauffer: Very cool. When you were back in Brazil, you started studying things. You got the job translating. It seems like you were always had multiple fingers in multiple pies, as the expression goes. What was your goal then? Did you have a goal other than just to do more stuff with computers? Antonio Ribeiro: Learning was always my goal. Even today. What happened there ... Actually I was working for another company in Brazil before going to that job. There I learned to write a little bit more of Clipper and when I go to the company of the translation, I decided I was able to do the translation system in a different way. What we had at the time, it was a software that was plugged into a editor like Microsoft Word. It was not that, it was another editor. It was able to get the words from the editor and write words in another language. So I decided to build an editor which was able to translate at the same time. Matt Stauffer: Oh my gosh. Like a Word Perfect type thing. Antonio Ribeiro: Yeah, exactly. Before Word Perfect. Matt Stauffer: Oh god. That's no big project or anything like that. No big deal. [laughter] Okay so how'd that work for you? Antonio Ribeiro: I was young and I had no idea- [laughter] Matt Stauffer: That's fantastic. How long did that dream last? Antonio Ribeiro: That dream come true. Matt Stauffer: You actually built one? Antonio Ribeiro: Yeah! It was released and it was sold to a lot of people. Matt Stauffer: It was you working alone? Antonio Ribeiro: For some time, yeah. Until I got everything almost done, it was me in secret. Then it became a project from the company. Matt Stauffer: Oh okay. So the company that you were working for sort of absorbed it and then they released it but it was your work originally. Antonio Ribeiro: Yeah but for the company. I was working there. Matt Stauffer: Sure. What I'm hearing you say is- Antonio Ribeiro: Nobody knew exactly what I was doing but I was working there. Matt Stauffer: What I'm hearing you say is that at a relatively young age, you built a word processor from scratch that was live-translating from one language to another that was released and purchased by many, many, many people. Antonio Ribeiro: Yes. Matt Stauffer: No big deal. No big deal. You just do it in your sleep, ya know? [laughter] We've talked about your work there. You released that thing. What was next after that? I assumed you worked there for a little while. You said you started there when you were in school so what was the next big move whether being done with school or being with that company or geographic move- what was the next thing that went from there? Antonio Ribeiro: No big moves. I went from one job to another because I was always seeking something new to do, something new to learn. When I was 21, my girlfriend got pregnant so I got married. Things got a little bit different because I was not working for learning anymore. I was working for money. Matt Stauffer: For providing, yeah. Antonio Ribeiro: To provide. I went to university when my daughter was already born. Then I went and worked for another company of a big friend. Then I stayed there for five or six years and then around 1998 I decided to move completely to a completely different life and built a webhost company. There I working for a company. I was trying to get into the public serving. I was doing a concourse, I don't know how to say that in English but you have to do a test to enter to public serving. Matt Stauffer: Like a certification? Antonio Ribeiro: No, it's like ... I don't know exactly how to say that in English. Matt Stauffer: Okay. Antonio Ribeiro: It's a concourse. You have a lot of people competing for a position in the company. Matt Stauffer: Oh, it's almost like a competition and you have to get a better score on an exam, or something like that? Antonio Ribeiro: Yeah, that's it exactly. Exactly like that. I don't know if you have that in US. Matt Stauffer: I'm sure that concept exists where multiple people are competing for the same promotion. I don't know if it's such a normative thing where we have a word for it though. That makes sense though, what you're saying. Antonio Ribeiro: I got a position; we built the company, me and Anselmo, my partner. The company was doing a lot of things and we were also working for another company rebuilding their system. They have the system written in Pascal. You know Pascal? Matt Stauffer: Mm-hmm (affirmative). I don't know it but I know what it is. Antonio Ribeiro: Actually, TurboPascal at the time and we decided to move everything to Delphi. Matt Stauffer: Okay. Antonio Ribeiro: Me and him, basically, he wrote a 20 year old software into Delphi. Matt Stauffer: Wow. Antonio Ribeiro: That was our greatest move at the time, I think. The company had a lot of clients and nobody knew exactly how to build things for Windows, at the time. Everybody was still working on DOS. The company had five or six different big softwares including a healthcare system using Pascal and everything running DOS. We had to move to Windows because DOS was dying at the time. I think it was almost dead. Matt Stauffer: Yeah. Antonio Ribeiro: That was a really big move. For that move, why we decided to go in this path was because they offered us part of the company. Matt Stauffer: For rewriting all those systems? Antonio Ribeiro: So we had 20% of the company and 13 years ago this move and everything switched and the software was working, they basically cut us off the contact. Matt Stauffer: But you had 20% of the company at that point, right? Antonio Ribeiro: No, not anymore. We lost everything. Matt Stauffer: Oh my gosh. Antonio Ribeiro: That was 2013. It was exactly when I decided go web. We were not web anymore. Actually, the whole problem was we were talking to them that we needed to go to the web. Move everything to the web as fast as we could because everybody else was already there. Matt Stauffer: Right. Antonio Ribeiro: So, they say to us, "No, we cannot do that now" and just cut us off. End of story. Matt Stauffer: I don't wanna go too deep into money issues but if you own 20%, did they just force you to sell your shares? I don't know how that worked legally. Or was it more of an agreement where that was a little more casual. Antonio Ribeiro: Yeah, that was the problem actually. We had no contract. We had no shares. We had nothing. It was basically friends doing something really big together for 10 years or 13 years. They just stopped giving us money and end of story. Matt Stauffer: I don't mean to at all preach in the face of something difficult that you're going through but my business partner, Dan, and I have found that since the beginning of us starting the company together we said, "you know what, we have each been burned in this similar way at some point in our lives. Where we go into business with friends and just hugely regret it later". Because you're working with friends you don't do the same level of protection that you might've normally done otherwise and so what we decided to do as we started our company was to be very legalistic. Even more than you might be with someone that you don't know so that at no point do we get to a point where our friendship is on the rocks because of those tensions. Because everything's explicitly spelled out. But obviously we had that after having been burned multiple times just like you were on that one. So I know how that feels although I don't think to the level that you experienced so I'm sorry. That's not fun. Antonio Ribeiro: Yeah. Matt Stauffer: How did you guys recover from that? That's a hard hit. What did you do next? Antonio Ribeiro: I was lucky because I had two different jobs. The job I still have now, working for government, I had it because it will basically give me money for the rest of my life. Matt Stauffer: Right. Antonio Ribeiro: So I lost 50% of what I was making at the time but that's not really bad. Matt Stauffer: It's not the end of the world. Antonio Ribeiro: I had to move from the apartment I was in. A lot of things happened in my life but I survived. And him too. So it's okay. Matt Stauffer: Okay. I like the attitude. The hosting provider, is that still going on? Because you've mentioned working for the government. You've mentioned working for the translation people. Then you switched jobs to other people. You're mentioned these folks who you had the 20% with but you don't anymore. You mentioned the hosting provider that you created. I'm not always fully following who you work for at any given moment so you're definitely still working for the government because you just told me that. Are you still doing this hosting thing? Antonio Ribeiro: No, not anymore. Matt Stauffer: Oh okay. Antonio Ribeiro: We had to close everything because- Matt Stauffer: Oh I'm sorry. Antonio Ribeiro: The money that we were making with the other company was providing a lot of things, including the hosting company that was not very profitable at the time. Matt Stauffer: Got it. Antonio Ribeiro: So we closed it. Very fast. Matt Stauffer: When you said hosting company, the first that came to my mind was your were running some servers and you were renting out shared hosting but you've never actually said that. What sort of hosting were you renting and what sort of folks were your clients? Antonio Ribeiro: Exactly that. The hosting company started because we knew a little bit about internet. We saw some hosting companies doing really bad things in the market and we decided to get one client of ours, which was not exactly that company that was our partner, and build a site for them. For that we needed a good webserver so we learn a lot of Linux at the time, Debian Linux, build a server, got a home internet connection, discovered how to make things happen to get a DNS up, Apache mail server ... So we learn everything in three months and we got it up. Matt Stauffer: Geez. Antonio Ribeiro: Got it all up and the company was online, working- Matt Stauffer: You said home internet server. You were able to get a fixed IP address though, right? Antonio Ribeiro: Yes. Afterwards, yeah. We started with an IP address. Actually, our tests were all doing at home. Then we got an IP address in an office of a friend in downtown so it was that. After that, we moved our server collocation inside the center and got more servers and the thing got really big. Matt Stauffer: Right. Was it just the two of you remoting into those servers in the collocation center or did you start having other folks working for you as well? Antonio Ribeiro: Not in the webservers company. It was only me and him. Matt Stauffer: Okay. What do you use for hosting now for your side projects? Are you a Linode guy or are you hosting your own stuff? Antonio Ribeiro: Yeah, I host everything in Digital Ocean using Laravel Forge. Matt Stauffer: Yeah. Antonio Ribeiro: Except for my backups that are on Amazon. Matt Stauffer: I do the same thing. I know my way around a basic Linode server or an Nginx and Apache and stuff like that but I'm not to the point where I could be running my own hosting service. It's interesting to hear someone who has such a depth of experience in hosting still choosing. Saying, "Hey this is the easiest way to do it so why not". Antonio Ribeiro: Yeah. Matt Stauffer: So that was 2013. Those things shut down. Since 2013, obviously you've mentioned that the last time the Laravel meet-up was going was in 2016 and you said at that point you had already kind of stepped away a little bit. What have the last four years been like? What have you been working on? Obviously you're still spitting our packages and I'm guessing you're still answering questions on Stack Overflow, although I have not looking at how recent your most recent was. What else are you up to? What are you most interested in? What have you been learning and excited about learning recently? Antonio Ribeiro: I'm learning JavaScript now. Matt Stauffer: Okay, got it. Antonio Ribeiro: I got into VueJS very early but I did not move my thinks to VueJS. Right now everything I do is Laravel, back end API, VueJS front end. Matt Stauffer: Got it. Antonio Ribeiro: The past four years, I was basically learning, doing some jobs and some websites for one or another people or company. Doing some contracting work. Everything is small. Two years ago we started to build things in the government using Laravel so it got really big. I have at least five sites and two mobile apps using Laravel. One of the sites, we have a voting system for young congressmen in Rio de Janeiro. Matt Stauffer: Cool. Antonio Ribeiro: Yeah. My company, it has a program for young congressmen so every year we have all the schools in the state, the students, trying to become young congressmen. We have a big voting, I think in July, and then they go to be a congressman for a week. Creating bills and voting bills in and afterwards those bills usually become a real state bill. Matt Stauffer: Really? Antonio Ribeiro: Yeah really. Matt Stauffer: Wow, that's fascinating. And a little bit terrifying, but mainly fascinating Antonio Ribeiro: [laughter] Everything is done with our real congressman so it's cool. Matt Stauffer: So, you built that. I assume you're using View Router and Laravel is really just basically spitting out the view initialization and then the API but none of the front end of those applications is actually built by Laravel? Or is it more of a mix? Antonio Ribeiro: Oh, no. The APIs, Laravel, the front end, is usually view. Particularly this one is not 100% view yet because it has one year and a half. But it basically VueJS. Matt Stauffer: Stepping outside of coding a little bit, I am going to admit that I am an extraordinarily, commonly ignorant American when it comes to most things Brazil, Portuguese, and even Rio. I've seen a couple movies. I watched City of God a whole bunch of times. My sister lived in Rio for a year and my book was translated- Antonio Ribeiro: Oh yeah? Matt Stauffer: Yeah, she's obsessed with Portuguese. When I went home for Thanksgiving a couple of weeks ago, she had been at the bank after coming back from a year living in Brazil and she heard two people speaking Brazilian Portuguese. She walked up, she said "Excuse me, are you from Brazil?" And they look at her like she's a crazy person. They say "Yes, we just moved here and we're setting up our first bank account". She said, "Let's be friends!" And so they and one of her other random Brazilian friends were over at my family's house for Thanksgiving and my son does capoeira so he was like doing the capoeira plays back and forth with one of the guys who does capoeira. I have this very tiny, tiny, tiny side influence that is bringing more than average amount of Brazil into my life but I really know very, very little about the city. I know very little about the country. I know very little about the language. So as a total American idiot who doesn't know anything, let's start with Rio. What aspect of Rio do you feel like, if someone were to visit, they just needed to take in? Obviously, there's a couple specific tourist sites but what aspect of living there and being there do you think is really interest and unique relative to other similar countries that you would really want people to know about? Antonio Ribeiro: Yeah, I think if you are coming to Brazil you have to come blend. The people are the best. We are, I'll not say "cool", but we are good. We are warming. We love to chat, to be with people, to laugh. Knowing the city is something that will happen really fast if you know people here because, of course, you can go to tourist sites. It's easy to get a book and go to tourist sites but to eat food, if you like food, to eat good food. To know amazing restaurants and not very known restaurants. You have to know people. You have to make friends here. And its very easy to make friends in Brazil. Really, really easy. Matt Stauffer: I like that. Talking about food, if there was one food that you would want everyone to try, what would it be? Antonio Ribeiro: My American boss was in Brazil last week. I got them to eat a lamb. There is a very good lamb here in Lapa. I don't know if you know the name. Matt Stauffer: No. Antonio Ribeiro: It's a very popular part of the city where you can find a lot of bars opening at night. Friday and Saturday you go there and you will probably see like 200 persons. 200,000 persons in that part of the city. It's really very crowded. So the lamb. Matt Stauffer: So, if I were go to and I were to visit, I would need to get lamb. I would make friends with people. Get to know ... And honestly that's one of the most commonly known things about Brazil. It's just wonderful. A lot of the stereotypes also have to do with parties and fun and entertainment and Carnival and all that kind of stuff. Are there any stereotypes or any common misconceptions you think that people have about Brazil and Brazilians that you think aren't true that you want to dispel? Antonio Ribeiro: Probably, people think that Rio in particular is too dangerous to know. Of course, it's dangerous. We are living in dangerous times. But it's not like that. You can come here and you will be safe. It's not like something bad will happen as you as you touch the soil. Matt Stauffer: Walk out the door, right. Antonio Ribeiro: It's safe here. It's a good place to be. Matt Stauffer: Cool, I like that. We're a little short on time but I want to make sure that we touch into the other things that you're really passionate about. We've got dancing and photography cued up. I do want to ask before I go into those two, am I missing anything about you? Is there an aspect of who you are or what you've done, a part of your story or anything, that I've just completely missed that you really want to make sure people get the chance to hear? Antonio Ribeiro: Not at the top of my mind, I don't think so. Matt Stauffer: Okay, so let's talk photography. Antonio Ribeiro: Probably yes, but nothing I can remember. Matt Stauffer: Alright, let's talk photography. What got you into photography? What sort of things do you primarily focus on photographing? How much is it actually a part of your life right now? I know it has been as some point, is it still? Antonio Ribeiro: Yeah, I got into photography because I love to make photos. I'm very technical with everything I do so I like very much to program my camera. Matt Stauffer: Are you a manual-mode kind of guy? Antonio Ribeiro: Yes, yes. I do all the time. I love to take pictures of people. This may be what I do the best. Matt Stauffer: Uh-huh. Antonio Ribeiro: I got known in the photography world by taking pictures of shows and nature. Matt Stauffer: Like music shows? Antonio Ribeiro: Music shows, yeah. Because of the dancing, which is the other, I got to the music of the city. To know a lot of musicians, to be with musicians. I have at least two great friends in music here in Rio. I got to photograph them. Today I think their photos in Facebook and Twitter are my photos. Matt Stauffer: When you go straight to your website, you see photography right in there. Is the background of your website, is that a photo you took? Antonio Ribeiro: Yes. Everything, yes. Matt Stauffer: That's gorgeous. It doesn't look real. I assumed, even though I knew you did photography, I assumed you must not have taken them because they're so beautiful. I'm really impressed with this. Antonio Ribeiro: All of them. You're talking about which one? Matt Stauffer: Well, the first ones that came up the last few times I went were a couple of the view of Rio from above. Then, obviously, I'm sure you're aware it keeps cycling through photos. These are incredible photos. Do you consider yourself a professional photographer? Antonio Ribeiro: Yes but I don't make money from photography. I have some professional work, three or four, but I'm not really into it. I'm not photography too much these days. Photography takes a lot of time. You have to really stop and look at the photo. Retouch sometimes. That takes a lot of time too. It's time consuming so I don't have that time now. Matt Stauffer: Yeah. It's mildly offensive that you can say that you don't even have time for photography and you don't do much and then your photos are this good. I'm just going to tell you that right now. Antonio Ribeiro: Yes. I agree. Matt Stauffer: Yeah, this is really beautiful stuff. Folks who are listening, definitely check it out. Of course this will all be in the show notes. Okay so, do you and your wife still dance a lot? Antonio Ribeiro: We dance a little bit. Not as much as we would like to dance and we are not in the dance classes anymore. We were in the beginning of the year. We went back to the dance classes but our lives are getting too crazy to be there, to go to class every week at such time. It's hard. It's hard for us. Matt Stauffer: Yeah, absolutely. Especially when you have a family. There's just a lot of obligations that come from family and come from work and everything like that. I'm finding that I haven't picked up a lot of my hobbies. Somebody asked in the Laravel advent "What are your hobbies" and I laughed and I said, "Keeping my kids alive". There's just times when, if everybody's alive and fed at the end of the time and the house hasn't burned down, I'm considering it a win. Cool. Well, we're coming up on time. I know I said is there any high-level aspects of your story that we haven't covered but are there any projects or any frameworks or any packages or any conferences or meet ups that you'd like to plug, you want to talk about, or you want to make sure people know about? Antonio Ribeiro: No, I don't think so. I'm basically trying to get into my packages a little bit more. I'm trying to rewrite Tracker from scratch. Matt Stauffer: Oh cool. Antonio Ribeiro: Yeah, because it's getting old. Codes is really ugly to look at right now. I think I have changed as a coder in the past years. Matt Stauffer: It's a couple years old, right? Antonio Ribeiro: Yeah, yeah. It's like two or three years old. I think it was the first big package that I wrote and people really like it. I think I have to give some love to the package again. Matt Stauffer: Yeah, yeah. It's this thing where we look at our old code and we can't imagine how we ever wrote like that but it's still our baby. I like it. It's hard every time. It's hard to cut off talking when I have so many more questions but I feel like we've covered a really good chunk. We made it from at least age 14 until today, even if we probably missed a lot of interesting digressions we could have taken. Thank you so much for your time. It was a ton of fun talking to you. I love getting to learn about you. Thank you for the contribution you make, especially because often you're making those contributions ... Again, I don't want to say nobody knows who you are or anything like that but you're consistently helping. Getting a good Stack Overflow score means that you have helped a huge number of people. You've helped me many, many, many times. So, for the tireless work that you do helping people in our community- thank you very, very, very much. Antonio Ribeiro: Thanks for having me and thanks for inviting me do this interview. And thanks for your blogging too because your blog posts are helping me all the time as well. Matt Stauffer: I love it. Well, I promise that I'm gonna do my best to actually writing them again. I'm in the same pit as you where anything other than the day job and keeping my family alive have really dropped. But my hope for 2018, let's get back into doing these side things and working on our packages and our blogs. Antonio, thank you so much for your time. Everybody else, see everything you need in the show notes. Just go to laravelpodcast.com and we'll see you next time. [music]
Interview: Jeffrey Way, founder of Laracasts
An interview with Jeffrey Way, the founder of Laracasts. Laracasts Talk at Laracon about tech he had to learn Jeffrey’s 10-year-old articles at Freelancefolder.com Transcription sponsored by LaraJobs Matt Stauffer: Welcome back to the Laravel Podcast. Today I'm interviewing Jeffrey Way, the creator of Laracasts, and one of the original ... Wait, the original? One of the OGs of Laravel. Stay tuned. All right. Welcome back to the Laravel Podcast. This is season three, and like I said, I'm not giving you crazy people episode numbers, because I'm bad at counting, so this is the latest, whatever it is, episode of the Laravel Podcast season three, and I've actually got one of our long-term recurring guests with me. I've got Jeffrey Way, the man, the legend, the creator of Laracasts, and one of the significant popularizers of Laravel. Man, half of y'all, more than half of y'all, when you learned Laravel, you were learning it from this guy. But what I like about this season is that you might know about what he's taught you. A lot of people say, "You know what? I listen to him every single day. I feel like I basically have a relationship with him at this point." But you might not know a lot about where he came from, so I'm really excited about the opportunity to sit down with Jeffrey for a little bit and kind of ask some questions about who he is, and where he came from. Jeffrey, I have some things I already have queued up, but I'm also excited to see kind of what's going to come up as we go. First thing, top of the line, say hi to the people, and when you introduce yourself to someone new, not in our context, what do you tell people you do? I just want to hear your pitch. Jeffrey Way: My name is Jeffrey. I'm a web developer. I've been doing it for about 15 years at this point. I run a business call Laracasts, which hopefully listeners of this podcast know. If not, it's dedicated to education mostly in Laravel, but really just the Laravel developers. It covers a lot of the ecosystem that we use, like Vue, and Webpack, and HTML, and CSS. It's kind of for that type of developer. Lots of sites cover everything. They cover Ruby, and Python, and PHP, and Node, and it ends up getting a little overwhelming, because most people do have a focus. Matt Stauffer: Right. Jeffrey Way: That's why I created Laracasts. Matt Stauffer: Well, the interesting thing is, in some ways it's very focused, right? It's the video tutorial site for the Laravel world. But on the other hand, it's everything the Laravel developer needs, and so it's not just PHP. It's not just Laravel, right? You're covering front-end. You're covering back-end. You're covering process. It's got Git, and it's got PhpStorm. That's what I love about it, is that you say it's not just Laravel, but it is for the Laravel developer. Everything that person needs. I love that. I love that you gave yourself the freedom to say, "You know what? Whatever. As a Laravel developer, I write CSS. Then therefore Laracasts can cover CSS." Jeffrey Way: Yeah, because really, as you know, Laravel ends up being a big piece of the puzzle, but really most of your time you're trying to solve other problems, or you're trying to figure out, "I screwed up this Git commit. How do I fix that?" Laravel is one piece of the puzzle, but there's countless pieces that we have to deal with every single day. It tries to cover all of that. Matt Stauffer: I remember your talk a few years ago, I think it was at Laracon, where you went on that whole kind of prepared rant about all the things that you have to know to be a web developer today. I'll make sure to link that in the show notes. Jeffrey Way: Yeah. You know, that ended up being the most popular presentation I've ever given. Matt Stauffer: I believe it. Jeffrey Way: On YouTube, it has 100,000 views or something. It's crazy. Matt Stauffer: That's awesome. Jeffrey Way: I've never had a presentation that popular. Matt Stauffer: Now that you heard that, you probably know that if you are listening to this podcast, and by some crazy, crazy, crazy reason you've never heard of Jeffrey, you've never heard of Laracasts, everyone else is already kind of giving credit to this, but I want to put my voice behind it. I have said for years, since long before I knew Jeffrey, before Laravel even existed, Jeffrey Way is one of the best teachers on the entire internet. Period. Jeffrey Way: Thank you, Matt. Matt Stauffer: If you are not subscribed to Laracasts right now, go to Laracasts.com and subscribe. I promise you you'll thank me for it. When you said that thing about what we have to learn, I'm actually onboarding a new developer to Titan as of this week, and she just graduated with her computer science degree, but she's been learning Laravel and kind of doing this stuff on the side, and so I did one of our first pairing sessions where I know what her level of Laravel knowledge is, but this morning I was like, or last night I was like, "Oh, yeah. I guess you need to learn responsive web design, and you need to learn what media queries are, and what rems and ems are." I thought about all the Laravel stuff she needed to learn, and not all this other stuff. I was like, "Okay, yeah. All these things all together." Jeffrey Way: It's crazy when you think about how much we have to learn. We all just agree to it, too. Like, why are we agreeing to this? It's so difficult. I look back and it's like, for 10 or 15 years now, every day I'm probably learning something new. That's why we have that joke that we all spend our days on Stack Overflow. Matt Stauffer: Right. Jeffrey Way: It's like, every day you're presented with something where you're like, "I don't know how to do this." You know? Matt Stauffer: Yup. Jeffrey Way: It's a little overwhelming, but that's how it goes. Matt Stauffer: Well, a lot of us, honestly, the first time ... I'll tell a little story about this in a second, but a lot of us the first thing we do when we have a problem is not go to Stack Overflow, but we go to Laracasts and see if you've covered it. It's funny, because in our Telegram chat, sometimes somebody will be like, "You know what? I need to learn this thing. Jeffrey, please go make a video about that so I don't have to learn it on my own." We're starting to get into code, and I promise you that that was not what this is going to be about. We are going to talk about Jeffrey. Here's what I know about your story, and I hope that this is going to give us an opportunity to figure out where to dig in. I know that your parents were composers and songwriters in Nashville, or in the music industry in general. I know that before you were full-time in programming, that you did ... I'm guessing classical guitar, but I know it's basically professional guitar playing. I know at some point you transitioned to web. I know that you did some web development teaching. You ended up at NetTuts, and eventually you split off and created Laracasts. That's the high-level knowledge. There's so many spaces to fill in. First of all, let's start out with growing up. My guess is that you grew up in a music family, and you were just into music at an early age, but is that actually true? Jeffrey Way: Yeah. Yeah. It's pretty true. Matt Stauffer: Was it mainly guitar? Jeffrey Way: Well, I started playing guitar when I was about seven. Matt Stauffer: Wow. Jeffrey Way: My parents divorced when I was five, but my mom was- Matt Stauffer: I'm sorry. Jeffrey Way: It's okay. My mom was a professional songwriter in Nashville. My earliest years, I spent in music studios. I remember sometimes we'd be in the studio until midnight, and I'd be passing out on some couch while they were just at this huge recording setup. Matt Stauffer: Wow. Jeffrey Way: It was very fun in hindsight, but at the time, you're a little kid. You don't think it's very cool. Matt Stauffer: Right. Jeffrey Way: When in fact, it's actually incredibly cool, because this is where some of the most famous songs ever have been recorded, but yeah. That's how I grew up, so of course I got into guitar at a very young age. Both of my brothers played, so you just kind of follow in your siblings' footsteps, and that's what I did for a very, very long time. I got hooked. I don't know what it is, but for kids, you never know what it's going to be, but there's one thing that hooks them. Everything else, they brush off. You'll find one or two things that they just latch on to. Guitar was that for me. I loved guitar and finding patterns. I thought that was the coolest thing with guitar. It's not like that with other instruments, but with guitar, there are patterns. There are shapes that you can play on the guitar, and you know, "Okay, if I memorize this shape, if I move it up here I can play that same shape in an entirely different key." I always thought that was very cool. That's what I did all the way through middle school and high school, and college. I had a music scholarship. Matt Stauffer: I mean, you were playing at seven years old. I didn't even touch a guitar until I was in high school, and I never got very good. Was it very casual at seven, and it never got really significant until college? Were you the type where people are looking at you at 12 years old, being like, "What? Is that 12-year-old playing that right now?" Jeffrey Way: I would sound like a jerk if I said yes. No. I mean, naturally it starts off kind of slow. I'd learned how to play a few blues progressions and things like that, and then the older I got, the more serious I got about it. Matt Stauffer: Sure. Jeffrey Way: By the time I got to college, it was four hours a day in practice rooms and doing that. Matt Stauffer: Yeah. Jeffrey Way: Yeah. I don't know. It just hooked me, and then at some point after college, it left. I don't know what it is. I always worry about that with coding, is just the obsession that I felt for guitar just left. Completely left. I have a guitar right here I'm looking at, but I just don't even play it that much. It makes me sad, honestly, but that's just how it is. Matt Stauffer: I'm sorry to be fascinated by your sorrow, but I'm fascinated by this whole progression, but I want to go back just a second. When you were talking about being in the studio with your mom while she was writing, I'm picturing- and I've watched way too many movies- but I'm picturing this mom working hard to put bread on the table, and she's working late nights, and the kid's in the background doing his homework while he's kind of laid out on some couch in some studio. Am I getting the right vibe there, or am I romanticizing it? Jeffrey Way: Pretty much. Yeah, no. You can think of a dark room with a huge recording setup, and yeah. Them playing the same track over and over. They play the track for five seconds. "Whoops, made a mistake. Rewind it. Play it again." As they go through each layer, and the singer goes- Matt Stauffer: She was a songwriter, but she was in the studio with the people who were actually recording it? Jeffrey Way: Yeah. Yeah. She would do demos. For songwriters, they write a song, and then they'll go in the studio and do a demo. Matt Stauffer: Oh, okay. Jeffrey Way: At least this is how it works in Nashville. Then that demo will be shopped around to all of the labels for ... She was in Nashville, so it would be shopped around to people like Shania Twain, or Faith Hill, or those types of people. Matt Stauffer: Would she sing the demo? Jeffrey Way: No. No, no. We'd get professionals to do it. Then I started playing guitar, and I wanted to be the one playing. Of course, I wasn't even remotely good enough, and my mom let me know that, which hurt my feelings significantly, but she was of course completely right. In my head, I thought I should be the one in there playing guitar in this demo, with two years experience, which is ridiculous. Matt Stauffer: Right. Was your goal to be a studio musician, or performance, or just whatever came? Jeffrey Way: Of course I wanted to be like a rock star as a kid, but then as I started getting older, I started figuring out my personality, and I started realizing, "I'm probably not the personality type to go on tour and stuff like that." But I did like the idea of being a studio musician, where it's like you have your day job, and you go in, and you do your work, and then you go home and you can be with your family. Because I always thought, even when I started dating my wife in college, and even then I was still focused on guitar a lot, and I was thinking to myself, "Do I want to go on tour and then just not be with her for four months out of the year?" That ends up what happens if you're a touring musician. You leave for months at a time. You come back for a week, and then you're back on the road. Even then, I was thinking, "I don't want to be away from my girlfriend or my wife for long periods of time." That's when I switched to being a studio musician, but I don't know. Whatever it was completely left, that obsession. I think about it a lot, actually. Matt Stauffer: It's not just the obsession that left, because it seems like even the simple joy that comes from playing. Because it wouldn't hurt you. You run your own business. You could take an hour and just go play right now, and the whole thing wouldn't come crumbling down, but that's not even the first thing you would do right now. It seems, and maybe I'm reading it wrong. It's not just the obsession that's gone. Is it even the joy from playing? Jeffrey Way: Yeah, kind of. I always think the things you love will come back, so I have this feeling when I'm older it will come back, but I don't know if it was because I was doing it from such a young age so seriously, for so long that I burned out? Matt Stauffer: Yeah. That's what I was wondering. Jeffrey Way: I feel like it's the guitar version of burnout. Like, I completely burned out on it, and it just wasn't fun anymore. Matt Stauffer: I assume this was just a couple of years out of college, so it was probably you had gone from it being the thing that you pursued on your own to all of a sudden a more structured thing? Or is that not a true characteristic? Jeffrey Way: It was right in college when I kind of stopped. Maybe it was this. I was in college on a music scholarship, and in college, for whatever reason, it was like, "You don't go to college to be a rock star." Matt Stauffer: Right. Jeffrey Way: They're going to have you either playing jazz music or playing classical guitar. There, it's like, what's required of you is you go into a study room and you practice four hours a day to get the notes exactly right. Even at the time, I remember thinking, "This isn't why I got into guitar." I didn't get into guitar to play this piece from the 1500s perfectly in front of a bunch of people while I'm wearing a suit. That's not why I got into it. I think that somewhat ruined it for me. Matt Stauffer: That's what I was wondering, whether it's the process of taking the thing that you loved, which is playing guitar on the songs you love, in the way you want, when it's your motivation to do it, and turning it into playing somebody else's music with pressure, in contexts that you normally wouldn't choose, with the structure and the pressure around it. It's like some people say, "I loved coding when it was my side thing, but once it became my full-time job, it kind of sucked the joy out of it." Jeffrey Way: Yeah. You hear about that a lot, in tons of industries, where it's like if you take your passion and then suddenly it's your job, it goes away. I've heard about that with photographers, where it's like they love photography, but then suddenly they do it every day for a living, and they grow to hate it. I worry about this with coding a lot, honestly. Like, "Will I get to the point where I hate it and I dread it every day?" Do you think about that at all? Matt Stauffer: All the time. I think about it all the time because it's the same thing. I've had that happen before, and I can't believe I can't think of it right now, but I know that at least in some ways when I was doing some art, I had a little bit of the same experience. It was fun, and it was creative, and when it became work and there's pressure to perform a creative act in a certain ... You know, it was very difficult. Jeffrey Way: Right. Matt Stauffer: But for some reason, with programming, I often tell people, at least for now, I've been back into professional programming for seven years I think at this point. I don't see any signs of it. I'm worried about it just like you are, but for me, every new day there's 100 things I could be doing that are fascinating to me. I think maybe we joke about the fact that there's so much pressure on us to learn all these things, but maybe the fact that there's so much new, there's so much open, and there's even within that, there's so much choice for us about what we want to pursue, that even though we have to sit down and perform, if our jobs are healthy ... I mean, your job is. You get to pick what you're doing. My job is. I give everybody 20% time. We have that breathing room to go and explore and be fascinated, maybe, like we were before it was a profession. That gives us a little bit of that breathing room. Jeffrey Way: Mm-hmm (affirmative). Yeah. Yeah. Absolutely. I think about it sometimes with school, you know? When you force kids to learn, are you ruining it for them? Matt Stauffer: Right. Jeffrey Way: That's that common discussion that goes back and forth. It's got to be this hard line to walk, where it's like you need to encourage kids to learn these specific things, but if you push too hard, you're going to ruin it, because you're going to ruin it for them. I think about that a lot now that I have a daughter. I'm not sure how we're going to do that. I guess you have to present them with lots of choices, lots of things, and then wait to see what they really latch on to. Matt Stauffer: Yeah, and really good teachers help make things fascinating. I think the best kind of teacher, whether it's in school, or even I'm trying to remember what it was, but I was listening to somebody talk about being a good podcast host. The best way to make something interesting is to be curious, and to invite kids along with this curiosity, to invite their learners along, where you are helping basically infect them with the desire to know more, and the fascination. Instead of forcing you to learn this, you're developing within you a curiosity and a fascination, and once you think about it that way, a lot of the best teachers use that language, but I don't know if that language would have clicked before we started thinking this way. It's the same thing for me. Once I had kids, I totally thought about learning and school a very different way. Jeffrey Way: No, I agree. It's contagious, too. Who I think does this better than anyone is Neil Degrasse Tyson. You don't even have to be interested in astrophysics. Matt Stauffer: Yeah. Jeffrey Way: But if you listen to him talk, just go on YouTube and find any presentation he gives, he's so passionate and so enthusiastic about it that he'll be talking about something so mundane, and he will make it sound incredibly interesting. Sometimes I'll just go on YouTube and watch video after video of his, because it's contagious. Matt Stauffer: Yeah. Jeffrey Way: Really interesting stuff. Matt Stauffer: It's interesting, because it's a two-way thing. I think individual people can be so fascinated in maybe a relatively uninteresting thing that their fascination can be contagious, but I also think that we can develop within us a curiosity and hopefully develop within other people a curiosity that makes otherwise boring things more interesting. I often have conversations, I'll meet somebody at a dinner party or something like that, and my wife will make fun of me because I'll meet this new person I've never met before who doesn't seem that interesting, but they are very interested in something, and they might not have the Neil Degrasse Tyson in them to make it sound interesting, but I can spend an hour with them and be fascinated by ... I remember meeting this guy who at first was just very neckbeardy, judgey, makes everybody else feel dumb. But I was like, "There's something this guy is brilliant about. He's a PhD, blah blah blah." I discovered that he cares about certain phase quasars, blah blah blah blah blah, and ended up learning about those things for hours. I don't care about those things, but for those couple hours, I was fascinated by it. I think it's an intentional curiosity that we can try to develop in ourselves that helps us. I don't know. That's my hope for my kid, is that they become curious, you know? Jeffrey Way: Yeah. No. That's great. That's great. Matt Stauffer: Okay. Studied music, went off to school. I assume that you were majoring in guitar performance? Was that what they called it? Jeffrey Way: Music theory was- Matt Stauffer: Music. Oh, so you weren't even in performance, so the theory, was that part of the load? Jeffrey Way: I'm actually trying to remember. It was like performance ... One was a major. One was a minor. Matt Stauffer: Okay. Got it. A little bit of both. Jeffrey Way: I can't even remember, but yeah. I was doing both every single day. Matt Stauffer: You lost the passion in the middle of college. Did you graduate with that degree, or did you switch to a different degree program? Jeffrey Way: I didn't even finish college. Matt Stauffer: Oh, yeah. Jeffrey Way: I dropped out. Yeah. In the middle of all of this, I started losing interest, and then I started focusing on code a little bit. It was funny, I remember talking to my mom about it, and she was very upset about this, because of course she was a musician and a writer, so she thought her kids was going to follow in her footsteps. Then suddenly, I'm leaning towards programming. I was trying to explain to her, "No, there's a huge amount of creativity in this." But to her, it's just like, "Code. Code. Code." Matt Stauffer: Right. Right. Right. Soulless. Jeffrey Way: Very mechanical, soulless. Not an ounce of creativity in it, which couldn't be further from the truth. Matt Stauffer: Yeah. Jeffrey Way: Anyways, I started focusing on that more and more, and the more I got into programming, the less I was into music, and it just slowly faded off. Matt Stauffer: One of the questions I always ask everybody ... Sorry to cut you off. When did you first get access to a computer, and when did you first start getting into programming? Jeffrey Way: I'm going to have to apologize, because I was listening to some of your other episodes, and everyone got into programming when they were 10 years old or something. Not for me. Not for me at all. Matt Stauffer: Oh, that's good. Jeffrey Way: My first computer wasn't even my computer, of course. It was the family computer. I remember playing Number Munchers, which was this old game on the Mac. Matt Stauffer: Yes! Jeffrey Way: Yeah. I think we've talked about that before. I was obsessed with Number Munchers. I'll listen to DHH interviews and he'll talk about when he was seven years old, learning this old language that I've never heard of. That wasn't me, honestly. I didn't even show much interest at all until I was about 17, honestly. Even then, I'd learn a little HTML. Just enough to write a blog post or something like that, but I didn't have any huge fascination with code ... I didn't know what it was, honestly. I was focused on music. But I would say, so much of what I learned from music I feel like has crossed over, weirdly enough. The whole idea of looking for patterns, and shapes, and just the discipline to stick with something that you can't do, and then suddenly you can do it. I feel like that helped me when learning programming, because there's so many things with programming, it's like you just have to sit there for four hours until it clicks in your head. Matt Stauffer: Yeah. Jeffrey Way: I have lots of memories of ... In the early days. I don't do it anymore, but when I was young I'd stay up til 3:00 in the morning just trying to figure something out, because it wouldn't click. Then I love that feeling of all of a sudden, you think, "Oh. I get it." Matt Stauffer: Glorious revelation. Jeffrey Way:"I understand how this works now." There's no shortcut. You just have to sit there for hours until it clicks. It is a great feeling. Matt Stauffer: I had that moment both with object-oriented programming, and unit testing. Obviously I've had much smaller ones, but those were both ones where it took months, and everyone would talk about the thing, and then talk about the thing, and I just didn't get it. Then all of a sudden it was like, "What have I been doing my whole life up until now?" Jeffrey Way: Right. Right. Matt Stauffer: A lot of people who have your story, and by the way, I want to totally affirm the fact that I think that if everybody said, "Hey, I started computers when I was seven." Then it would be discouraging to folks who are just getting into it now. There is plenty of space, and even Mohammed's story a little bit had a little bit of the later as well. There's space for anybody to come in at any age and any time. I think that really the most significant thing is, people in our generation, people in the ... Probably, I don't know exactly, but their late 20s to late 30s probably, somewhere around there. We're kind of old millennials or young Gen Xers or whatever. I feel like a lot of us have a similar story, just because in order to be a full-time programmer right now, it's likely that you got into it earlier. Otherwise you wouldn't have had enough history to be a full-time programmer now, but that's not guaranteed. I mean, you're a full-time programmer and have been for years. It's cool to hear a story that's a little bit different than what we've had. Jeffrey Way: Mm-hmm (affirmative). Matt Stauffer: A lot of people, when they talk about ... Especially since you didn't get to it because you had somebody in the family who's a programmer. You weren't taking classes. A lot of people say, "Well, you know, I played video games, and my clan, I made the clan website," or something. What was it for you? Jeffrey Way: Oh. My parents were starting this ... Because my mom was a writer, they had this idea for a business. I talked about this at the last Laracon. They had this idea for a business where aspiring songwriters could mail in their tapes, and then you'd get actual professionals to review it, and they would actually record themselves. They'd go over the song. They'd give you advice. This was a long time ago, and then they'd send it back. They'd been talking about this idea for a long time, and I remember it was Christmas night, we went out for Chinese food, when I was ... I don't know how old I was. 19 maybe. We were talking about it, and I said, "You know, I could probably build this website." Once again, not even close. I was so arrogant, so ridiculously arrogant. No, I couldn't build the site, but in my head I was like, "You know what? I could get a book, and I'll just figure it out, and I'll build this for you guys." Matt Stauffer: Did you know any back-end programming language at all at that point? Jeffrey Way: No. I knew HTML, and when I created HTML tags, of course they were in all uppercase. Matt Stauffer: Yeah. Yeah. Jeffrey Way: But that's it. That's all I knew, and I was just thinking, "Oh, I'll go get some programming book." Of course when you think, "Okay, I'm going to learn how to build a website. I need a programming book." You're immediately presented with choices that you're not capable of solving. Like, okay, do you get a PHP book, or are you going to learn Visual Basic, or C#? Do I try ASP.net? Matt Stauffer: Classic ASP? Jeffrey Way: It's like, "I don't know what any of these things are. I don't know how to distinguish between a language or a framework, so I have no clue which book to get." I had no clue which book. I had no idea where to start, even remotely, but it was a good adventure, in hindsight. Matt Stauffer: Do you remember what book you got? Jeffrey Way: I'm kind of mad at this. My brother recommended I get an ASP.net book. Matt Stauffer: Oh, yeah. Jeffrey Way: You know what? In hindsight, I feel like that was bad advice, not to throw him under the bus, but I didn't know ... I knew HTML, but no, I didn't. I knew how to make a bold tag, and an italic tag. But I feel like the advice should have been, "Okay, go find some kind of HTML and CSS for Dummies type book. Learn that. Figure out how to create boxes and move things around." That's really step one, before you even get to programming. Matt Stauffer: Yeah. Jeffrey Way: But no, I kind of started with ASP.net, and I was learning Visual Basic, and then all of a sudden I'm trying to build this site for them, but going through the book it's having me build more little programs, like a little calculator. Making a calculator in Visual Basic really has no relevance to how you would construct a website, but that's what I was learning how to do, and it was cool that I was figuring out, "Oh, I'm making a little crappy calculator here." But it didn't get me any closer whatsoever to building this website. Matt Stauffer: Right. Jeffrey Way: Then at some point, I worked in .NET for a little while, but then ... It's been so long. At some point, I switched over to PHP, because it seemed ... I switched over to PHP, and I was kind of learning Ruby too, and I think a lot of people do that, where it's like you're not really sure. You kind of experiment with a handful of different languages, but yeah. Eventually I zeroed in on PHP. You know what? Actually looking back, for that website, it was built in ASP.net, actually. Matt Stauffer: I didn't know that. That's fascinating. Jeffrey Way: Yeah. It was horrible. A horrible site. Matt Stauffer: Yeah. I've written some ASP.net in my days, and it was not exactly the same, but I was a PHP developer who got an internship at an ASP.net site or company, and I was able to do most of what I needed to do. I was building little reporting front-ends for them in PHP, but every once in a while I had to write ASP.net. Walking into ASP.net and Visual Basic not knowing what you're doing, I feel like is not the same as walking into PHP not knowing what you're doing. Jeffrey Way: No. No. Matt Stauffer: Yeah. I can imagine. Jeffrey Way: It was horrible. It's so complicated. Oh my gosh. Still to this day, I feel like my brother told me that just because he worked in the industry too, and maybe he was like, "Oh, this is too hard for you, Jeffrey. Take a look at this book and you'll be scared away." Matt Stauffer: Is he still a programmer? Jeffrey Way: Yeah. He is. He hates it. He hates it. Matt Stauffer: Okay, so you've got both music and programming in the family, then. Jeffrey Way: Yeah. Yeah. Matt Stauffer: My brother is a .NET programmer as well. Jeffrey Way: Oh, he is? Okay. Matt Stauffer: Yeah, but he's the one who originally taught me Vim and PHP, so I can at least credit him for getting me in the right angle. Jeffrey Way: Yeah. Why didn't you stick with .NET? How did you switch to PHP? Matt Stauffer: No, he taught me Vim and PHP. He switched over to .NET later. Jeffrey Way: Oh. Oh, gotcha. Matt Stauffer: I was doing WordPress at the time, so there's no reason for me to switch. Jeffrey Way: Okay. Gotcha. Matt Stauffer: You and Taylor both have .NET in your background. Jeffrey Way: I know. Isn't that funny? Matt Stauffer: Yeah. I did .NET at that job and hated it. I was like, "You guys are doing these crazy compile processes, whereas I can build this web base front-end and PHP to give them all the information they need. That's going to take me three days, and it's going to take you guys three weeks and 15 compiles, and this crazy environment, and I can write it in a text editor and get it online in three days." Jeffrey Way: I know. That was the joy of PHP for me, and I was always amazed because ... Not so much now. It still happens now, but especially way back then, 10 or 15 years ago, PHP just kind of crapped all over. Matt Stauffer: It sure did. Jeffrey Way: People would make fun of it. When I came to that from working with ASP and HP.net, it was really nice. Matt Stauffer: Yeah. Jeffrey Way: I was like, "Oh my god. I can just create an HTML file, I'll add a little PHP above the doc type, and then it actually kind of works." Matt Stauffer: Boom. Dynamic data, right there. Jeffrey Way: It's like, "Holy crap. This is really nice." Matt Stauffer: Yeah. Jeffrey Way: I know people trash that way of programming, but to me it was like, "Wow, this is so much simpler than what I've been doing over here." Matt Stauffer: Yeah, especially if you'd written any ASP. I went from classic ASP to PHP, so at that point, PHP is glorious, because classic ASP was like PHP but not as good, basically. That transition just makes you love PHP. I can understand. You crap on it if it's coming from somewhere else, but there's some places where you come to PHP and it's like the motherland. Jeffrey Way: Yeah. Yeah. Absolutely. Matt Stauffer: Okay. You got into .NET a little bit. You didn't finish the guitar stuff, so you were out on your own. Were you doing freelance web development, or what were you doing kind of to pass the time, or to pay the bills or whatever for those first couple of years? Jeffrey Way: Yeah. I did a number of things. I started doing freelance web development. Once again, just so in over my head. The arrogance of thinking I could take on these projects for people when I had six months of experience, but I created a website called Detached Designs. I had this idea in my head that I was a designer, which couldn't be further from the truth. Matt Stauffer: You and me both. Jeffrey Way: But that's what it started out as. I was like, "Yeah, I'm going to go custom web design for people." I created Craigslist ads. Matt Stauffer: Nice. Jeffrey Way: For some reason, they always got reported as spam. I'm like, "They're not spam, folks. I'm trying to make some money." But anyways, somebody eventually hired me, and one of the first projects I ever did ... I think I talked about this somewhere else. I can't remember, but it was an urn site. Matt Stauffer: What's that? Jeffrey Way: Urn as in like when you die, and you're cremated. Matt Stauffer: Oh, like ceremonial urns. Jeffrey Way: They put you in, yeah, a decorative urn. Matt Stauffer: Yeah, yeah. Wait, is this the one where you were storing the credit card information? Jeffrey Way: No. No, no, no. That was another one. Matt Stauffer: That was later. Jeffrey Way: No. This was just a simple site. Some woman out of her house was selling decorative urns. So morbid. She wanted me to create a website to show them, and people could pick the one they wanted, but once again, that was horrible. Matt Stauffer: Was it dynamic, where she could upload them to CMS, or was it just kind of- Jeffrey Way: No. Matt Stauffer: Yeah, okay. That's what I thought. Just a whole bunch of pictures. Jeffrey Way: Heck no. I was just proud enough to get the images on the page, honestly. Matt Stauffer: Yeah. Jeffrey Way: I had a nice ... I was probably using a table layout or something. Actually, no. I was learning CSS. I don't know. I might have been fancy there. Probably not. Anyways, yeah. Just a crappy little thing. I don't even know if I had pagination. Probably rather than pagination, I just created ... If there were four pages for the urns, I would just create four HTML pages to show them. Matt Stauffer: Yeah. Jeffrey Way: But you know what? That stuff is good for you. Everyone kind of has to go through that process of just building junk. I made a little money off of it, and I think she eventually abandoned it, but that's okay. It's a good memory. Matt Stauffer: I was just going to ask if it was still online. Jeffrey Way: No. I was hoping. I probably could use the Wayback Machine to find it, but I can't even remember what the domain name was. Matt Stauffer: That was your first paid project? Jeffrey Way: Yeah. I think I made $350 bucks off that. I was like, "I'm doing it. I'm making some money here. This is the future. I'm all in." Matt Stauffer: That's amazing. My first one's still online, and I made $200 bucks from it, and it's the same. Jeffrey Way: Oh, yeah? Matt Stauffer: They sell flowers. They sell daylilies, and it's the same thing. It's just daylily, after daylily, after daylily, after daylily. Basic stuff. Tabled it out. Jeffrey Way: Yeah. It's still on ... Well, mine's not still online, so you must have done a much better job. Matt Stauffer: Gotta see if you can find it on the Wayback Machine, though, and we'll put that in the show notes if you can find it. Jeffrey Way: Then I did a handful of things along those couple of ... Maybe a year or two. I did one for a Harvard sorority, believe it or not. I don't know why they contacted me on Nashville Craigslist. They were called the Harvard ... I can't even remember their name. They were almost like an acapella group, like Pitch Perfect. It was something like that, and I made their site. They wanted all this hot pink and black. It cracked me up. The whole site was hot pink and black. Matt Stauffer: Right. Jeffrey Way: That's funny. I'm trying to remember some of the other things I did. It's been so long. It's amazing how quickly that stuff just kind of exits your brain. Matt Stauffer: Yeah. Jeffrey Way: Yeah. Lots of little small stuff like that. Matt Stauffer: During that time, you had decided you weren't going to do music anymore. You were still living in that area, and you were just doing freelance web development, and that was kind of your main thing. Were you working together with any other people? Were you married at this point yet? What else were you doing in your life at that point? Jeffrey Way: Yeah. At this point, I was probably 21, and I was still trying to piece things together, so I didn't feel qualified to try to get a job anywhere as a developer. Even at that time, I was thinking, "Maybe I should go back to school and actually learn this for real." At this point, nope, I wasn't married. I didn't get married until 25, 26. My wife's going to kill me. I can't remember. 2011 is when I got married. Matt Stauffer: As long as you remember the day and the year, you're good. Jeffrey Way: Yeah. Yeah. It's hard to remember the age. I stuck with that for a while, and then I got a pretty big contract, at least for ... I call it "contract" like it's really fancy. I had just got a pretty cool job working for a company called Sirona, and they create all these medical ... I don't even know what it was. It was just all these medical scan machines that they use. Those things that cost like $500,000 a pop. Somehow, once again, they came to me. It's just idiotic why they would take something that big and give it to a stupid kid who didn't know what he was doing, but somehow I was creating their website, and I was even creating those little brochures and mailer. That's where I learned about mailers that they would send out to people. Suddenly, I was doing design work, and I was buying all these design books I could find. Then I was suddenly making a Flash website for them, which was the worst experience I've ever had. Matt Stauffer: That was my next question. Did you ever get into Flash? Jeffrey Way: I got into Flash a little bit, and I hated it, and I was so worried because back then I was thinking, "You know what? This is the future." Just to show you whenever people say, "Where's the web going?" I would have told you back then, "I think Flash is probably the future." Matt Stauffer: Everybody else would, too. Everyone said it all the time. "Flash is the future. Gotta get into Flash." Jeffrey Way: Yeah. It's like, anyone who made just kind of traditional websites, it's like, "You can't even begin to compete." Because of course every single client you might work with, they wanted music in the background, and they wanted, when you hovered over a link, they wanted a little sound effect. Matt Stauffer: Yeah. Jeffrey Way: All that old-school stuff from 2005. But yeah, I was thinking, "I gotta learn this. This is going to be the future." But I hated it. I really don't enjoy that aspect of it whatsoever. Then as it turns out, Flash is almost completely dead at this point. I didn't know that back then. Matt Stauffer: It makes you a little wary of the promises that JavaScript SPAs are going to take over the whole world. It sounds the same as Flash did back then. Jeffrey Way: Mm-hmm (affirmative). Mm-hmm (affirmative). It could be true, as well. I'm not sure about SPAs. SPAs are, on one hand they're so cool and they're so responsive, and then on the other hand, so often they break and they don't work. Matt Stauffer: Yeah. Jeffrey Way: Or they suck up memory, and I don't know. Matt Stauffer: Never let it go. Jeffrey Way: Sometimes I go to those news sites where there are SPAs and everything is fancy, and you click on a news article, and it slides in, and it's like, "Okay, this is cool, but I'm not sure if this is better." Matt Stauffer: Yeah. Jeffrey Way: Anyways, that's a tangent, but yeah, I spent a long time working for Sirona, and that's where I kind of built up a lot of my jack of all trades chops, because I was doing a lot of design work, somehow was piecing it together, and then I was doing web work, and Flash work, so I feel like that gave me this huge crash course in just general design and development, that I'm pretty grateful for. Matt Stauffer: During this time, you weren't playing music anymore. What were your hobbies then? Jeffrey Way: Code. I'm pretty obsessive. Matt Stauffer: You were coding all the time? Jeffrey Way: That was my thing. Like I was saying earlier with guitar, it's like for a lot of people, but for me, it's like if you find the thing, you get hooked. I got the bug, and I was really focused on that. Also, at the time, I dropped out of college, because I was no longer focusing on music. I don't know. College wasn't a great fit for me personally, so I was still thinking, "I need to focus on something." Because you can't just drop out of college and deliver pizza all day. Matt Stauffer: Yeah. Jeffrey Way: I did have the mindset like, "No. I need to be focusing on something." That was my day job, was just during the day, or during the evening I would be reading books every single day. And then during the day, I'd be working on these little projects I got. Then slowly the caliber of project grew and grew, took on some more fancy stuff, got a little more dynamic, so yeah. Interesting. Matt Stauffer: This is super interesting. I did not realize that this was all part of your story, which is why I was excited to interview you. You dropped out, I think you said you were sometime around 20, 21, and you're doing this freelance stuff. What's the next big transition point? I assume it wasn't straight to there from NetTuts, was it? Where did you go from there? Jeffrey Way: Probably for four years, maybe, lots of projects that are just me, or me and one or two other people that we tackled together. But I did that for a long time. Lots of freelance stuff. I started a little business to do that with one or two other people. Then I took on NetTuts as side work, because when I take on these projects, the scary thing is, I wasn't at your level even remotely, so it's like I'd get a project, but there's no guarantee that another project's coming in once that's finished. Matt Stauffer: Oh, yeah. I remember those days. Jeffrey Way: Right. It was always this kind of terrifying thing. Then I started writing freelance articles. What was the site called? I think it's called Freelancer.com. It's under new ownership at this point, but back then it was ... There were these websites dedicated to freelancers, because it was the first time I think, way back then, when it suddenly became a real possibility that you could work on the computer at home. Matt Stauffer: Yeah. Jeffrey Way: Suddenly they had all these freelancers talking about how to do things, and I was starting to write posts for them kind of for fun. I actually went back and read some of them and they're so horrible. One of them was how, if you're a young freelancer, you have to get an edge over the competition. The way I would do it was to make myself available 24 hours a day. It's so embarrassing at this point, but I was like, "Yeah, if they need me at 2:00 in the morning, I'm going to be available." Like some company's ever going to call me at 2:00 in the morning, but that was my idea of how to stand out, because all the other businesses are 9:00 to 5:00, but I'm going to be 2:00 AM to 2:00 PM, and it was so horrible. It was really embarrassing going back to read that. That's the hard thing about your ideas when you're 19 or 20 or 21. On the web, they are going to be there in 20 more years, and people can go back and find all the stupid crap you wrote, or the forum threads you created where you're asking the most silly, simple questions. It all stays. It never goes away. Scares me sometimes. Yeah. I did that for a long time. After Freelancer, the owner of that website put me in contact with Collis, who is the founder of Envato. I talked to him about NetTuts. Once again, I was like, "Okay, I can make an extra $1,000 a month just kind of learning." Because I was already learning every single day, and then just showing people what I'd learned. I did that kind of on the side. I did both of them simultaneously for ... I'm not sure. I can't remember. A year? Then they asked me to run NetTuts, and I took over that, and then suddenly I was doing this whole other thing where I was focusing on education, and building up a platform, which I had never done before. It was interesting. It was fun. Matt Stauffer: Were you still doing any freelance work, or did you transition to just a full-time NetTuts at that point? Jeffrey Way: Well, while I was writing for NetTuts, I was still doing both. But then when I transferred over to ... Actually, no. I managed NetTuts for a while. Maybe a year or two while I was still doing both. Then I started taking on more roles at Envato. Matt Stauffer: Yeah. Jeffrey Way: I was helping out with some of the marketplaces that Envato has, like Graphic River, or Theme Forest, or Code Canyon. I was really starting to focus more in that area, so I stopped doing freelance stuff, which I was very happy about. It's a hard life doing freelance stuff on Craigslist. It's hard work. Hard work. Matt Stauffer: I don't want to talk too much about me, but I did the freelance in that same world, and actually that was part of the reason that I left web for half a decade, or I don't even know however long. For a long time. Jeffrey Way: Oh, yeah? Matt Stauffer: Because I hated freelance. I hated that pressure to always come up with the next work. I just wanted to do good work, right? You're doing good work and convincing more people you can do good work, and finding the people to convince, and worrying about your finances all the time. The promise of just stability is something I don't think that a lot of people kind of speak up about enough. You're just like, "Yeah, there's going to be a paycheck." And you get to just worry about doing the thing you want, and let somebody else worry about getting the work coming in. Jeffrey Way: Yeah. It's so much more stress. If you have a traditional job, you go there 9:00 to 5:00. You get your paycheck. You're good. Once you leave work, you don't think about it again. But when you're freelancing, it's like, yes, you're doing that work, but when you're not working, you're stressing about how you're going to get more work and how you're going to pay next month's rent, because every month on the first, your income goes back to zero. Now you have to figure out, "Okay, how do I pay the rent this month?" And then the next month, goes back to zero. Everything resets. Yeah. It'll wear you down for sure. Matt Stauffer: Yeah, so you transition. You're full-time at NetTuts and Envato. Outside of the things with the other properties, just your work at NetTuts, what was your day to day like at that point? What kind of stuff were you responsible for? Jeffrey Way: Yeah. At NetTuts, my main role was build up. Build up this product. That is prime. NetTuts actually got very big. It makes me sad, because big change did a lot, and I don't think it's as popular anymore. I don't visit it as much anymore, because they kind of merged ... The whole idea, to give you a quick recap, they launched this tutorial site called PSDTuts, which was like Photoshop tutorials, and it was huge. Then they started branching, and they're like, "Maybe we should do this same concept for web development." So they had NetTuts, and then they were like, "Let's do another one. Let's branch out." And they kept branching out over and over, but all this time I was really focused on NetTuts. That's all I cared about, and then they decided, probably correctly, "We need to merge everything into this one cohesive whole where people can learn anything." It makes sense, but then also from my perspective, it's like, "Well, I don't care about Photoshop tutorials or craft tutorials, but now you've merged everything together and I no longer feel like the site is for me." Matt Stauffer: Yeah. Jeffrey Way: But I feel like they had to do it, looking back. They had no choice. They had to do it, because they were maintaining a dozen different tutorial sites, and each one of those were their own WordPress installations, so when you would make a change, I'm pretty sure they were having to make that change 10 different times across each installation. It's horrible. It makes sense that they merged it. Matt Stauffer: If there was a technical consideration, it does make you wonder whether some aspect of multi-site might have ended up being something, so you can make the right business decision without allowing the technology to make the call for you, but who knows what all was involved in that decision. Jeffrey Way: Yeah. Yeah. Yeah. Exactly. Anyways, a lot of my day to day was suddenly I was an editor. I had never done any of this before. So often in my life, I've gotten thrown into things that I wasn't the least bit qualified for. That might be my fault, just saying, "Oh, yeah. I can do that. Of course." When I had no clue what it meant to be an editor, but suddenly I was doing a lot of writing on my own, but also finding writers and working with developers, and figuring out how that plays, and editing their work. Suddenly I was editing the writing of people 20 years older than me, which was crazy. Matt Stauffer: Yeah. Jeffrey Way: One of the coolest things about this, though, I found was that back then I had this idea of my heroes, web developer people I really looked up to, but I'd never contacted them before. Then suddenly I realized, "They're just people exactly like you and me." Matt Stauffer: Yeah. Jeffrey Way: In no way, shape, or form are they actors, celebrity types. They're just regular people, and if you message them, or email them, or Tweet them, they're really friendly, and they'll reply back. That was a very cool thing for me, because it was like, "Oh, I've read all of your books." Matt Stauffer: Right. Jeffrey Way:"I know you. You taught me how to write CSS." Then I contact them, and they're pretty cool. Then suddenly they were writing for NetTuts. I would get them to contribute articles and stuff. Matt Stauffer: That's awesome. Jeffrey Way: Yeah. It was a fun experience. I did that for about five years, and then throughout that whole thing I ended up taking on a bunch of roles at Envato, so I was doing a lot of things, but once again, I just kind of burned out. Matt Stauffer: Yeah. Jeffrey Way: I think it's good as much as you can to sometimes switch to new things, to always have new projects you're working on. I think sometimes if you stick with exactly one project, it starts to wear you down. Matt Stauffer: Yeah. Yeah. I like talking to independent creators and founders to try and figure out, "What are you able to do to ensure that this one thing that you're working on doesn't just kind of burn you out?" One of my buddies, Matt Green, he went from working at a consultancy, we worked at the same consultancy, to now he's the sole tech and web guy at this very large multi-national corporation. On the one hand, he gets to do really creative things. He's on a single project, and he gets ... Every time a new tech comes out, he's like, "Cool. I'll throw it in here if it's useful." He gets to use tech that I might never get to use, because I never had a project that has it, but in the same token, he's on that same project every day for years. I'm always curious, "What does it look like for somebody who's in that kind of a space, to make sure that you don't get bored of working on it?" I know for you, one of the things that you do is redesigns. Obviously also, you've got the content, right? When you cover a new piece of content, maybe you're not applying that content to the Laracasts code base, but you're writing little sample projects and stuff. What, in your day to day with Laracasts, does it look like to help yourself kind of get that shift? Or are you not able to get it, and at one point you're going to shut Laracasts down and we'll all kind of fall into despair? Jeffrey Way: Probably fall into despair. No. I try to have a lot of variety, because I think, once again, Laracasts is my main product, so I do think about that. "What if you burn out on it?" But I think what's helped me a lot is having lots of different things, so it's not just like I focus on the Laracasts code base, and I don't just focus on content for Laracasts, which often is creating demos and stuff. But also, I have open source projects that I maintain. I have lots of different little projects where it keeps me interested, I think. Where I can say, "Okay, today I'm exclusively focusing on Laravel Mix." That is completely different than the type of code I write for Laracasts. Then if I'm done with that, then I will completely focus on some demo or something, which is really fun. Most developers don't get the opportunity to just tinker, because you have a job. You have to get the job done. You don't always have the ability to try out some new language or tool, but Laracasts kind of affords me that, where I can dedicate a day or two a week, or at least a half day a couple times a week, and just tinker around. Try out new stuff, see how it works. Matt Stauffer: Yeah. Jeffrey Way: I'm really fortunate for that. Matt Stauffer: I mean, you could build a whole clone of Facebook and basically call it a part of the development process. Jeffrey Way: Absolutely. Matt Stauffer: Or a whole forum software, or whatever. It's legitimate, too. Honestly, you could build the whole thing and not even make any videos about it, and it would have expanded your brain or given you some perspective that nobody else would have had. Jeffrey Way: Yeah. Yeah, absolutely. Matt Stauffer: That's cool. Jeffrey Way: So often, the content I do for Laracasts is usually the result of actual coding work I'm doing. About a month ago, I implemented this really sweet new Algolia Search into Laracasts, where it's like live on the fly. It's really great. But I was like, "Okay. I have this figured out. Most people don't have it figured out yet, so those are a perfect two or three videos that I can do for the site." I feel like those are the best types of content I can do, because I don't know. It's really hard as a teacher. I know you don't want to focus on this too much, but just real quick. Matt Stauffer: No, it's good. It's good. Jeffrey Way: As a teacher, if you're too separated from the person learning, they can't under ... The things you take for granted, and the things you don't even realize you take for granted, they don't take for granted. You'll use terminology that's just part of your everyday speak, and they don't know what it means. Matt Stauffer: Yeah. Jeffrey Way: It's like you sometimes need to be ... It's that same thing where in school, sometimes the kid sitting next to you can teach a concept way better than the teacher can. Matt Stauffer: Yup. Jeffrey Way: It's that same thing, because they're on your same wavelength, and they know where you're struggling. I always worry the more I figure things out and the better I become, the further separated I am from somebody who's just learning PHP for the first time. Matt Stauffer: Yeah. Jeffrey Way: I have to deal with it. I get this a lot, where somebody's like, "Slow down. You're going too fast." Or other people will say, "You're going too slow. Speed up." Or somebody will say, "You keep using fancy jargon, and I hate that idea of using fancy jargon." And usually it's just, it's the term for this. I'm not trying to show off here. It's just the term for it, but I forget, "Oh, you don't know what that term is." These are the things I always end up thinking about when I create content for Laracasts. It's very hard. It's very hard to walk that line. Matt Stauffer: I've talked with, asked Taylor a lot about what are the steps that he takes to make sure that, as he's updating the documentation, he can put himself in the mindset of a new learner. It sounds like one of the things you're saying is, when you learn something, that's the best time to teach it, right? When you're trying a new thing, because you're closest to the wire of the learner. Are there any other things other than putting yourself in a learner's posture by learning new things, or any other things you find that you do that helps you kind of remember that perspective? Jeffrey Way: That perspective of what makes it easier to learn? Matt Stauffer: Well, yeah, that and just you've been doing this for a long time. Are there relationships you have, or comments, threads that you look at, or postures you take, or mental exercises, or something that helps you keep yourself grounded to the experience of the person who opened up Laracasts for the first time yesterday, versus who's been with you for the last X years? Jeffrey Way: Yeah. Nothing that I could describe, I don't think. It's usually just trying to remind myself to assume ... Don't assume too much. I don't know. I love that phrase, "Explain to me like I'm a five-year-old." There's actually a Reddit group for that that I always read. The whole concept is, "Explain this thing to me like I'm a five-year-old." It'll be anything. It'll be politics, or anything really. I love it, because everyone who replies is very friendly, and they just explain it perfectly. They don't use anything too fancy. They're not trying to show off. They're not trying to make you look stupid. They're just trying to explain this concept to you. That's what I try to do as best as I can, but I'm pretty sure many times I completely fail. Sometimes people will cancel their accounts and just say, "It was way too hard." Matt Stauffer: Yeah. Jeffrey Way: It makes me sad, but that's how it is. With Laracasts, I'm training people who have six months of experience total, and then also working professional developers watch the site too, and the understanding they have about code couldn't be further apart. How do you do a video that appeals to both of them? It's very, very difficult. Matt Stauffer: Yeah. I mean, you do it masterfully, but it's cool to hear that it's an ongoing process of trying to be mindful, and trying to figure it out, and recognizing you're not perfect at it, but you kind of have what you have to give, and that's all there is. Jeffrey Way: Yeah. I try to take the approach of, "This is what I've figured out. Could be right. I'm not trying to say this is the right way. I really hate that idea, but this is what I've figured out at this moment. If I change my mind, I'll let you know, but ..." Matt Stauffer: Yeah. That's cool. We have talked about, you were spending your time in NetTuts while it was NetTuts. While it was NetTuts, I followed it religiously, so I should remember this, but I know it was covering front-end web development and a little bit of design, stuff like that. How much did NetTuts get into the back-end? Jeffrey Way: A decent amount. Once again, for a site like that, you can't just do everything. Because the more you stretch, and it's like, "We're going to cover every element of web development." It's that exact thing again where it's like, "Well now nobody really cares, because there's a one in 20 chance that an article is going to be relevant." Matt Stauffer: Right. Jeffrey Way: We predominantly focused on PHP and then HTML, CSS, JavaScript. But then sometimes, we would branch out to Node and Python, but those were always every once in a while, but you gotta keep the core of a specific type of developer. I definitely learned that from NetTuts. Yeah, we did ... Go ahead. Matt Stauffer: When did you get started doing videos? Jeffrey Way: At NetTuts. No, actually before then. When I launched that little business called Detached Designs, where I was doing my own stuff, even then I would record ... I was learning ASP.net, and there was this guy named Joe Stagner, and on the ASP.net website, he would record videos for learning ASP.net, and it was so beneficial to me. For whatever reason, you either have a visual ... You're either a visual learner, or you're not. I realized when I would watch him, I would learn so much more than reading these books. I started doing the same thing. You could probably track down really old videos of mine where I was teaching ASP.net. Please don't, because they're horrid. They're unbelievably horrible. Matt Stauffer: I gotta find one and put it in the show notes. Jeffrey Way: Please don't, because it's really, really bad. It was probably recorded at like 600 by 400 and really blurry. People forget, we take the idea of a clear code screen cast for granted. It was not easy to do that. YouTube can do that all the time, but way back then, you would upload a screen cast to YouTube, and they would compress it so much that you couldn't read it even at the top quality. It was a serious issue that a lot of people had, unless you could afford to stream at the high quality, but then most people didn't have fast enough bandwidths to watch it. It was an actual thing people had to worry about back then. I was recording these Detached Designs video tutorials on ASP.net. It feels like another world, but that's when I got started. When was that? Maybe 2003? 2004? Right around there. Matt Stauffer: I was going to say, it didn't seem like you had started at NetTuts, because by the time you were doing them there, you seemed really accomplished as a presenter, but I didn't know whether that's because you had been doing it prior, or whether it just comes that naturally to you. Jeffrey Way: I don't know. Maybe a little of both. I think sometimes people give me a little too much credit. I'll see this on Twitter a lot, where somebody will say, "I have a lot more respect for Jeffrey now because I just tried to record a video tutorial, and my gosh is it hard." I think they're thinking I hit record, and then I just fluently go through the whole thing, and then 30 minutes later I hit stop. That's not the way it works. I probably make 50 mistakes over that course, and then I just chop them up during the edit. I think other people think, "If I screw up, I have to start all over and record again." It's like, "No." It's very, very difficult to do that fluently with code. Very, very difficult. Almost impossible. Matt Stauffer: That's so valuable to hear that. I've done some videos before, and when I felt like I had to do it the whole way ... Especially you're talking five, 10, 15 minutes, there's just no way. You could script it, you can practice it 15 times, and you're still going to make mistakes. Then when I first bring somebody on the podcast who's never podcasted before, one of the first disclaimers I have to make is, "Just because you hit the record button doesn't mean you now have to be you're in front of a TV camera live." This isn't live, which means you can just flub it, and you can say, "Oh, you know what? I want to say that again." I'll just edit it out later. That's all possible. You just don't think about that by default. Jeffrey Way: Right. Right. I know. You think you're on camera, doing the weather or something, and you have to get it perfect. Matt Stauffer: Right. Jeffrey Way: Nope. Nope. I make so many mistakes. If you would see my Screenflow program after I'm done editing, there's 100 different cuts. Sometimes I'll say "uh" too much, which I hate. I'm probably doing it here like crazy. I hate that. I always try to edit that out. Little things. If I pause too long. Sometimes you're coding something and I'll be recording, and it won't work. It's like, "Oh. That's supposed to work, and it's failing." Then you'll see two minutes of silence on the video once I'm done, and I just edit that out. Then suddenly you think, "Oh, Jeffrey figured that out in four seconds." No. It took a few minutes to figure out what the problem was. Matt Stauffer: I remember when I first started Twitch streaming, I was just ... I said, "This is an antidote to anybody having any elevated concept of me." Because you'd watch how much of my time is spent reading documentation and Stack Overflowing, and beating my head against a simple typo that everybody who watches the video will notice, but it wasn't in my brain at that moment, and I would go back, and I'm like, "Why am I doing this to myself? Why am I exposing how stupid I am to the whole world?" Jeffrey Way: Yours were good too. There's definitely a charm to that, though, as well. I love to watch ... I wish you would do them more. I know Adam does some. I don't think he's done any recently as well. Matt Stauffer: Yeah. Jeffrey Way: But there's a charm to that approach too, because everyone knows that that's part of it. There's fun watching a person figure something out, like, "Okay, we're going to go to Reddit. We're going to read the documentation. How do I do this?" There's a charm to that as well. It's just for Laracasts I'm trying to keep it a little more condensed. Matt Stauffer: Yeah, yeah. For sure. Jeffrey Way: But I think you need both, actually. Once again, people may watch a video and think I'm way more talented than I am. It's like, "No. I'm piecing things together. You just don't see the part where I went to Reddit." Matt Stauffer: Right. Right. Jeffrey Way: Because something didn't work. Matt Stauffer: That's cool. Jeffrey Way: Not Reddit. Stack Overflow. Matt Stauffer: Yeah, Stack Overflow. Okay. NetTuts, eventually they gathered everything together in one space, and at that point you started feeling like it wasn't something you could buy in on as much. That probably planted a seed in your brain to start moving on to something else. Around this point, I assume that you had made some connection to Laravel, but I remember that for me and a lot of other people, the Jeffrey Way who we've learned to trust over years, giving his really strong backing to Laravel pretty early, was a big part of us being willing to make that jump. Can you tell me a little bit about what your early exposure to Laravel looked like? Jeffrey Way: Yeah. I had left PHP quite a bit at that point, other than one or two lingering projects I had. I was mostly Ruby work. I was doing a lot of Ruby, some Sinatra stuff, some Rails stuff, and it was great. I really enjoyed it. Then I came across Laravel. This would have been right at the end of Laravel 2, maybe. I don't know. The time span between Laravel 1 and Laravel 3 was actually really short. Matt Stauffer: Yeah. Yeah. Jeffrey Way: It's not like Laravel 4 to Laravel 5. Matt Stauffer: We're talking months. Jeffrey Way: Yeah. Months. I think I more or less got in right when he was working on it. I guess he was promoting Laravel 3 at that time, so I was like, "Okay, I'll check this out." And immediately I noticed that the branding was really good, and the design was great. You just didn't see this much back then. People think about it a little more now, but back then it wasn't very good. Suddenly I was like, "Oh, this branding is right on point. The layout is good. I'm reading through the documentation. It's really well thought-out. I'm going to give this a go." I started tinkering around with it, and I was like, "Oh my gosh. This is great. This works really, really well." Matt Stauffer: Nice. Jeffrey Way:"It has a lot of what I like from Sinatra. It has a lot of what I like from Rails." I would love to know how much Taylor experimented with these other frameworks when building Laravel, because my instinct is, he didn't do it that much, but then he must have because Laravel has some of the best components of each of these. It has active record, of course, from Rails. Some of the routing syntax from Sinatra was very similar in Laravel. I kept tinkering with it more, and I started becoming more and more outspoken, and I was participating on the ... There used to be a Laravel forum, a dedicated Laravel.com forum. It doesn't exist anymore, but I was asking a question there and Taylor immediately responded, and he was really nice. It was the first time I ever talked to him, and he said something like, "If you need any help whatsoever, just let me know. Glad to help." I was like, "Oh. This is a really friendly guy. Created a great product. I'm immediately talking to the owner of it. I'm going to give this a go." It just kept getting better and better. The more outspoken I was, because I was still working at NetTuts at that time, I was able to kind of give Laravel a really big push. Suddenly I was doing Laravel tutorials and videos. Matt Stauffer: Yeah. Jeffrey Way: I like to think I really helped Laravel get a push in the early days. Matt Stauffer: Yes. Jeffrey Way: Yeah. It was great. Matt Stauffer: Okay. NetTuts, Laravel. What was the process like of deciding to leave NetTuts, and what was the process like of deciding to found Laracasts, and how connected were the two? Jeffrey Way: Very connected. Too connected, probably, in hindsight. I was getting to the point with Envato where I was feeling that burnout a little bit. I was starting to notice things where it's like I didn't like ... I bet a lot of people have this with their companies, where you start to feel like your opinion isn't actually factoring into decisions. Matt Stauffer: Yup. Jeffrey Way: I think as a manager, you have to be very careful with this, where if you feel if you make a person feel like their opinion isn't really relevant, or you make them feel like, "Okay, thanks for your opinion." In one ear, out the other. I was starting to feel that more and more. Maybe it was just in my head, but I wanted to have more control over the direction of things, and I was starting to get the hint, like, "It's not going to happen." I started thinking, "Well, what if I made my own NetTuts, but it would be focused on Laravel? Because I'm really into Laravel right now. It's great. I'd love to give that a push. I can do that on the side." In my warped head, I was thinking that would be okay, but it's a huge conflict of interest, in hindsight. Matt Stauffer: Right. Jeffrey Way: On the side, I was building up Laracasts while still running NetTuts, and doing all the stuff at Envato. Then at one point, yeah, I launched Laracasts and I kind of had to put in my notice at Envato, because we decided it was very much a conflict of interest, but yeah. They were very, very connected. The big idea for me wasn't just to build Laracasts, it was just to have something where I had more control, and where I felt like my opinion actually mattered, and where I could say, "This is what I want to do." And then suddenly the next week, you're actually working on that. Matt Stauffer: It happens. Yup. Jeffrey Way: At Envato, Envato grew so quickly. By the way, I don't want to shame Envato in the least, because I think Envato is a fantastic company, and what they've done is unbelievable, and they're incredibly generous. Every year, they donate so much money to all of these different causes. I'm saying this more just in working at any business, you sometimes get to a point where you feel like you need a change. "I need a little more say in things. I want to feel like my opinion actually matters." That was kind of the impetus for starting Laracasts. Matt Stauffer: Okay. I can't believe that we're already at time, but we're already at time, but I can't cut it just yet. I've got to figure out what of my many remaining questions I'm going to ask. Just for a fun one, a while back you talked about working four-hour days, and switching up kind of what your relationship to work looked like. You and I joked together a little about how viable that was, but what I love is the idea that the 9 to 5, the working for somebody else, all those things might not be the only way to succeed. But I also always have a lot of caveats from my experience working as a freelancer about just how miserable being a freelancer can be at some times. I think people think, "I don't want to work for myself. I want to start my own company." I always tell them, "If you start your own company, and you have employees, you're going to spend more time managing than doing the thing you want to do." Or the other piece is, "I don't want to work for somebody else. I'll go freelance." Then I talk about all the things we've talked about here. You kind of have a little bit of all these experiences. Now, you don't have full-time employees at Laracasts, so maybe you haven't gotten to that misery part, but it seems like you got the sweet spot where you're not worrying as much about getting the next client. Now, obviously if everybody unsubscribed, there would be a problem, so there's still a concern, but you also have agency and control. Knowing that not everybody is going to go start a Laracasts, but also having said things in the past, you've talked about how 9 to 5 doesn't work for everybody. You've talked about how college doesn't work for everybody. Do you have any advice that you would give to the myriad PHP and Laravel developers who are listening to this right now that might help them explore maybe a little bit less traditional ways of doing our jobs? Jeffrey Way: Sure. It's difficult, right? Because what makes sense for somebody may not make sense for other people. I think some people very much thrived in college, and they consider it one of the greatest decisions they made. Some people I think need that 9 to 5 job. Other people, it doesn't work for them. It's a very difficult thing. It all comes back to personality, which we've talked about. The four-hour workday, for anyone ... Matt's given me a little trash over this. I recorded a podcast a long time ago, right when I had a baby, and I was experimenting with this idea of two hours two times. The idea was, right when my baby was born, for anyone who has kids, it's very hard. It's very hard. Matt Stauffer: It's very hard. Jeffrey Way: Because I ran my own business, it wasn't like I could just say, "Okay, I'm taking three months off." Because if I take three months off, there's nobody there to respond to your support request. I took two weeks off, but then beyond that, I was trying to do a little bit. I was experimenting with this idea of two hours, two times. Of where I would take two hours in the morning, and really focus. No social media, no Telegram, nothing. Just serious focus for a full two hours. It's actually amazing what you can get done in a two-hour span if you're seriously focusing, when most people don't. Most people, you do a little bit and then suddenly we're talking on Telegram, and that's 10 minutes, and you're like, "Oh, god. I gotta get back to work." My idea was doing that two different times, one in the morning and one in the afternoon. My hope was that four hours total, if you really focus, can equal the seven or eight hours that most people do. Matt Stauffer: Right. Jeffrey Way: In hindsight, probably not. Matt Stauffer: But I love it as an experiment. I love the fact that you're asking those questions. Jeffrey Way: Yeah. You know what? I actually did get a lot. It was enough for that period when the baby was born, where I really needed to focus a lot of my energy on the baby, and of course my wife, who had a hard time. It was a good experiment, and I think that's the important thing, is just to ask questions and change things up. The whole idea of a 9 to 5 or a Monday through Friday, somebody invented that not that long ago. Somebody decided, "Oh, this is optimal. We're going to have people do Monday through Friday, eight hours a day." But it was just some guy who thought it up. That doesn't mean that that's the rule. Some companies are now embracing four-day work weeks, where they have Friday, Saturday, Sunday off. Some are trying this idea of still 40 hours, but you do 10 hours a day, four days a week. I like that people are experimenting with different ways, but I even notice some days if I take a short day or something, I feel bad, because I think, "Well, 9 to 5 is the ..." Matt Stauffer: Standard. Jeffrey Way:"It's the standard. It's the responsible adult way, but I stopped at 2:00 and I'm a terrible person." I have to remind myself, "Nope. You do the work that you need to do." It is hard with the 9 to 5 with some people, because it just depends on your job, but sometimes you got most of your work done by 3:00 or 4:00, and then you see workers kind of just hanging for an hour, you know? Matt Stauffer: Yup. Jeffrey Way: They're sneaking social media in, or something like that. Not sneaking, but you know what I mean, right? Matt Stauffer: Yeah. Absolutely. Jeffrey Way: Where it's like, they're filling in the time because they're basically- Matt Stauffer: Their brain is too dead to actually do the work at the end of the day anyway. Jeffrey Way: Right. Matt Stauffer: You're already thinking about the evening. Jeffrey Way: Right. Right. Matt Stauffer: But you're stuck there. Jeffrey Way: But you're stuck there. I hate that too, because it's like, well, it should be if you've done ... Like, we should have enough faith in the people who work for us that if they're done, they got everything they could, then they should go. But there's that thing like, "I gotta wait til 5:00." Or, "I gotta wait til 5:30 before I can go home, even though I was basically done at 4:00." That's a hard thing. I don't know how to deal with it. I just like that people are experimenting with different ways of doing things at this point. Matt Stauffer: Yeah. Yeah. I like that. I mean, I love the idea that the 9 to 5 can get in the way for us to really be present for our families in the ways we want to be, and as someone who's been very vocally in support of the idea that, "Hey, I get up in the morning, I put on my dress clothes, I go to a remote office, not at my house, and I work a 9 to 5, and I come home, even though I don't have to." I own the company and I'm a remote worker, so I don't have to, so I see a lot of value there. I'm very much the type that that works for me, but even so, I still see the moments where I miss something that happened with my son when he comes home from school in the middle of the day or whatever else. The good thing is that I have enough freedom that I just build that into it, and so I think one of the things I've found the most that maybe would go towards, "Hey, if you're working a 9 to 5, maybe one step in Jeffrey's direction is seeing if you can split up the day a little bit." My wife really wanted to go back and take acting classes for a while, so for a while there, every Tuesday and Thursday or something like that, I came home at 10:00 AM and took care of my son for a while while my wife went off to school. She came back home, and then I worked, and then I just worked an extra hour and a half at the end of the day or something. Not only was that cool for her to be able to do that, but actually I found that splitting up the day that way was actually really interesting on my focus. That's why I love what you're talking about. You're like, "Can I actually focus more by doing basically a two-hour Pomodoro twice a day?" Jeffrey Way: Exactly. Matt Stauffer: If anybody hasn't heard about Pomodoro, just go Google "Pomodoro." I'll put it in the show notes. It's that same kind of thinking, of like your brain can't be full focus for eight hours straight. That's what I took the most away from what you were saying, at least with that, is you're just not going to be that productive. Jeffrey Way: Yeah. We're not designed that way. Matt Stauffer: Right. That's cool. All right. Well, my gosh. I can't believe how much longer I could talk, but I've been swearing to try and keep these close to an hour. Are there parts of your story, or your motivation, or your day to day that kind of you feel like we haven't gotten to touch on yet? Jeffrey Way: No. I think we covered most of it, actually. Matt Stauffer: I like it. Jeffrey Way: Short of getting into unrelated things, like politics, which we don't want to do. I think we're good. I think we're good. Matt Stauffer: I will throw out one thing, and you can respond to this or not. I think that Jeffrey is one of my favorite people to talk poltiics with, because he does not put up with partisan bullcrap in either direction. Jeffrey Way: Bullcrap. Matt Stauffer: Yeah. He does have his own opinions, but he's loath to let them be known too much, because he's too busy poking holes in both sides of the partisan, and I like it. I try to be as mid-level as I can be, but as someone who's really interested in social justice and stuff, I will lean a little left at times, and broaching any of those topics in a conversation with Jeffrey, I'm confident that nobody's going to ... He's not going to let me sit there with an unexamined position. I don't know if you want to say anything about that, but I appreciate that. Jeffrey Way: No. I think you and I agree far more than you give us credit for, but- Matt Stauffer: No. We do, but you're a good devil's advocate, if nothing else, right? It's not even that we disagree, but you push things to be examined, and I appreciate that a lot about you. Jeffrey Way: Good. Thank you. I appreciate that. This was fun. I had a lot of fun doing this. Matt Stauffer: Me too. Any shout-outs? Go to Laracasts.com. Go sign up. He's also got a billion other ones. There's Vuecasts.com, and ... Jeffrey Way: It's all the same. I just buy- Matt Stauffer: Yeah. It all ends up at Laracasts. Jeffrey Way: I buy custom domain names for main series that I'm trying to promote. You can go to Vuecasts.com, but it's just going to Laracasts. All you need to remember is Laracasts.com. Check it out. Matt Stauffer: I like it. Jeffrey, this was a ton of fun. I tell this to everybody, and it's true every time. I could talk for another two hours and enjoy it. Jeffrey Way: It's amazing how quickly it goes by. Matt Stauffer: I know. Blowing my mind. Jeffrey, thanks for your time. This is a ton of fun. Jeffrey Way: Thank you, Matt.
Interview: Mohamed Said, first employee of Laravel LLC
An interview with Mohamed Said, Laravel's first employee. Laravel News Interview StackOverflow interview Hurghada, Egypt Cairo, Egypt A sample diving video from Mohamed's instagram Transcription sponsored by LaraJobs Matt Stauffer: Welcome back to the Laravel podcast. This week, I'm talking with Mohamed Said, Laravel's first employee. But he's also a freediver who lives in what looks like a vacation paradise. Stay tuned to learn more! Matt Stauffer: All right, welcome back to the Laravel podcast. I'm not even going to be counting these interviews, who knows which number ... Number fifty-trillion, podcast, episode, season 3, words ... I don't even know. I've got Mohamed Said. Mohamed has done quite a few interviews, because it's really special. He's the first employee of Laravel, and Laravel is the most popular PHP framework. It's got a lot going on for it, and it's kind of like a one-man show. There's this idea of the BDFL, the "Benevolent Dictator For Life", being Taylor Orwell. We both have, first of all, the first non-Taylor person working for Laravel, who is Mohamed, but we also have the first idea where you seen an open-source framework, you're comparing to an Angular and an Ember or someone like that, who just kind of has the BDFL, and then hired an employee. Taylor created Laravel LLC, which is a company named Laravel, and that company has an employee. So, it's a little bit of a different working arrangement, and also, a lot of people hadn't heard of Mohamed when he got hired. He's actually already had an interview on the Laravel News podcast, he's already been interviewed by Stack Overflow. I'm hoping that we're going to be able to cover a little bit more, and a little bit of different things, maybe. I don't want to cover exactly the same territory, but I just wanted to point out -- if you had never heard of Mohamed before, you obviously have never put in an issue or pull request to the Laravel core, because he's really been very active in all those spaces for quite a while, together of course with a team of volunteers. He also writes on Medium, he also develops his own features, he's got a couple of other packages. Mohamed is a man around the Laravel community that has been doing a lot of stuff, so I'm really excited to get to talk to him. Before I start asking you questions, Mohamed, why don't you say hi and just give us the basic picture of who you are and what you're about, when you first meet someone, how do you tell them what you're about and what you're interested in and what you do, and where you're from and anything else? Say whatever you've got to say, and then we'll go from there. Mohamed Said: Okay. First, my name is Mohamed Said. I live in Hurghada, Egypt. Hurghada is a small city on the Red Sea. I work as a web developer at Laravel with Taylor Otwell. I've been working with Taylor for the past year or so, and that's pretty much how I describe myself to listeners about Laravel, but one of the things that I usually mention when I speak with anyone -- that I love to dive, to dive into the ocean. If I am a Laravel developer, I am also a free diver, and that's the two parts of me. That's me. Matt Stauffer: Very cool. I think that when I follow you, the three things I get about you are, I get that you love to dive. I don't know anything about that, so I definitely have some questions for you there. I know that you're married and that you'll often reference your wife. Actually, in one of your interviews, you mention that of the things you tend to do, it's program, dive, and shop with your wife. So I might go somewhere there. Programming, diving, and shopping with your wife. So, you didn't originally live in Hurghada - is Cairo, is that where you were originally, and then once you started working with him you moved to Hurghada, is that how it worked? Mohamed Said: Yeah, I am originally from Cairo. I lived there all my life until one year ago. Cairo is like a group of four large cities that grew up massively to become one large, huge city. So, you kind of find a huge crowd of people on every corner. It became very crowded, and very noisy, so me and a couple of friends, we tried to think like, other options, if we would like to live in a better place, or so. Each one of us picked one of the cities that we would like to move to, and my choice was Hurghada, because I love being around the sea, I love meeting different kinds of people, and the interesting thing about Hurghada is that it is full of foreigners, like tourists and residents who are not from Egypt. That's very interesting for me, because I get to meet people from different nationalities, and I get to make friends from different point of views, and so on. That's why I picked Hurghada, and me and my wife, we traveled to Hurghada for two weeks to test the waters. We really liked it so much, and we decided just to move. Maybe that was December 2016, around a year ago. Matt Stauffer: Okay. I love learning about where people are from, and what they're about. One of the things that I did was I opened up KAYAK for looking up flights, and I just said, you know what, if I were to leave out of Orlando, which is my closest major international airport, and I were to go to Hurghada, what would it take? What it told me was, the affordable option is around one thousand U.S. dollars. That is a multi-stage flight, with going through JFK and, I think, Cairo. It says Hurghada International Airport, but it's obviously not big enough that I could fly directly into it. But, it's a big enough airport that I could basically go out of my next major hub, which is JFK for me, and then over to Cairo, and then over to Hurghada, it would take me about nineteen hours to get there. Have you ever considered -- we'll go lots of different places -- have you ever considered pulling a Michael Durinda and all those other folks, and flying the holy over to U.S. for a Laracon? Is that something that might be in the cards for you one day? Mohamed Said: Yeah, I'd definitely do it. I tried to do that for the past couple of Laracons, but I couldn't really arrange it for myself to fly to the states. But, I will definitely do it if I get the chance. Matt Stauffer: Cool. So, Hurghada -- I love getting context about things -- Hurghada is a touristy, beach city, it's right on the Red Sea. Cairo is a big, metropolitan hub. You said it's four cities that have kind of grown up together, and it's really massive. Hurghada, does it feel very big? Mohamed Said: Hurghada, it's not very big and not very small. You can drive around Hurghada in less than thirty minutes, from the beginning of the city to the end of it, because it's two roads on the sea. If you are driving on the street that is directly on the sea, from the start to the end, you can do it in thirty minutes. Matt Stauffer: Wow. Mohamed Said: So it's not very big and not very small, but it has a lot of different kind of people from different nationalities. That makes it feel even more rich than Cairo. In Cairo, you get to meet a lot of people everywhere, it's very crowded. Hurghada is not as crowded, but with the diversity, it makes it a rich city, not just a small city that you just go and relax. There are a lot of activities, and a lot of people to meet here, and that's why I like it in the first place. Matt Stauffer: It seems like the best of both worlds, where it's both kind of small. There's only around two hundred and fifty thousand people, which, I complain about how small Gainesville is where I live, and the Gainesville metro area is over two hundred and fifty thousand people, but it's also spread out, so it's not super compact. Also, one of the problems with Gainesville is it's hard to get anywhere, and there's not as much of an international vibe, which you just mentioned. So you're getting a small, easily travelable place where the population density isn't too high, you're meeting people from all over, and ... Anybody who's listening to this, just pause for a second and go Google Hurghada, "H-u-r-g-h-a-d-a", and just go to Google images. It's just luxurious, beautiful blue and teal ocean vista after vista, it's just gorgeous. You can also just follow Mohamed on any social media platform, and you'll know. Pretty much all he's doing is just being in a vacation commercial every single day. Every picture you get is just you diving through the most beautiful water I've ever seen, it's kind of unbelievable. Mohamed Said: The water here is very amazing. Matt Stauffer: Hurghada is five hours away from Cairo, so there's a lot of people who are five hours away from just absolutely beautiful vacation destinations. There's a lot of different things that hold us back from doing what you did, pulling up your roots and moving to this beautiful place where you can do these things you want. I want to talk a little bit about some of the things that might have kept you from moving over there. For starters, is your family all still back in Cairo, and if so, has it been hard being so far away from them? Or was that a pretty easy decision to make? Mohamed Said: No, it wasn't easy, because it took us two years to make that move, because all of the family and friends are living in Cairo. Also, I had to be in Cairo for work purposes. I just started working remotely one year before the move. So, we had a lot of attachments in Cairo, either me and my wife, because she used to work at a teaching assistant in the university in Cairo. It took us around two years for us to get ready for the move, and I keep telling my friends, I keep encouraging them to get out of Cairo and try to experience other places, but I know how difficult it can be, so I just hope that people give it a chance and try to move there for a limited amount of time, not just to make the final decision. Just to try it for two weeks or three weeks or so before they can feel good about it, and can sacrifice all of the attachments that they have in Cairo and move to a new city, or it just doesn't worth it. I try to convince people to make the move, but it's not easy. I understand that. Matt Stauffer: When you decided to do that two-week trip -- I think that's a really cool idea, the going somewhere for two weeks to try it out -- were you just living in a hotel, or was it something like an Airbnb, or how were you able to move to a place for a short term? Mohamed Said: We used Airbnb to find a nice apartment. You mentioned that Hurghada is a luxurious city -- it's not. What you see on the Internet is the photos of the hotels and resorts, but actually the city is like a city in Egypt, and we can like it or not, but Egypt is a Third World country. It's not very clean, and not very well taken-care of, but it's definitely a nice, wild place on the sea. That's how I describe it, it's a wild place on the sea. When we moved there for two weeks, we tried to pick an apartment at the heart of the city, not in any of the luxurious areas or places that has lots of hotels and lots of resorts, just a place in the middle of the city itself. Just to know the people, just to know how life is in the city, the actual city, not the touristic place. That was wise, wise enough for us, to understand the actual city, not just the luxurious places if we stayed in a hotel or so. Matt Stauffer: Yeah, and I didn't say Hurghada was beautiful, I said when you look up Google images, it's beautiful, and that's exactly what you pointed out, which is that there's often a difference. The interesting thing is, the more First World it is, the more likely it is that if there is natural beauty, then the cost and also the quality of the places you can live around the beautiful thing, is more necessarily higher. There's not a lot of really, really, really beautiful beaches in the U.S., maybe none, where you can live close enough to the beach that you can walk or maybe drive for five minutes and have a place that you could describe the way you just described Hurghada. Because, if there's a beach, then that means there's -- a beautiful beach, at least -- that means there's incredibly expensive ocean high rises all along the way that are really, really, really, really costly. Anybody who has got access to a beach like that is probably paying quite a premium. I visited Miami very recently, and they're extremely expensive. I'm looking at an Airbnb in Hurghada. Literally the first result that came up, studio with free private beach. It's not a beautiful place, it can fit two people, it's probably a couple hundred square foot. It's seventeen dollars per night. If you compare what that looks like to somewhere in Florida, it's kind of mind-boggling to me. I told you before we started this call, that you have opportunity to just say, you know what, I don't want to discuss that. I'm not going to ask you how much money you're making, but I do want to ask a broader question of, does working for a U.S-based company, did that make it easier to move somewhere like Hurghada? Did that give you a little bit more financial flexibility because you're getting paid a little bit closer to American rates but living at Egyptian costs, or is the cost of living not so different that that made a big impact? Mohamed Said: Yeah, it definitely made a huge difference, like before I started working at Laravel, the decision to move to a different city not having any friends or any family around in case I needed any kind of help, that was terrifying, but the financial security that ... It gives you a feeling of security, that's how you can describe it. That you can afford living in a place like Hurghada... Even for an Egyptian having a normal Egyptian salary, Hurghada is not very expensive. What you see in Airbnb, it's like the price or the cost for foreigners. Matt Stauffer: Got it. Mohamed Said: Everything has two prices, one price for foreigners and other for Egyptians. Matt Stauffer: That's hilarious. (laughs) Mohamed Said: That's not fair, but that's how it ... Matt Stauffer: That's life. Mohamed Said: Because if I have an apartment in Hurghada, and I want to rent it to someone, if I don't rent it to Egyptians and I only put prices for where foreigners can afford, Egyptians won't ever be able to rent my apartment, and it will be empty for most of the year. So, people put prices for everything, even gifts, even in the shops, they put prices in dollars or euros, or the equivalent in Egyptian pounds, dollars, and euros, but if you're an Egyptian and you go and try to buy something, they give you a different price because they know that you can't afford that high price that they give to foreigners and tourists. Yes, Hurghada is a touristic city, but that kind of separation between foreigners and Egyptians, it made it a bit easier for me to make the decision. Like the financial security that I am having from my current job, it made a big difference, I can't deny. Matt Stauffer: You talked a little bit in one of your other interviews, and just for anybody who knows, there's two interviews that I'm referencing. He was interviewed on Laravel News podcast, and he was interviewed on the Stack Overflow blog. I'll link both of those in the show notes. Go take a look at those, because I'm not going to try and cover the same stuff that they were covering there. One of the things that you mentioned was that you had done swimming, and then your trainer pushed you a little bit too hard, and you almost had to stop swimming for a while. What was it that got you back into swimming, after you had that negative experience with it? Mohamed Said: We used to go to the sea every summer, when I was a kid, but seven years or maybe back, my father got sick and he had problems with his business, and he had to shut it down. Matt Stauffer: I'm sorry. Mohamed Said: They were tough years, so we didn't get the chance to go to the sea for a few years, but then when I first got engaged to my wife, we had a trip with her family and I joined them. It was in Hurghada here in a hotel on the beach, and we just got into the sea, and I wanted to impress my fiancée. (laughs) Matt Stauffer: That's awesome. Mohamed Said: So I tried to swim and look cool while swimming, so that she gets impressed. Matt Stauffer: Right. Mohamed Said: That's when I discovered that I need to get back to swimming, and I really like swimming, I really like the sea, and I need to get back to learning how to swim better. That's pretty much how that started. Matt Stauffer: That's cool. When did you make the switch from swimming to realizing that diving was something you were interested in? What was that like? Mohamed Said: Again, my wife was the reason, because she likes to collect seashells. I used to swim and try to dive and bring her seashells from two meters or three meters deep, and then I realized that I love diving. Because when you dive, you get closer to the fish, and get closer to the marine life, and I look cool as well. Matt Stauffer: Yeah, you sure do. That's awesome. Mohamed Said: That's again because of my wife. Matt Stauffer: That's very cool. I don't know what made me think about this, but I started wondering about the languages. I don't know what put that in my brain, but I assume that the common language that everyone speaks and everything -- oh, it's because you mentioned putting things in English and U.S. dollars in the windows -- is Arabic. What was learning English like for you? Was that something that you learned in school, or was it an intentional decision that you made? Do you speak English a lot better than the folks you know, or is your level of fluency pretty common? Mohamed Said: Well, in Egypt everybody learns English in the schools. There are two types of schools, they call the New system or the Experimental system and the Old system. The Old system is Arabic only. They only learn English when they are not very young, but the school I went to, we used to have an English class since I was five or six years old. That really helped a lot. Then, later, I kept watching a lot of T.V. movies, a lot of movies and a lot of T.V. series in English, and listened to music and songs or so. That made me collect a good amount of vocabulary. I know I have a heavy accent, and I'm not as fluent as I am while I'm writing English. I write better than speaking, because I don't get to practice English a lot. But, I think among my folks, we are all on the same level, because we all get to learn English in schools. Matt Stauffer: That's cool. Just, for what it's worth, you don't have a heavy accent. You have an accent, but you don't have a heavy accent. Further, I think there's a difference between an accent and fluency. You are extremely fluent, there is nothing that would suggest that you're having any trouble conveying your words. That often is the difference between either a school system that introduces it really early, or someone who's taken extraordinary efforts to learn the language. So that's really cool to hear that there are schools where they're starting it so early and making it so intensive. I've spoken to a lot of people about the impact that many or most programming things being in English has, and I actually asked for a while, to people, would it be worth me building into the CMS that powers my website, the ability to have a translated version into multiple translations for each of my blog posts. Of course the people that follow me are willing to speak English, because otherwise why follow me on Twitter? So I got a little bit of a biased sample because they all said don't worry, you just need to learn English to program. Have you seen any, or do you have any thoughts, about non-English programming education or anything like that, or are you in the camp that just says, you know what, if you're going to do code, you've got to learn English, that's just a part of the deal? Mohamed Said: I think that if you're going to do code, you'll have to learn English. That's why I keep telling to everyone around, because the problem is, the content of the tutorials and learning content online is all in English. If you choose not to learn English just because you don't like it or you don't think it's very important, you are missing a lot. I'm not saying that people should learn the language because it's the language of the world, and so on. People have different opinions about that around the world, but if you are a programmer, and if you don't want to learn English, you are missing a lot. The number of programmers, and the number of people who have blogs and post videos online who are willing to translate their content, is not that big. So, you definitely need to learn English to have access to all this content online. Matt Stauffer: Speaking of access to the content, I know that one of the things that impacts people's ability to learn programming, especially in our generation where there weren't a lot of resources for programming when we were a little bit younger, is when those resources and the Internet are made available in their country. I think it's a little bit more ubiquitous now than it was ten, twenty years ago. One of the things that you had mentioned was, you'd said something along the lines of, basically, when the internet became widely available in Egypt was when, I think you were twelve or thirteen or something, and you instantly latched onto Flash. You talked a little bit about your journey from Flash to HTML to PHP and WordPress, and so I don't want to double-cover that. What I'm a little more interested in, what was it like culturally to go from what was prior to that -- and I don't know what your level of access to the internet was prior -- to after that. Not even just as a programmer, but just daily life. What was that shift like, how universal and how abrupt was the shift where you felt like you did not, and then later did, have access to the internet? Mohamed Said: Well, before that, you just know people, just limited amount of people around you, and you only get to know other people or other thoughts or other experiences from T.V. The thing about T.V. is that it's all managed, it's not natural. You open a channel, and you see what the channel wants you to see. It was a bit limited, and you don't get to choose what idea you need to follow, you just open the T.V., and you see programs that you must watch, that's the only option you can have. You have to watch these programs in this sequence, and so on. After I got exposed to the Internet and I tested it the first time, actually the first few times I had to open the Internet, my father was there with me and I was sitting beside him, and he opened Yahoo! and told me how to search and write a search term, and how to find information ... Back then, I was interested in maybe animals, like I want to know more about giraffes, I want to know more about elephants, and so on. He taught me how to do search and how to find the information I need. I started getting into this world on my own, and tried to find things that I am interested in, and tried to learn more about it. Back then, there was no YouTube, and not much entertainment as far as I can remember. It wasn't like a tool for entertainment like it is now. It wasn't very, very much full of the videos and the photos like before. All websites were text-based and you just get to know information about a specific topic or so, and that's how I started. But, then I knew about chatting, and I started using Yahoo! Chat, and there was a room for web designers, and I think that this room or this period of my life where I started to chat with people, it made a huge impact on who I am right now. Because when you get to meet people from outside your world or universe, like people from different countries, and they are focused on speaking about a single topic, which is web design. It's not a general chat where everybody's talking about everything, they're just a focused room full of people from different nationalities. I was maybe thirteen or fourteen years old back then, and getting to chat with people who are much, much older than me and much more experienced, I felt like I am not very ... very amateur. I can discuss topics, and I can get into conversations, and I can have my own opinions, and that gave me a kind of confidence that I think many people, especially here in Egypt, lack. They always feel like they are not valuable enough, or not good enough to contribute or not good enough to be able to discuss a certain topic, because maybe it's their first time to ... I don't know, I can't actually explain why people think like it, but it gave me, interacting with people and speaking with them at this young age, it gave me the confidence I need. Matt Stauffer: That's really cool to hear. Let's say, whether through you sending this to all your friends or maybe just the natural reach of this podcast, let's say we got a hundred young Egyptian women and men who are hearing you saying this, and they say, I identify with everything that Mohamed just said. I feel like I don't have anything to contribute, or I don't know how to contribute or whatever. That's not how we want them to feel. That's not how you want them to feel, that's not how I want them to feel, I know it's not how Taylor or other members of the community want them to feel. We want them to feel like they, just like anybody in any other country, whether the U.S. or anywhere else, are welcome and have something to contribute. Is there something you could say to them, or some advice you could give to them, that would help them? That's not just for folks in Egypt, it's for anybody else in a similar country. Let's, for your sake, target people in Egypt, young people in Egypt who feel the same way that you just described. Where they just don't know how to contribute, or that they don't feel like they're good enough or whatever. Can you give them a piece of advice or say something to them, to help them move past that? Mohamed Said: Well, I think that if you are on an online forum where people discuss web development or the area you are interested in, and you just decided or saw a post where you have an answer, or you have a reply, or you have a point of view, and you just write on your keyboard whatever you have in mind. The problem is the click on the post bottom, that's the problem. That's what's stopping everyone. Many people, I know for sure, that they see something in Laravel or any of the other repositories, and they try to contribute or ask a question or require a change or something, and they go all the way until they even open the pull request, but they just don't publish it. They just keep it, or stop at this level. So, my advice or what I want to say, just keep it out there. Nobody will judge you. Even if you have a question, and you think it's stupid, you just have to go into the forums and see how many stupid questions are out there. I myself, I post a lot of stupid questions everywhere. The first few times, when I got hired at Laravel, I thought, I can't be an employee at Laravel and just go to the forums and ask questions about Laravel. That will make me look like I was a misfit, or it was a mistake to hire me. But then, I decided that I'll just go ahead and continue whatever I was doing, and I'll just keep posting questions, and some of these questions are really stupid. Some of them, I can really find the answer myself if I look very deep, but it's just how people are compelled to be. We are built to live together and share what we think, and just interact with each other. So, I just post it, and don't feel embarrassed or anything. Matt Stauffer: That's really great advice, and I really appreciate you sharing that. I think it's an interesting inverse, because I think a lot of people say, well, I don't know what I'm doing, and I don't want to ask a question. But it's funny, because the more your reputation grows, actually, the more you feel you don't have the freedom to ask those questions, just like you mentioned. You felt a lot more free asking questions before you had 'first employee of Laravel' next to your name, and then all of a sudden once you do you now have, 'oh, well I gotta know these things'! I remember when I signed a contract with O'Reilly to write Laravel: Up & Running, the first or one of the first Laravel books with a major tech publisher, I instantly had this feeling that, well, now I gotta do everything on my own, because I can't be seen asking these questions. And it's totally true. I think that not only the best learning, but even some of the best teaching to other people, requires us to start from a place of assuming that where we are is okay, and revealing that that's where we are is not going to hurt us. Because, often, you're ... Not even just learn, you're not capable of teaching something to other people until you reveal the fact that that's something that you just learned. Sometimes you're scared to teach something to someone, because what if they say, oh, duh, everybody knows that! Well, then, you don't share that thing. So, it doesn't just limit you from learning it, it even limits you from helping other people. You mentioned that with the pull requests and stuff. I totally affirm what Mohamed just said, which is we really welcome people to be where they are, and that's okay. I think the biggest thing, if you end up going into the Larachat Slack or Laravel IRC or the GitHub issues, or anything else like that, you'll notice that people with the simplest of questions who are kind and respectful are just helped like crazy, and people with really complicated questions who are trying to show off how much they know, who are disrespectful or unkind, aren't helped so much. It's very much like, if you treat people the way you want to be treated, as long as you're kind and as long as you're respectful, I don't think there's any such thing as a bad question in that context. Let's do a quick break before we change topics. Your Twitter handle. I have always read it as "The M Said", like "The ... M ... Said". Is that actually what it is? What is your Twitter handle and your GitHub handle actually representing? Mohamed Said: Well, my name is Mohamed Said. When I was young, I used to have all my usernames everywhere as "m-s-a-i-d", as "msaid". Then, I don't remember what happened, but for like a year or so, I stopped being interested in the Internet and stuff and I remember closing my accounts or just ignoring them until they got deactivated on their own, and then when I came back again, I tried to register accounts from the start, and the username "msaid" wasn't available, so the second option ... Matt Stauffer: Ah, the worst. Mohamed Said: Yeah! So the second option was "the-M-Said", but I pronounce it as "them-said". Matt Stauffer: That's what I was wondering. (laughs) That was my next question, was, now that I know the source of it, how do you pronounce it? So you pronounce it like it was "them". Mohamed Said: Yeah, "them-said". It's easier this way. Matt Stauffer: Yeah, that's funny. All right. So, again, I don't want to dig too far down this direction, but one of the things that I had mentioned to you before was that when there was a time, probably three to six months prior to when you got hired by Laravel, where you came out of nowhere. Nobody had really heard your name, at least not folks in the U.S. All of a sudden, you were making pull request after pull request after pull request, you were communicating extremely well, you were writing good code, they were extremely useful pull requests. We just kind of said, who is this guy, and where is he coming from? I remember that when Taylor started hiring for the first Laravel employee, one of the things I said was, this Mohamed guy is someone you want to take a look at. It wasn't my recommendation that got you the job or anything like that, but I definitely put a vote in your favor because I was so impressed with how useful your pull requests were, and how good your code was, and how well you were writing them. The way I've kind of thought about it was that you were at a job, you were using Laravel, and I think it was something about collections or paginates or something where you just had a very specific set of needs, and you just ran into situations, and you kind of have the mind to say, well, it doesn't do what I want, so I'm going to write them. Do I have the right story in my head? Is that where all that came from? You basically jumped into a new code-base that was Laravel, you found missing things, and you pull-requested them? Mohamed Said: Yeah, it was basically in the Validator, and I was working on a project where I had to do a lot of array validation, and I just discovered this tiny bug in an edge case, and I thought to myself that I can fix it, I know what went wrong, and I know how the code works internally, so I can fix it. I tried to just make the changes on my vendor's folder, just not doing anything pull requests or something, and I got it to work. I tested it on my code, and it was working. The next step, I saw that it might be useful that these changes, or these fixes that I did, to be published on Laravel so that everyone else can use them, and I just opened GitHub and read about how to open a pull request, and that's how I got my first pull request opened. It was rejected, because it was fixing something, but it was breaking another thing. Matt Stauffer: Right. Mohamed Said: After some time, I opened another pull request maybe the next day, and that one got merged. That's how it started. Matt Stauffer: So those pagination pull requests that you put in, that I watched happen, those weren't just your first pull requests to Laravel. They were your first open source GitHub pull requests ever? Mohamed Said: Yeah, I never contributed to open source before. Laravel is my first project. Matt Stauffer: All right, so there's an example of someone who had never contributed to open source before, never done a GitHub pull request before. From that to working as the first employee of Laravel within under a year if I remember correctly, and if not under a year, very close to it. There's a validation for what Mohamed was saying earlier, about just go do it, because ... Not saying that could be every person listening, but that could be! That could potentially be, you, young listener, who has never contributed to open source, who feels like you don't have the ability to do that. That's a story that could be a part of your story, whether with Laravel or with somebody else, but you need to make that first pull request before that happens. Mohamed Said: I would just go and say, if you have something, or if you have an opinion, if you have an idea, just don't be scared to share it. If you keep it to yourself, nobody is benefited. But if you just share it, it might be useful for someone else. Just let it out there. Matt Stauffer: Yeah, I like that. All right, so we're going to talk a little bit about your work, and your work with Laravel, and all that kind of stuff. A couple easy questions first that a few folks from Titan wanted me to ask you. The first one was, what is your editor of choice? Mohamed Said: PhpStorm. Matt Stauffer: All right. Did you do a transition, like a lot of folks do, where you go Sublime Text to PhpStorm, or was that just how you got started when you started writing PHP? Mohamed Said: Well, I started writing PHP on Front Page, it was Microsoft Front Page. Matt Stauffer: Yes! Oh my gosh, Microsoft Front Page! That's a throwback. Mohamed Said: Yeah. And then I moved to Dreamweaver, to Sublime, and from Sublime to NetBeans to Sublime again, and then to PhpStorm. Currently I use PhpStorm on a regular basis, but I have Sublime opened, I use it for taking screen shots, because the theme there looks cool. Matt Stauffer: (laughs) I love it. So, what is your favorite thing about PhpStorm that makes it more useful to you than Sublime? Mohamed Said: Well, I tried a lot of IDEs before, and I think PhpStorm is the fastest. If you are coming from a background where you are using Sublime for a lot of time, you think that PhpStorm is slow, but it's not. I think it's very fast, and it makes writing good easier with auto completion, and with the many helpers that the software has. I like it because it's fast. It is fast, compared to other IDEs. Don't compare it to Sublime but compare it to other IDEs, and you will find it very fast. Matt Stauffer: Right. So once you've decided you're going to use an IDE, then it becomes the best option. Mohamed Said: Yeah. Matt Stauffer: What is the most important or impactful thing you've learned from working together with Taylor? Mohamed Said: Well, there is something that I didn't learn yet, but I wish at some point I'll start to understand how he works. Being someone like Taylor Otwell, he's very successful in what he does. He did a lot of very interesting projects helping millions of people, and the two projects or the three projects that are getting him income are very successful, and he is doing really great. But, at the same time, he didn't lose motivation. It's very amazing for me. I feel like at some point, if I get a kind of success that I am recognized by a lot of people, and that my projects are being used by a lot of people, and I am doing very well financially, by this time, I think that I will start losing motivation in building other stuff. Like, I'll start just to relax and having something like an early retirement, but Taylor is constantly motivated to do other things. He wants to build other packages, he wants to enhance the existing packages, and he just keeps searching for ideas like new packages and how to enhance the current ones nonstop. That's something I really wish to learn. The thing that I really admire about Taylor and that currently I think I started to learn, is how important is details. Everyone writes code, but Taylor, he doesn't only write code, he writes beautiful code. Something that when you look at, it looks nice, it looks beautiful, it looks readable. These are the details, and he is very, very focused on details as much as he is focused on the core of the thing he is building or the thing he is working on. Matt Stauffer: Yeah, that's a really great point. One of the things that we mentioned working with Taylor, working for Laravel, has allowed you to do, was it made the move to Hurghada a little bit easier. Are there other things that working with Laravel has allowed you to do, either now or maybe that you look forward to in the future, that you think you might not have been able to do had you stayed working for the company you were before? Mohamed Said: Well, basically right now, I think, as I shared, I am most secure financially, in terms of money. But, one of the other perks that I get when I work for Laravel, is that I know a lot of people right now in different countries, so I have that plan with my wife that at some point, when we get a chance, we would love to visit a lot of countries around the world. Now I meet a lot of friends around the world, so it would be really amazing to meet all of these people in person, and get to know their life, and just not to go to the country as a tourist but knowing someone in the country gives you the chance to know the actual life of the country, not the side that tourists see. That's one thing that I find very useful. Matt Stauffer: That's very cool. If, let's say, and God forbid, let's say for some reason, in five years, you didn't work for Laravel. For whatever reason, good or bad. What would be your dream to do, if you were spun off, you were financially stable, let's say you had some savings. Are you the sort where you would want to start a consultancy, would you want to start a product? Would you just say, you know what, I hope that I would be financially stable enough that I could just retire? Outside of the job you have right now, which is really good and I don't want to suggest you leaving or anything. Let's say there was some circumstance that led you to not be working there anymore. What would be the thing that you would pursue, or do you even have anything in mind? Mohamed Said: Well, during the past few months I've been speaking with my wife regarding something like that. Before working at Laravel, I used to consider myself as a mid-level developer. I am not a professional developer, I never worked for a big company or a successful company. All my past employers were small start-ups or companies that have two or three developers or so. So, I always thought that my next level is to try to apply to bigger companies, and try to enhance myself and become a professional developer, or a senior-level developer, and then maybe a team leader. Just the regular ladder of web developer or programmer. But then, suddenly, I find myself working for Laravel, and I always thought that that's something I will reach when I am, maybe over my forties or something. To work for a big name as big as Laravel itself. So, it kind of made me a little bit confused for some time, that what's next for me? What's the next step? I am twenty-eight years old, and I don't really see myself stopping working with Laravel because I love my job very much, and I love being around with all these people. Speaking with them and interacting with them, trying to help and trying to find other ways to add to the community, so on and so forth. I don't see myself leaving this job anytime soon, but the next step, which I hope will be not before at least ten years or so, I think that I am going to try a different profession. Not even programming. The thing is, I love programming, and I've been doing it since I was very young, but moving to a city where a lot of foreigners live, I met a lot of people who just decide for like, two years, I am not going to work. I am going to live on my savings. I've met a couple of these people who just decide for a year or two, just to relax or to enjoy or to experience something different. That idea, at first, was very strange to me. If you are successful at your job and you are moving forward in your career, why would you stop and do something different in the middle of your very fruitful years? But I realized that people, when they do this, when they pause, when they get a break, when they try something different -- when they get back, they are more rich. They think of things in a different way. So, my plan is if at some point, I have to stop working for Laravel, I think that I will try to become a professional free diver. Matt Stauffer: Tell me more about that. Is that instruction? Is it competition? What does it look like to be a professional? Mohamed Said: Well, I think being in competitions is on the map, but I think that I still have a long way to go before I can go to competitions, because it's a very difficult sport and it requires a lot of training. For a free diver to be able to reach to the competition level, he have to be full time training, every day, for a long, long time. Not just ... Matt Stauffer: Wow. Mohamed Said: I go free dive once a week. That's not enough for me to reach a level where I can compete. But definitely, at some point I'd love to get certified and teach people free diving, because I like to teach people stuff. I like to see someone who is not familiar with something and I help him, and in a few months I see him doing great in the area that I try to help him with. I like that feeling, I feel like that's something that everybody likes. I think it's not something special about me. Everyone likes to see the impact of what he does on other people. I think that my next experiment would be something related to free diving. That's pretty much what it ... Matt Stauffer: That's cool. That makes a ton of sense. I mean, a lot of us, even Taylor and Jeffrey and me and Ed, a lot of us have said, what do I want to be doing when I'm forty or when I'm fifty? Do I want to be sitting down writing code? I don't know the answer. For some folks, the answer is yes. Some folks, the answer is no. Some folks, we don't know. Jeffrey and I have often joked about being goat farmers (laughs). Someday down the road. I think a lot of people who are programmers really focus on having ... And they have a higher focus than a lot of other people on having a physically creative hobby. A lot of them do carpentry or woodworking or whatever, because what we do is so much in the mind, it has so little actually practical, concrete application in the physical world, that sometimes we just feel like, I just want to go do something with my hands, and just see the result. Yours isn't exactly that, but it definitely is, it's a real-world, physical, tangible thing that you already love doing, that lines up with your desires of teaching, and stuff like that. I empathize with that so much. I don't live close enough to the water for that to be a thing, and I don't know that I'm as interested in free diving as you are, but the idea of being able to spend every day in the sea sounds pretty great to me. That makes a lot of sense. I got a couple more questions, but we're nearing the end of the interview. One of the things I wanted to ask was, we've talked a little bit about some of the different aspects of what it would look like for people's confidence level of being a programmer in Egypt. We talked a little bit about how coming up into programming might have been a little bit different, coming up into open source, about how some of your international exposure through chatrooms have changed the way you see yourself and see the world a little bit. Are there any things we haven't covered where you can say, here are some factors that make it unique to be a programmer in Egypt, that are different from what you perceive from other folks in the Laravel community, that you would want to share with us? Mohamed Said: I'm sorry, can you rephrase that question? Matt Stauffer: Yeah, yeah. Is there anything we haven't already talked about that is an interesting way that being a programmer in Egypt is different from being a programmer elsewhere, as you kind of see from the people you know? Mohamed Said: Well, I can pretty much say that before 2011, the programming scene in Egypt, it wasn't very fruitful. A lot of people, they favored other professions than programming, but after 2011, the Egyptian Revolution, a lot of changes in the country and one of the things that made programming pretty popular is that a lot of start-ups started in Egypt. And because there was cheap labor, like programmers in Egypt, their salaries were not as high as programmers in Europe -- a lot of companies in Europe, they started companies in Egypt to control the amount of expense they have to pay. So, programming became one of the professions that people look forward to, and everyone is trying to become a programmer. But, then after a few years, the curve changed and the mood changed. Because of the political instability and economic instability, a lot of companies shut down and they just left, and a lot of developers who are really good, they left their country and are now working in Europe or the States. So that leaves the scene here in Egypt as if it was like the past maybe, seven or six years, weren't there. People are starting from the beginning right now. I think that for everyone who was an Egyptian programmer who was looking forward to try to learn more and become a better programmer, I think the lessons learned from people who started early in 2010, 2011, they all have blogs online, and they have blog posts, and they talk about everything. You can just go there and read about. You will find a lot of information on these blog posts that will help you go through the journey even faster. I'm not sure that answers your question or not. Matt Stauffer: Yeah, that's a fantastic answer. Since that change has happened, where it feels like a lot of those companies, and even a lot of the more talented programmers, have left, are you in a place where you have any other programmers in town? Are there even any meet-ups that you can go to, or are you kind of getting all of your community online? Mohamed Said: Well, that might sound depressing, but all my friends during the past seven years, everyone I ever worked with who was a developer, he already left the country. Matt Stauffer: Wow. Mohamed Said: I am the only one from my group of friends who are still in Egypt. It's pretty much very, very rough now. The scene right now is like how it was before that start-up movement appeared in Egypt. Matt Stauffer: Right. That does sound a little depressing. The good thing is, you're living in that beautiful place with your wife, and getting to dive all the time. You have this great online community. I don't want to project this on you, but do you have a priority of seeing Egypt grow back in that direction, or is it like, well if it does, it does, and if it doesn't, it doesn't, and it's not too much of a bother? Mohamed Said: Well, I have mixed thoughts about that. I wake up and I think that I want to help, I want to speak with developers in Egypt and try to... Actually, most of the developers, they don't know me, they don't know I work for Laravel. They are not on Twitter, so I am not that popular here. I wake up and I think that I want to help, I want to speak with people, I want to try to make a meet-up and teach people what I know, and try to start a community, but the next day I wake up and I think that maybe it's something good, but maybe it's not someone like me who can do that. It requires a lot of energy. Yes, a lot of energy. I see Prosper and Neo and what they are doing in Nigeria, it's incredible. These guys are heroes, they are real heroes. It takes a lot of energy for you to speak with people and gather them, and try to start a community. I'm not sure if I can do it, but I definitely help anyone who is willing to do it. I can help them in any way. Matt Stauffer: That's cool. I really want to affirm what you just said, which is you can believe that the thing should happen, and still decide that you're not the person to do it. I feel that sometimes we feel the pressure that, well, it's not happening, and I value it, so maybe I should have to do it. I think that's a recipe for overcommitment and burnout. So, I applaud your wisdom in being able to recognize that even though you want that to happen, you are not necessarily the one who is supposed to be actually running it. Okay, Mohamed, I have one last question for you. As somebody who watches all the issues, all the pull requests, all the documentation, everything else that come into Laravel, is there something, maybe a technical something, but maybe just how to interact with people, that you wish people would know? Is there one main thing that you say, as I watch the issues and pull requests that come into Laravel, I wish everybody knew this one thing? Mohamed Said: I wish everybody reads the full documentation before they even start to call. A lot of people, they open issues and they try to ask questions while everything is already answered in the documentation. The thing is, people don't believe the documentation because they are used to documentation of other projects where things are not very clear, so it's easier to just ask the question on the forums or on the repository. But, for Laravel, the documentation is very, very clear. If you read the documentation, you will find a lot of gems, a lot of great stuff that you can use in your project. I advise everyone to read the documentation from page one to the last page, and they will find themselves knowing a lot of stuff that, even if you are following Laracast, even if you already read Matt Stauffer's book, the documentation is necessary. It's important because it gets updated nearly every week with new features and even warnings about edge cases and no-fixes, things that we are unable to fix. So it's important that people should follow documentation, should read it every once in a while to make sure they are on the same page with the rest of the community. Matt Stauffer: I like that. That's a very good one. I second that too. Not only are the docs always good, but Taylor has done several rounds of extensive review to make them better, clearer, more robust and easier to understand. There's as much work put into documentation, if not more, than into the actual code itself. All right, so we're basically out of time, but before we go I want to ask, are there any things that you wish we had had time to cover, whether it's technical, about Laravel, or things about you that you wish people knew or just that are interesting, that we didn't have the chance to talk about? Mohamed Said: Well, I won't feel tired for hours speaking about free diving. Maybe next time we speak on a podcast, or we meet in person, we speak about free diving a little bit more. Matt Stauffer: It's funny, because every single podcast that I've had, I tried to stop saying it so that's why I've said it a million times, but I think in my head, I could talk about this one subject for hours! I think that several times during each of these interviews, and that was one of them. I do want to ask you one question about that. You put a lot of energy, a lot of time into free diving. Now granted, there are some easy, obvious wins. You're in the sea, it's beautiful, you're seeing ocean life and all this kind of stuff, but I want to hear from your brain, what is the main aspect of free diving that makes it so compelling to you? Mohamed Said: The freedom. What I feel at the top, when you are not in the ocean, there are a lot of rules. You have to take care of how you look in front of people, how you speak, how you move, and sometimes how we think. But down under when you are into the sea, you go blank. Your mind just stop thinking, and you enjoy the freedom that you can. You don't care how you look, you don't care how you move. Even if you are swimming wrong, no one will be there to judge or tell you that you are wrong, and you can pretty much do whatever you want. There's something I really do, if I am upset or I am mad, or I don't feel quite happy. When I dive, I just go down there, maybe ten meters down, and I scream. I let it all out, until there is no air in my lungs any more, and that's the time I come up, but that feeling of being able to do whatever you want, it's freedom. That's the most incredible thing I love about free diving. Matt Stauffer: That's amazing. I'm really glad we at least went five minutes in, because like I said, I agree with you, I'd love to go for hours like that, but I don't know if I would have even begun to understand that that is a part of it because you mention that, and I've never done free diving but I've swum in the ocean, and I remember one time I went lobster hunting and it was just me, digging around and diving around, and you're right, I had no thoughts whatsoever about other people looking at me, or my gait, or my dress, or my anything. Pure focus was on what was around me. You're really right to point that there's not a lot of contexts where that's the case. I think it's probably true at least a little bit anytime we're out in nature, it's one of the reasons why people love mountains and oceans and stuff. That's really fascinating. Thanks for sharing that. Mohamed Said: Yeah, I love it so much. I'd keep speaking about it for hours. Matt Stauffer: Yeah, next time we will do that. Mohamed Said: Okay. Matt Stauffer: So, if people are going to follow you, you are on Medium, you are on GitHub, you are on website, on Twitter, and GitHub, and they're all basically, you said, "them-said" is how you say it. So, "t-h-e-m-s-a-i-d", and pretty much on all those contexts you're there. Are there any other ways people should follow you, or any other projects or anything that you want to shout out? Mohamed Said: Well I am on Twitter, and I like to speak with people, I like to get to know people, so just drop me a line and I'd love to speak with you on any topic. That's the message I want to tell everyone. Matt Stauffer: I love it, that's great. Well, I could talk for hours, but we're definitely hitting time now, so ... Mohamed, thank you so much. Thank you for your time today, thank you for sharing all this stuff with us, thank you for the hard work you put in for the Laravel community. Not just as work, but as your love for helping and teaching people, thank you for contributing that and for being a part of making the Laravel community a better place. Mohamed Said: Thank you Matt for having me, and thank you for this season three of the podcast. I've heard the past three episodes, and they were really amazing. The questions you ask and how people answer, it makes you get to know people themselves, not people as programmers, the persons. So, thank you for this. Matt Stauffer: Well, I'm overjoyed to hear that, and I look forward to hearing when everybody gets to learn about you as well. Mohamed, thank you, it was great talking to you, and I'll talk to you later. Mohamed Said: See you later, Matt.
Interview: J.T. Grimes, lover of puppies and shaver of ungulates
An interview with Laravel woman around town and lover of puppies J.T. Grimes. SPONSOR: Twilio provided J.T. audio recording equipment ❤️ J.T. on twitter Actuary Marco Cantu COBOL Fortran Delphi CompuServe IBM iSeries Zend ZendCon Alan Seiden QCodo Juan Treminio Yak shaving Transcription sponsored by LaraJobs Matt Stauffer: It's time to learn about Miss J.T. Matt's son: It's time to learn about J.T., JST. Matt Stauffer: No, just J.T. Matt's son: J.T. Matt Stauffer: Time to learn about J.T. Matt's son: Time to learn about J.T. Matt Stauffer: Welcome to the third interview of Laravel Podcast, season three. We're going to be talking to J.T. Grimes who has been around the Laravel community and is one of the funniest people in Laravel, but you might not know much about her. Stay tuned. We're going to get started. It's the next episode. This is the third interview of Laravel Podcast season three, so the first one was Taylor Otwell, so Taylor who everyone knows he created Laravel. The second was introducing Neo who a lot of people don't know but within his world he's extremely well-known, so within the Laravel, Nigeria world everyone knows who Neo is. It was kind of a fun little world, way for them to join in to maybe I don't know if the American or whatever space. m This next interview is very interesting and I very intentionally not told anybody who I'm talking to, which is tough because what I wanted to do was go out in Twitter and say, "Hey, who has questions for this person?" But I decided intentionally to wait because I think that this is going to be such a treat for someone who is everywhere but nobody knows anything about her. The interview today is with J.T. Grimes and I actually need to pull up your Twitter profile because one of the things about your Twitter profile, is it a South Park character? J.T. Grimes: Yeah. Matt Stauffer: Almost everybody who interacts with you doesn't even know you look like. The Golden State, we got some Cal going on there, there's South Park, but you're one of those folks like you and Amanda Folsom like nobody unless you've been to a Lericon Conference and had the pleasure of interact with J.T. don't actually know. I guess like at Sunshine PHP or something like, you're actually know what J.T. looks like, but are you wearing the hat right now? J.T. Grimes: I'm wearing a hat. Matt Stauffer: Are wearing a Cal hat? J.T. Grimes: I'm wearing a Cal hat, of course. Matt Stauffer: Is it safe to assume you're always wearing your Cal hat. J.T. Grimes: Sometimes it's a raiders hat but- Matt Stauffer: Okay, fair enough. J.T. Grimes: My hair wants to do this Alfalfa thing all the time, and it's either be seen in public like that or wear a hat- Matt Stauffer: Got it. Got it. J.T. Grimes:... so always the hat. Matt Stauffer: I like it. J.T., can you tell people, say hi to people and tell them who are you in whatever length you want to say, and where do you work and what do you do and what brings you exposure to the Laravel community? J.T. Grimes: I was frankly a little surprised that you wanted to talk to me because I don't see myself as being one of the "She's everywhere" community members. I work for a little insurance company in San Francisco, I've been in the same job for 21 years. Matt Stauffer: Wow. J.T. Grimes: Well the same company. Longer than some of your listeners have been alive. Matt Stauffer: It's true. J.T. Grimes: I never wanted to be a programmer, I was very clear that that was not going to be the direction my life was going in. My mother is a programmer and so I spent all of my teenage years saying, "I'm not going to be like her." I went to school with a degree in Statistics, got a job as an actuary or an actuary trainee. Every job I had they kept trying to make me progress. I kept saying no, no this is so me. Matt Stauffer: The universe. J.T. Grimes: Finally I just had to give in. Matt Stauffer: Actually, I need to pause and do one thing. I said I was going to do this, getting like totally failed. I'm looking at you and I'm seeing a microphone sitting in front your face and that microphone arrived too because Twilio the people at Twilio.com are amazing human beings and they have sponsored us getting good recording equipment to anybody who doesn't have it. I want to say, Twilio, if you need text messages or voicemails or anything like that programmatically Twilio are the bomb, they're freaking amazing people. Greg Baugues is the man so as Ricky, and they sent us stuff over. Okay, thank you, Twilio. We love you, you're great. Okay, now back to my question. When they got you in? J.T. Grimes: Can I throw-? Matt Stauffer: Yeah, go ahead, go ahead. J.T. Grimes: Let me throw in a quick shout out to Twilio. They've just added fax capability. Matt Stauffer: What? J.T. Grimes: Yeah. When you work in insurance and you're in all the economy kind of company you are still sending faxes. Matt Stauffer: Got it, so you actually love, you are using them on a regular then? J.T. Grimes: Oh yeah. Matt Stauffer: Oh man. Good, Twilio. They finally convince you, you're an actuary, you're doing the very, very exciting. Is that like I mean, is it Excel? Are using Excel is an actuary or is there a like more complicated stuff? J.T. Grimes: I know that there are companies who use more complicated stuff. I've always been an Excel user, but it being a data monkey, it comes with data coming in a little bit of analysis going out. Matt Stauffer: I'll ask you more in a second now that you're doing programming there. Originally, when you were first doing that before they can convince you go to programming, was it basically Excel and Access and Spreadsheets and numbers like that? J.T. Grimes: Yeah. Matt Stauffer: Adam often I forget his exact same term would be, basically says like, "What we're doing is all basically just like Excel." He may say it in the inverse anything you could do in programming you do in excel something like that. It seems like a pretty reasonable transition to me and I got to say there's not a lot of people who are, I don't want to say anything about generations but there's not a lot of people who are at least in my generation whose parents are programmers because it's not ... What kind of programming was your mom doing? J.T. Grimes: She started doing Fortran. Matt Stauffer: Okay, that's pretty good. J.T. Grimes: For a local oil company in the late 60s, switched to COBOL and was at Bank of America and a couple of other banks for 40 years. Matt Stauffer: Wow, okay so that's how she got in. When they finally convinced you to be a programmer? What was the task or what was the language? Tell me more about that first time. J.T. Grimes: There were a lot of Excel macros, there was a lot of ... This isn't really programming but I'll just write a program to do this. Matt Stauffer: Got it. J.T. Grimes: There was the first thing I used in a professional capacity was Delphi one. Delphi was visual Pascal the one language Microsoft has never given us the visual version of. Matt Stauffer: Wait a minute. Can I pause you? I know that Visual Basic is the thing, I know that there is visuals. I don't actually know what a visual version of a language is, can you tell me what that means? J.T. Grimes: Generally, when Microsoft uses it, it means that it is designed to build native apps on those. Matt Stauffer: Okay, got it. J.T. Grimes: Visual Basic gives you the tools to make your Windows Forms in all of your screens. Matt Stauffer: But using a programming, so visual means this programming language is meant to build native user interface on it versus whatever else? J.T. Grimes: Right. Matt Stauffer: Okay, so sorry I interrupted you were talking about Pascal and Delphi, a whole bunch of words that I don't understand so I got it like [inaudible 00:06:49] one by one. J.T. Grimes: Pascal is a C like language but very verbose instead of brackets you have begin and end and everything is words instead of symbols, but you've still got pointers, you can still do all the things you can do in C. There was a little bit of Visual Basic, there was a little bit of Perl as little as I could manage. I figured out real quick that if Perl was what it took to be a programmer in this new exciting Internet age it was not for me. Matt Stauffer: How were you learning at this point? What resources were you using to learn these languages? J.T. Grimes: With Delphi, it was books, there may have been a CompuServe forum. Yes, I'm old enough to have used CompuServe forums, but we actually had printed pieces of paper and we would pile them up on our desks, and sometimes we'd use them to lift monitors up as well. Matt Stauffer: I assume you're referencing books when you talk about printed pieces of paper. J.T. Grimes: I think that's what they're called. Matt Stauffer: Yeah, books. Am I allowed to ask? I'm not asking anything about age but just at this moment when you were learning to code and you're at it totally non-determined age, what time period was that because it's CompuServe, so this is early '90s or ...? J.T. Grimes: It would have been the mid '90s. Matt Stauffer: Okay, mid '90s. All right. J.T. Grimes: I mean I've said I've been at my current job for 21 years so I'm sure knowing that. Matt Stauffer: Hey, I'm not, okay so that part makes a little more sense. Yeah, okay, cool. All right, so you were pre-internet teaching yourself the code. I mean a lot of people's stories Neo stories and Taylor story and my story, we're talking about teaching ourselves the code by viewing source on websites. A lot of us didn't get into anything until we got it a PHP and that's how we got into like, whatever. You're teaching yourself A) pre-internet and B) you're teaching yourself like some, I don't know what the term is, it's not hard code but like this is legitimate programming stuff and you're just kind of hacking it through as you went. Did those books really help you or is it a little more just kind of trial and error? J.T. Grimes: There's a lot of trial and error, there is a lot of ... let me try and build a program that does this and learn just enough to do it- Matt Stauffer: Got it. J.T. Grimes:... which is how- Matt Stauffer: Everyone is right. J.T. Grimes: I think everyone has learned for the last 30 years. Just like always, there were a couple of authors and a couple of imprints that were very reliable. This was before O'Reilly had different animals on the coverage of everything. I'm not sure they were even a thing. Matt Stauffer: Do you remember anybody who really kind of stood out as a helpful resource then? J.T. Grimes: Marco Cantu was the guy's name who wrote the best Delphi books, and I can't believe I just pull that name out of my head. That is a brain shell that could have done something useful, but instead- Matt Stauffer: It prepared for this moment right now. J.T. Grimes: Marco Cantu. Exactly. Matt Stauffer: That was we're talking about mid '90s. You learned all those languages, but that's not where you're writing today. What was the next step ... Well actually I don't know. I mean, I assume that because I met you at Lericon and because you basically joke on the whole Laravel community a little bit at a time, that you're writing in at least some pitch piece and web based stuff today, but there's got to be some things that happened between that moment 20 years ago and where you are today. What kind of transitions did you go through? I mean you're staying in the same job, they weren't job transitions, or at least they weren't company transitions. What was next after you started learning? J.T. Grimes: I work for an insurance company and one of the things you have to do is read different kinds of policies. We have algorithms that are built to do the reading. It's a frame building with this kind of roof and this like square footage and, oh you're running a music studio so there are kids in there all the time, so your liability charts goes way up. Somebody has to get all those algorithms into the system, so it's not really programming in a language but it's building algorithms and it's functionally programming. The system we've got to do this in is really cool, I would love to show it off some time but it is in COBOL. Matt Stauffer: Wow. J.T. Grimes: The back end at my insurance company is COBOL, we've got four or five COBOL programmers who are great, who are some of the best programmers I've worked with, which always surprises people. Matt Stauffer: You're saying is not was. You're talking about today. J.T. Grimes: I'm talking about today. The system we're on when life in, I want to say 1990 or '91 and has been in continuous operations since then. There's active development going on along with maintenance. Most of the system has been rewritten in those 25 years, but yeah we were running the same thing, have been running the same thing in COBOL 25 years. It's solid. Matt Stauffer: That's amazing. I've got so many things to ask you but I got to pause you, you're talking about a system running longer than almost anybody listening. Some of them have not even in the life that long. That's silliness aside, I would say there's a very, very, very tiny percentage of people who have been programming as long as that system has been running. You know what things were are fads now. You know the limitations of Laravel, and I want to keep getting back to your story in a minute but I got to stop you there. What could you point to if anything well you say, "You know what that is something that I can learn from this nearly 30 year running code base that we could kind of benefit from today," like what are some of the things that have helped that be so stable? Is it because of COBOL, is because there are great programmers, are there any things systems are structured or practices or attitudes that you could share with us? J.T. Grimes: So the tooling that's in place is terrible. It's awful. We don't have source control. Matt Stauffer: Wow. J.T. Grimes: We don't have a staging server, there is Dev which works as test and there's production because we're running on a mainframe and you can't exactly get a mainframe at everyone's desk. Matt Stauffer: Oh my gosh. J.T. Grimes: There is no virtual machine that emulate an IBM, I think Power I is what they're currently calling the product but basically one of IBM's mainframes. So much of the tooling in the system that's in place is awful, and the only reason that I can think of but we're still running and I need to knock wood because if I did shit someone will kill me. Is that we've had really exceptional people, but beyond that I was looking at our system and I thought, "Here's a great conference talk. If I were not painfully shy and unable to speak in front of people." We, as a financial services kind of thing need to be able to roll back transactions do things out of order, keep track of rebuild the policy from scratch. This is really cool and I don't know anyone who's doing this in PHP and just as I was thinking that, I can't remember what you call it now, CQRS. Matt Stauffer: Yeah, the event sourcing and the command query in response to separation and all that stuff. J.T. Grimes: Event sourcing became a new hotness, and essentially what this is. is event sourcing that we've been doing in COBOL for 30 years. The database design has been super solid if I were going to give people one piece of advice that goes against everything you hear now, get your database design down first. It is the most important part of your system, whatever you're showing, whatever you're making, 90% of it, if you're using Laravel probably 98% of the products you're making are crowd apps. You are reading data and you are writing data, and if the database isn't right you're going to be in a world of hurt. Matt Stauffer: That's really helpful, and I'm going to dig down there a little further, I think that's a great advice from you. I would say, if you've got these really kind of pro programmers that you're working around every single day, get the database right, I mean that's a huge thing. I would say like there's people who have taught me various things like I can look to one person who taught me about simplicity, and I can look to another person who taught me about denormalizing databases, various things that they taught me. When you think about the people in your team who you're so impressed with, are there any specific things where even if they're not sure, well you can say, "You know what, like by working with this person they really made me better at this or at that." J.T. Grimes: I can't think of a specific thing that they've made me better at, but I can tell you that working with them has made me better. I've gotten a lot better at communicating because we don't, once we are on our machines we don't speak the same language at all. We have variables and we have loops and we have, we're accessing the same data, but we have very different terminology for it, and so being able to bridge that has been a really useful skill. Matt Stauffer: Where are your various code base is talking together? Is there shared databases that they're interacting with? Or how are they actually connecting to each other? J.T. Grimes: The main system, the source of all truth is the COBOL, the I series, the Db2 database that's running on there. The AS/400 or the I series who's IBM's current marketing term for it, and when you've been using the same thing for 30 years you call it by its 30-year-old name it happens. It is the source of truth, we have web apps on other servers, public face and servers that talk to it through essentially a homemade API. PHP is one of the only modern languages that runs smoothly on IBM set up, and that's because they've done it partnership with Zend, Zend actually makes an interpreter specifically for running on IBM's mainframes. Matt Stauffer: That's fascinating. I had no idea. J.T. Grimes: ZendCon is coming up. If you're going check out the I series though usually have a day of sessions that are specifically about running PHP on IBM hardware. It's a very different group from who you find in the other sessions, they tend to be in those same sessions together the whole time because your company is paying for you to go learn this one thing that you cannot learn anywhere else. Matt Stauffer: Anywhere else. That's fascinating, because there's just a small subset of people who are actually doing that extremely vital PHP on IBM kind of thing then right? J.T. Grimes: I think so, but it's one of those invisible communities. There are a lot of them out there, but people who aren't doing cutting edge stuff who aren't at startups are probably the bigger part of the PHP communities for folks working for the government, for bank, for anywhere else that's boring. Matt Stauffer: Yeah, well it's so interesting because I hear you say that and I go, "Yeah, I know those people are out there," but again I met you at Lericon and the first thing that doesn't come to my mind is people who are working on applications that have been running for 30 years who you talk about the boring stuff. Even ZendCon, I mean ZendCon like I went to ZendCon a year or two ago, and one of the reasons was because they're really trying to reach out to the non-Zend world, because like I think even just not even talking about PHP on IBM people, I'm just talking about Zend in general, it tends to be relatively disconnected from like the Laravel of the world. You're talking even a further thing within the Zend world. There's this even much smaller subset of people who are the Zend and IBM. This is like a really, I don't want to say it's a niche because I don't know how small it is, but how on earth? You know what, I've got so many questions I was about to ask how they put, I'm jumping ahead of myself. Let's step back a second. Are there any big transitions in the work you're doing between when you first got started, when you first were doing all that kind of work when you were learning COBOL and you're learning the visual stuff Pascal and all that, and what you're doing today because obviously today you're doing at least some web, you're doing some PHP. What was that transition like? How did it take from you to go from there to here? J.T. Grimes: I'm going to correct two things. One, I don't do COBOL. Matt Stauffer: Okay, sorry, I was mixing up all my old language. J.T. Grimes: I understand. I actually advocate for people to learn COBOL, all the COBOL programmers want to retire and there's no one to fill in for them. Matt Stauffer: Wow. J.T. Grimes: You would be surprised at how many financial institutions, other big companies are still running COBOL, and they're doing it for the same reason that my company is, which is two-fold. One, it's incredibly expensive to rewrite everything you've got. Two, once it's been in production for 10, 20, 30 years, it's effectively been tested every way possible. The risk of going to something new, I think Visa still using COBOL. If you are the largest payment processor in the world the risk of rolling out a new system is- Matt Stauffer: Is not worth it. J.T. Grimes:... is mind boggling. Matt Stauffer: You'd rather use a 30-year-old system and keep paying for those old mainframes, and then paying enough money obviously for IBM to keep producing them and for Zend to keep doing those integrations. That's pretty incredible because when you say COBOL like I hear people say, I learn a [inaudible 00:20:41] COBOL and I'm like, "Yeah, 30 years ago. I don't think about today." J.T. Grimes: The jobs were out there, the need is out there because ... and it's not just maintenance, some companies are still doing new development. Mostly it's maintenance but- Matt Stauffer: But we're not talking maintenance at the level of like, "Oh just fix this thing a little bit until we replace it." We're talking about long term maintenance as long as they can keep running on the system kind of maintenance. J.T. Grimes: Well, one of the really big differences about being an enterprise and I'm making air quote when I see that, developer as opposed to somebody who's working for a startup or an agency is that your time horizons are drastically different. We are not looking for something that will keep us going until we get profitable. We have been profitable for 150 years off and on. Matt Stauffer: Geez. J.T. Grimes: The other thing when we talk about rewriting the system is, "Okay, this can be a five to 10-year process. What technology stack would you want to build on that will still be useful, available, not archaic in 10 years?" Five years ago, I would have said, Java, thank goodness we didn't do that but with things changing as quickly as they are it makes it really hard to plan for the long term and much easier to stand pat. Matt Stauffer: It's really interesting. One of the things that we've talked about often and like the Laravel Podcast is that, there's often conflicts between the Laravel world and various people who have a very, very distinctly different mindset, just within the PHP community. I think one of the helpful things that we came to over time is, you know what we're noticing that the differences often are less about people who have different opinions about the way the world should work, because they are different people and it's more because they're in different contexts. I can look at event sourcing for a start-up and you can look at event sourcing for a financial institution, and we can come to a different conclusion about whether or not event sourcing is a wise decision for the products we're working on. If we don't recognize it, it's because we're in a different context we could say, "Well, you like it and it's wasting time," and well you don't like it because you know it's like, "Oh no we just have different needs." Again, in that those conversations first of all it's helpful to recognize that but second of all, we're usually still only talking about web applications built by PHP developers in frameworks written in the last five years. This is so many steps beyond that, that it's just fascinating to me how far out it is. Before I step to my next thing you watch all this happen on Twitter. You are involved in your lobbying, I mean you in yes are two of the funniest people I've ever met in my entire life especially the way you guys interact on Twitter. Do you look at the online conversations of the Laravel crew? Do you look at the Laravel podcast? Do you look at stuff that happens? Do you have anything to share with us? Did you have any outside perspective where we say, "You know what, don't worry about this or focus more on this, or man you all could learn this," or anything like that. J.T. Grimes: I see a lot of people who I think are talking past each other because of what you just said the different contexts. If you're doing Greenfield totally new development, you're going to have a very different set of goals than somebody who's got a system that's been in production for its PHP, so a couple of years, which in PHP sounds like a long time. You're looking at different things. You have a really different experience in terms of maintenance. A question I've taken asking in interviews is, what's the oldest code base you've worked on? What's the longest you've had to maintain a section of code? If you can find somebody who's got a couple of years in, grab them they actually have experience doing maintenance. The other thing is, I am older than a lot of the Laravel community, I have been in the same job for 20 years. My perceptions of other people are going to be colored by that, but it looks to me like the kids today and I take credit for bringing the phrase, "Get off my lawn at Laravel community," but you kids today switch jobs every 18 months, every two years. There isn't that I've been working on the same code base for a long enough to have really absorbed it and taken it all in, and the ownership not just the ownership the experience with it that you get after working at the same place in the same code for a long time is very different from what you get when you're changing often. Matt Stauffer: That's really, really interesting and if I were someone who was a mid-level developer and I maybe been in my job for the last 18 months, do you have one piece of advice just in this little kind of concept that you're talking about in terms of experience with the code base. Is there one good way I could act on what you just shared with me? J.T. Grimes: It's really hard for me to give career advice to anyone else. Matt Stauffer: Fair, that's fair. J.T. Grimes: It's been a long time since I looked for a job, I only know what I'm looking for not what other hiring managers are looking for. Matt Stauffer: Well, let's say maybe not even about switching jobs, would you say ... because one of the things that I took away from what you just said was, maybe consider sticking around a little longer but I don't know if you're actually saying that. Are you? J.T. Grimes: I don't know if I'm saying that either. Matt Stauffer: Okay. J.T. Grimes: For me, a lot of the job satisfaction and I think a lot of the skill that I bring is having really deep business knowledge, knowing all of the contacts. I have worked in insurance longer than I've been a programmer. I know this stuff often better than the users who are giving specs to us. Having that really good context for everything, it sort of it lets me know I'm building the thing that user needs not with the thing the user asked for. I wonder how much people get of that when they're changing jobs often. I think that there is a different kind of job satisfaction you can get from staying with a project for a long time. Matt Stauffer: That's really, really cool. That's really helpful to hear. I've found that I started seeing this a lot in the podcast, but I could talk about this for an hour but let's move on to something else. I was wrong about COBOL, you're not writing COBOL but that was fascinating where we just went down. When did you start doing web based stuff and what does a web based applications look like? Is it facing the customers of the insurance agency and giving them access to data that they previously would have called in for? What kind of stuff do you build there? J.T. Grimes: There's both internal applications and external phasing ones, and what we do is we access either the database or we actually run COBOL programs calling them from PHP. I know I'm not the only person doing this because somebody else built tools to do it, but it feels like that's an easiest thing there is out there. It's one of those things where there are, there's just a very small community of people who you can ask questions of and who know about this stuff. On the one hand, when you run into trouble you'd know who the people are to talk to. On the other hand, when you run into trouble you may literally be the first person to have this. Matt Stauffer: You're not going to stack overflow. How do you even know the folks to talk to about this? J.T. Grimes: I met one of them at Gen Con while he was presenting on the IBM and I stuff, and the single thing, probably the most valuable thing I've ever gotten out of the conference was having breakfast with this guy. I've still got three pages of note from that. Alan [Shaiden 00:29:15] is his name and if anyone else is doing Laravel on the IBM I series, A) hit me up but B) hit up Alan for anything about the I series. Matt Stauffer: All right, so you're not just doing web applications, you're actually using Laravel, so how on earth when you're in this kind of enterprise, a kind of old school system, how you just stumble across Laravel and what attracted you to it versus the other options available to you? J.T. Grimes: I had used CodeIgniter before, and CodeIgniter, the single best thing about it was that if you had a question you could find an answer, either in the docs or in the forums, but somebody knew what needed doing if you had a problem. I also used once or twice a framework called Qcodo, which has since died a very quiet, but the guy who wrote it was a Delphi developer before he got into PHP. The way everything was set up was very familiar to me. You built your web forums in a very sort of Microsoft a Visual Studio kind of way where you said, "Okay, put in a select box here and put a label on it here." It was familiar to me but it was also not the documentation wasn't great and development had clearly slowed down on it by the time I needed something for the last project. I was fiddling with CodeIgniter and it didn't feel good anymore and the way it had when I started with it. I started browsing around what other frameworks are out there, oh this guy is trying this new thing called Laravel and it's on version three. It stuck around for at least three months give it a try. It took a surprisingly long time for Laravel to click for me because I was so used to other frameworks and other ways of doing things, but once it did I found it was just easy to get the stuff that I needed done. Aside from reading the database on Db2 on the IBM mainframe. Even that we've got like now we're actually using Laravel's query builder with a couple of little custom things thrown in to access the database. Matt Stauffer: Wait a minute. Is it the query builder and it's heading like the actual database connection system, or are you using something, are you like layering the query builder on top of a non-database seeking system? How does that actually work? J.T. Grimes: Laravel's query builder wants to connect through PDO and while in theory, you can use PDO to talk to a Db2 system. I've never gotten that to work. Matt Stauffer: Got it. J.T. Grimes: But PHP has built in, thanks to Zend and IBM in their thing, and Db2 function is the same as the old MySQL functions that nobody should be using anymore. What I did was I made basically a connection class that simulated being PDO but was actually calling all the Db2 functions underneath. Matt Stauffer: That's fascinating. J.T. Grimes: You end up being able to use Laravel's query builder, you can use eloquent in theory I haven't actually describe that. Matt Stauffer: Those are my next questions. J.T. Grimes: But there's no reason it couldn't. The only reason I don't use eloquent on the mainframe is that the tool we used to generate COBOL has some very interesting opinions and conventions around it, and none of the file names or table names are useful or readable so they all have to be translated to something else anyhow. Matt Stauffer: Got it, yeah, so at that point trying to force kind of eloquent has opinions and that tool has opinions and reconcile their opinions just doesn't really seem worth it when you could just use that query builder. J.T. Grimes: Exactly. Matt Stauffer: That's cool. You're building applications, so your day-to-day transitioning between a 30-year stable system, on a mainframe to one of the most modern PHP frameworks that there is with just testing and TDD and migrations and sitting at stuff like that, do you feel the burden of a lot of contact switching, or is it all connect together in your brain? J.T. Grimes: Most of it connects together in my brain. The places where I run into problems are where I just don't have the tooling that I want. I don't have access to multiple IBM I series. I can't just spin up a new database, spin up a new instance. I wanted to test my interaction with a program, I need to be very careful to make sure that I am not hitting production data and it's with my setup way easier than it should be. I spend way too much of my time building safeguards for no, no, you don't mean that. Matt Stauffer: That's interesting because we talk often about how a lot of things that have to do with type hinting and a lot of these other things are, well I don't trust the other developers. The stranglehold that you're not allowing developers to do things because you don't trust them. It's interesting because what you're talking about is really well I don't trust myself to not accidentally touch something that would basically lose me a lot of other people their jobs if I completely destroyed everything. What sort of things are you finding yourself reaching for for those safeguards? Is it easy to share some of those? J.T. Grimes: I find myself hard coding addresses to our test system it's like, if you want to hit production on this it's not just changing an environment variable, it's not just telling it, "Oh, we're in staging now, go ahead and hit the staging server." Everything is hard coded to the wrong server until it's time to move it to the right one. Matt Stauffer: That's fascinating. It makes sense, totally though. Until you know the thing is not going to break things, make it like you have to be very explicit and intentional to actually even touch that thing that you don't want to broke in. J.T. Grimes: Yeah, we have a lock on the door to the server room for a reason. This is my server room lock. We have a server room, we have physical hardware it's very exciting. Matt Stauffer: In terms of testing, do you do much of your Laravel code? And if you do, what is it look like to simulate the data that's coming back? Or are you using real data from the staging server? How does that kind of work in your testing? J.T. Grimes: I dreamt of my test and bandwagon a couple of years ago. It has not been that long, it's been longer than for some people. Everybody kind of has this one moment where it clicks in for them. For me, there's a guy named and I'm going to scrape his name, Juan Trimenio, and he wrote a couple of articles on using PHP unit, many got bored and started going off and doing puppet things. Oh that's really cool too, but these three or four articles he wrote are what absolutely clicked for me. Thank you if you're listening. It was what got me to slowly start writing more tests. Once I did that, I found that I was much more confident pushing new code and making new changes because I could tell if I'd broken something. If I broke something and I didn't know then I just wrote a test for it, and now the next time I know. The value became clear. As soon as I thought I was ready to put the code in production and then said, "Oh, I just need to change one little thing and everything blew up." Oh thank goodness, I have these tests. Matt Stauffer: Yeah, the first time a test catches you and you're not, you haven't yet internalized the value that is coming from it. It's like a, I don't know it's like a breath. I don't even know it, it's not a breath of fresh air. It's this amazing moment though. J.T. Grimes: It's magic. Matt Stauffer: Yeah, it's exactly what it feels like you're like, I never had this, this, the responsibility for this thing that breaking always lived in my brain and my shoulders and my stress, and all of a sudden this just magical little creature just came and told me with a little red axe, you just screwed it up. It's really an amazing experience. J.T. Grimes: Finding out that I broke stuff before it hit production was the best thing ever. Matt Stauffer: That's cool. I like that. Okay, so once again, I'm going to talk to you about this for another hour. I'm going to move on. I've got a couple random questions we could talk a little bit more about code and architecture infrastructure, but I want to make sure that we have time to talk about J.T. stuff. You are a shaver of an ungulates. I assume that that is somehow refers to dogs but I intentionally didn't Google it beforehand. What is an ungulate? How do you see it? J.T. Grimes: Ungulates are four legged hoofed mammals. It's a reference to shaving yaks. Matt Stauffer: Oh, I was going to say hoofed. No, okay, your yak shaver. That was an incredibly indirect developer joke way to go. All right, yak shaving, got it. Yak shaving and bikeshedding. Do you bike? J.T. Grimes: I do not. I feel so alone. Matt Stauffer: Because you live in the Bay Area and you don't bike at all? J.T. Grimes: Well I'm part of the PHP community, we don't bike at all. Matt Stauffer: Are you Oakland for life? J.T. Grimes: I am a third generation Oaklander. Matt Stauffer: Wow, that's amazing. I know very little bit about Oakland. Basically my knowledge is I, what was that show that was sent, I think it was sent in Oak, wasn't it? J.T. Grimes: Was it [Shansvanerky 00:39:08]? Was it here? Matt Stauffer: No. Anyway, wherever it was, it was sent some beautiful Bay Area that seemed very rustic but honestly it was probably a multimillion dollar house. I visited Oakland a tiny little bit and I understand the concept of it being kind of like the less quickly gentrifying kind of across the bay cousin of San Francisco. What do you love and hate most about Oakland? J.T. Grimes: What I hate most is that, it's gentrifying much more quickly here. You don't run into that many people from Oakland who are in Oakland, who are from Oakland. Matt Stauffer: Really? That quickly. J.T. Grimes: Yeah. The houses here, the prices have shot from reasonable to insane. There's a lot for sale in my neighborhood and it's people have lived in the neighborhood for a long time who just can't afford not to sell because it's so much money. Matt Stauffer: Right, it's not even the property taxes, it's just when you look at your finances and selling your house could basically pay off your debt or whatever else, you can afford to stay there anymore. J.T. Grimes: Well, I've told my boss a couple of times and they really don't like hearing it. I could sell my house and retire. I couldn't move to Reno and find a crummy little apartment for 400 bucks a month and live up. Matt Stauffer: Never work a day to get a new life. J.T. Grimes: Yeah. Matt Stauffer: Wow. Go ahead. J.T. Grimes: To me that's just insane. Matt Stauffer: Yeah, it makes sense. We all understand why it's gentrifying it's across the way from San Francisco, you got the gentrifying wedge of hipsters and artists who wanted to come in to the rundown place or whatever. Additionally, it's relatively close access and the more it gentrifies the more people feel comfortable stepping in there. Oakland has more going for just than being across the way from San Francisco. What do you love the most about Oakland? J.T. Grimes: It's home. The weather is great. The people are neat. I was going off on a rant and I can do a half hour on how great the Bay Area is. Any time you need that. One thing is that, it's a port city, and port city have so much more interaction with the rest of the world and have since they were founded. In the 1850s, there were days when San Francisco had more Russian fur traders than actual San Franciscans because folks would hit the port and go to town. You end up with communities that are really tolerant of differences who are just used to, you're not like me but that's fine. That is just a wonderful thing if you are like me. Matt Stauffer: Let's talk about like you. If someone had never met you before how would you describe yourself? I know this is something I usually start off with, but what are you about? J.T. Grimes: I'm smart and I'm funny and I like cute things. Matt Stauffer: I can attest to all these things having known you for so many years. Why are you so funny? Do you ever like do comedy or that is your family really funny or does that come from any source other than just your personality? J.T. Grimes: Oh no, it's deep internalized pain. Matt Stauffer: Fair. I believe it. J.T. Grimes: You'll never find anyone who's funny who is not just suffering inside. Matt Stauffer: That was one of the most truest ones, that is so incredibly true. Is that something you've just discovered, or is that something people talk about that? Is that a commonly known thing? J.T. Grimes: I think it's a commonly known thing if you pay attention to it. Matt Stauffer: Got it. J.T. Grimes: Most comics are fairly upfront about that this doesn't come from a place of knock knock joke. Knock knock jokes are just fun. You can't make a living with those, you can't make a living exposing yourself to people with your pain, giving them something that they can relate to from their own lives because nobody's life is easy. It would be great if they were, but everybody's got something. Matt Stauffer: Yeah, that was really deep. J.T. Grimes: I'm sorry, it won't happen again. Matt Stauffer: Thanks for assuring that. J.T. Grimes: No, no, we'll talk about puppies. Matt Stauffer: That's actually next on my list. Tell me about puppies. Tell me about your puppies. Tell me about puppies. J.T. Grimes: Puppies are awesome, puppies are everything that is good in the world. As a teenager, I decided that we could have world peace if we could just make leaders of nations negotiate treaties in a room full of Labrador puppies, and I still believe this is true. Matt Stauffer: I love it. J.T. Grimes: It's really ... Matt Stauffer: Go ahead. J.T. Grimes: It's really hard to plant bomb someone or to screw them in a trade deal when there's a cute little fluffy Labrador trying to nibble on your ear. It's just not going to happen. Matt Stauffer: All right. How many dogs do you have? J.T. Grimes: I just have one. Matt Stauffer: Oh, just one. I figured there's like five run around all a time. J.T. Grimes: Nope, he's a grumpy old man who will not share. Matt Stauffer: Yeah, he would not put up with anybody else infringing his territory. J.T. Grimes: No. Matt Stauffer: That's awesome. We have a companywide, it's not quite stand up because it's 33 minutes long, but every Monday I really gets there and then talks about what you do this weekend and what are you up to. We found over time that eventually there was more cats and also dogs but cats than non-cats there around the way. It ended up being renamed to cat meet up. There's not always a lot of cats up on it but new people joining the company they go, "What? Why is it cat meet up?" Just enjoy the weird, enjoy the fluffy. We just had an interview with someone about a week ago and she's super apologetic, she's like, "I'm so sorry my cat may end up walking directly in front of the camera as we're talking, which it eventually did." I was like, "No, it just means you're going to fit right in around here." J.T. Grimes: Exactly. We asked as part of the interview process what pet do you have, and if you say none, I mean that's not good for getting a callback. Matt Stauffer: That's awesome, so let's talk about interview process. What is your favorite interview question you ask people? J.T. Grimes: What one thing do you absolutely hate about PHP, Laravel, COBOL? Matt Stauffer: [crosstalk 00:45:24]. J.T. Grimes: Yeah. Matt Stauffer: I love that question. It's one of my favorite questions because everyone could talk about the good things. It's when you actually have had real life experience with it, that you can start talking about the things that really bother you. J.T. Grimes: Yeah, that gives you a really good idea of how deep their knowledge is. If they were interviewing for PHP job and they've never really written production code, there are things that they just haven't been burned by it, and they will. If your biggest hang up about PHP is variable order or function naming I'm with you that that's annoying, but that's the first year complain. Matt Stauffer: Totally true. I totally believe you. Are there any signs on a tech interview that are an instant no, instant start, no way, not going to happen. I mean, I'm sure there are some personally if somebody saying some horribly racist things or whatever. Are there any kind of coding or communication style things anything like that, where you just go, when do you see that, that's a definite no. J.T. Grimes: I have a very direct communication style, we try to think will much pressure anyone who follows me on Twitter. I think the only thing that would surprise them is that I've gone this long without coercion. Matt Stauffer: I'm pretty impressed. J.T. Grimes: Sometimes I spend time around kids, I actually can't turn it off. I really value that kind of direct communication style and if I feel like I'm not getting that back, if I feel like someone is sort of coming at things in a roundabout way. I might take it as a lack of confidence in an interview and I might try and draw them out and see if I can get them to be more direct. If it seems like this is really their communication style all the time, I know that, that really, really hard for me to work with. Matt Stauffer: Are you all remote or are you in-person? J.T. Grimes: We are in-person. Matt Stauffer: Okay. I've noticed that indirect communication is even harder when you're remote, but I mean in general just being able to communicate in a certain way is totally necessary for every environment, so I hear you on that for sure. What's the best piece of advice you've ever been given? J.T. Grimes: If you go on a date with someone and they're a bad kisser end it then, because they're not going to get better at anything else. Matt Stauffer: All right. J.T. Grimes: And you can cut that too if you need to. Matt Stauffer: Oh, are you kidding meant? See, Laravel Podcast season three is about the people not the code, so whatever else you got just keep a calm. What's your favorite beverage to drink? J.T. Grimes: Diet 7up, I like my water sweet and sparkly. Matt Stauffer: Wait a minute, diet 7up, not seven ... Is it diet because of your concern about sugar intake or do you prefer the taste or? J.T. Grimes: It started as sugar intake with as much sodas I drank. If it was sugared I could not fit out in my house, but I've gotten so used to the diet soda taste that now when I do drink a real soda it just taste too sweet and weird, and why is my tongue [crosstalk 00:48:29]. Oh it's supposed to, oh dear. Matt Stauffer: Right, got it. Okay, so we're running short on time, and I feel like there's a whole personality person of J.T., J.T. what do you do in your free time? J.T. Grimes: Not as much as I would like, so this is going to set you up for the next podcast with me. Matt Stauffer: Brilliant. J.T. Grimes: I am suffering from burnout really bad right now, I suffer from depression. It can be really hard to just get off the couch during my downtime, when I can exercise, walk the dog, just hang out outside get some sun, read. Right now, not enough in my free time. Matt Stauffer: I hope that I'm not centering myself by saying this, but burnout depression and anxiety are all part of my story as well. Thank you for sharing it because I know that it's not always easy to share. Having kind of been in that place, especially is burnout, I assume that you mean kind of work related burnout? J.T. Grimes: Yeah. Matt Stauffer: One of the things that I've noticed often is that sleep, rest, being outdoors, people, animals, these kind of foundational things are often like a really big part of the things that help people like to start to kind of breathe again. Have you found that there's things outside of those that are also really helpful, or is it really just like centreing in on the simplest beautifulest things and just kind of really staying in those same places is what's most helpful? J.T. Grimes: I had a shrink tell me once that there are three things that are protective against depression, and I have found that there are the three things that help the most. Family and connectedness, family, friends, people, pleasure doing things that you actually enjoy and feelings of accomplishment. That one doesn't seem to be on most people's list, but when you're depressed and it feels like nothing goes right, just small little steps forward just being able to look at something and go, "Hey, I did that. I got the dishes put away. Yes! Yay me!" It is something you can build on and start working with. Matt Stauffer: I know and I don't want to read into your story mind, but I want to see if this goes anywhere for you. For me, one of the hardest parts about chemical depression and depression versus just being sad is that, it's not that there's a thing that happens and you go, "Oh, I'm sad about that thing." People often hear depression, they think sadness about bad things, but it's a lot more kind of ... it's more complicated, it's less directly tied to circumstances and events, and it is a lot harder to reconcile or rectify than just being saddest. Is that an experience you have, and if so, is there anything that you feel like people should understand about that circumstance or that experience or people who are suffering from that, that you want people to be more aware of? J.T. Grimes: I think that depression is a really unfortunate name for this problem. I feel like it is an energy disorder, like when I am depressed for me it comes out as just having almost no energy to do anything. Matt Stauffer: Yeah for sure. J.T. Grimes: The other thing is for me depression doesn't take the form particularly of sadness, so much as kind of a flattening of mood. I'm not sad but it's really hard for me to get happy. I think that I know everyone experiences depression differently if people listening are going, "Well, that's not what it is at all." You're right your thing is your thing, and your thing is real, but I also feel like those are pretty common ways to experience depression. If you're dealing with someone who struggles with depression trying to cure them up and make them not sad does not address the, they have no energy or their mood is flat. Matt Stauffer: Acknowledging that everyone's experience of depression is different, what does it look like for someone to be a good friend to J.T. when she's experiencing these things? J.T. Grimes: For me, the biggest thing is understanding and helping me to manage my energy level. I will try and schedule things early in the week because I know that I recharged over the weekend and then as the week goes on my energy level drops and drops and drops and drops. If you invite me to something on a Friday or a Saturday there's no change I'm going to do it. I might agree to do it, there's no chance it's going to happen. First, I need you to not hold against me that I am bailing out because I can't do it, but I need you to understand what I can and can't do and not push too hard for the things I can't do. Sometimes push a little bit for the things that maybe I can. Matt Stauffer: Yeah, which is sounds like the foundational core of this, it is appreciating you not just for the presence you bring or that comedy you bring to a situation but for the person you are. Also, knowing you deeply and well enough to know those, I don't want to say idiosyncrasies but the ways that you uniquely experience, the difficulties in the places you should and should not be put. Everyone just like said, everyone has an experience of the same which means the whole Monday versus Friday thing is probably not the case for somebody else. Someone can't just say, "Well, I heard this on a podcast once and so therefore my sister depression or my brother depression something like that, I'm not going to treat him this way," like no you know the person deeply and you know in their words and their experiences what that looks like. I love you saying that, but now that brings my next question that requires you to have a level of self-awareness and willingness to describe it. First of all to the friends around you, but right now tens of thousands of people. What is it look like to get to the place where you're comfortable, you're self-aware enough and you're comfortable with sharing it? J.T. Grimes: Well, first I didn't know tens of thousands of people were going to be listening, so now just if you could raise everything that would be great. Matt Stauffer: Just raise everything, yeah. J.T. Grimes: For me, I don't want to go off on too big a tangent here but we're going to go off on a bit of one. Matt Stauffer: Let's do it. J.T. Grimes: I am gay. I prefer that term to lesbian because lesbian sounds like a diagnosis and gay sounds fun. Matt Stauffer: I love it. J.T. Grimes: But I came out in the Bay Area in the early '90s and had a really easy time of it relatively speaking. I didn't lose family, I didn't lose friends, I didn't lose my job. Everybody was either okay with it or not great with it but not going to say anything, which in the early '90s- Matt Stauffer: That's a win. J.T. Grimes:... was an amazing. The reason I was able to do that is because other people had done the hard work first, other people had come out and had lost their jobs, had lost their families. By the time, I came along everybody I knew everybody living in the Bay Area already knew gay people, I was not some demon freak evil sent from ... It was just another gay person. For me knowing that knowing other people coming out and talking about their experience made it easier for me, makes me feel not necessarily obliged, but it lets me know the value of talking about it when we come to my depression. I can do the heavy lifting for someone else. I can be out about these are the things I struggle with, this is how I deal with it. Morley Safer, I think it was Morley Safer, man I'm old, was one of the hosts on 60 Minutes, and I remember him saying you know essentially coming out and saying he was on [talk show 00:56:51] and being at home watching it go and, "Hey, that's the same thing I'm on. I could be on 60 minute." Being able to see other people who share the same experience as you and seeing that it is not necessarily that debilitating, seeing that there's hope, that there is hope is the biggest thing. It's huge. Matt Stauffer: Well, for those listening you could be a guest or a host on Laravel Podcast with depression. It is possible. Thanks J.T. it's really helpful to hear that, and so I'm going to dig a little further in this again with those spaces where you just, you got to say for it. The PHP community if you compare it against for example the Ruby community, or the Javascript through CSS communities, it's a little bit more monocultural. It's a little bit more old school. Especially, like the SaaS community and the Ruby communities are extremely intentionally and thoughtfully and loudly progressive. I wouldn't use those terms to describe the PHP community, and not to say that we're in a repressive horrible place. Do you have any reflections about, or thoughts about, or experiences you want to share, or warnings for encouragements for the PHP community in particular and also Laravel about ways that ... I don't want to prescribe anything else. Do you have anything to share or say? J.T. Grimes: I come from a place of privilege not just as a white person but as a person who owns my own home and has valuable skills that people will pay for. It puts me in a really good place to tell not just my employers but really anyone else, where they can shove anything that they have about me. That's really freeing and it makes me not care if the PHP community is less, is more conservative maybe than I might like. Then it would be if I ran the world. If I ran the world we would all be happy little liberals running around but it's not my world, very sad. I come from a place where if somebody doesn't agree with me, if somebody doesn't like me, if somebody's opinions are different from mine I'm happy to talk to them for a while, but I don't care. I don't care that you don't agree, I don't care that you don't like me. I have a dog. My dog likes me. Matt Stauffer: Your dog loves you, [crosstalk 00:59:32]. J.T. Grimes: My dog does love me. Matt Stauffer: Cool, now that makes sense. J.T. Grimes: I can't change the community except by being a part of it and being me publicly, reasonably publicly. I can tell you that there are a gay Laravel developers I know this because I am one. I can tell you that there are women Laravel developers. I know this because I am one. I can't speak to things that I'm not, but I would tell people that there are enough of us who will welcome you whatever you bring. Matt Stauffer: I love that and when I push you about that is, because I know you well enough to know that when you say whatever you bring you don't mean whatever non-white, non-male, non-liberal thing you bring. You mean whatever you bring and I think that one of the things I love about that is, what I want to hear from people is, you can be just as conservative as you want as long as you're welcoming people. You can just be as liberal as you want just as long as you're welcoming people. I don't want to go too far down this road, but one of the things that I've noticed is that some communities go, I think so far in the intentionally progressive direction that they're unwelcoming to conservatives. That's a frustrating thing as well because if we're in a place where someone who may have a different viewpoint is not welcome, who's not mistreating people. They're not treating people poorly because their viewpoint they're just having different viewpoint, then it doesn't matter which direction the difference is coming from, you're still making people not welcome. That statement you said at the end there whatever you have to bring, whoever you are, you're welcome here. I think that that is a really ... I mean I know I'm making a small thing sound like a big thing, but in some ways it is a big thing. That's a beautiful message. All right. We are pretty late on the call. I'm trying to look at a couple questions that I cued up. Let me see if I got anything else. Is there anything you want to talk about? Anything you wish we had covered? Anything you want to share? Anything you want to plug? J.T. Grimes: Hyenas are really cool and I can do 20 minutes on how awesome hyenas are. Matt Stauffer: I feel like you need a podcast. J.T. Grimes: Possibly. Matt Stauffer: I would listen to it. Can you give me like that 30 second version of why hyenas are really cool. J.T. Grimes: Hyenas are a matriarchy, they are a pack hunter. Most of the time in the nature specials where you see the lion sitting with the kill and the hyenas skulking around. The hyenas killed it and the lion has bullied them away and taken their food. Hyenas poop white because they crunch up the bones of their prey. Matt Stauffer: And get all the them in and out. J.T. Grimes: Yeah, and as those bones come out you get white poo. Matt Stauffer: Now, is that exciting because they're so smart that they're getting them mirror out, or is it literally just because they are white poo? Is that mean like the excitement there? J.T. Grimes: It's because they can crunch up the bones- Matt Stauffer: That's pretty bold. J.T. Grimes:... of their prey. Matt Stauffer: Yeah, that's true. My entire exposure to hyenas has been Lion King. I got to be honest. J.T. Grimes: You have two young kids so you know Lion King backwards and forwards and upside down. Matt Stauffer: The funny thing there is actually my kids are, my daughters too young for that stuff. My son is extremely emotionally sensitive and so movies where bad things happen he really doesn't like. I mean imagine Disney movies, what Disney movie doesn't start out with some family member dying, so Lion King, it took us really long. He still hasn't seen what's the one of the big old giant inflated white guy that I want to call them Big ... J.T. Grimes: Big something- Matt Stauffer: Yeah, Big Hero 6. J.T. Grimes:... Big Hero 6. Matt Stauffer: It's a brilliant movie but I can't see it because my son see it yet because somebody dies at the beginning. So Lion King he's seen all of once, but now that he's seen it which was very recently. Now, you're right I will hear it 10,000 times. Anyway J.T., I keep saying this to people I could talk for hours. You should talk for hours you should get that podcast. I will listen to it. I'll plug it to everybody, but until then. Thank you so much. People want to follow you on Twitter it's jt_grimes. J.T. Grimes. Just look for Cal everything and the little cartoon character. It has been an absolute pleasure talking to you and I thank you so much for your time. J.T. Grimes: Thank you, Matt. It's been a pleasure.
Interview: Neo Ighodaro, co-founder of Laravel Nigeria and CTO at hotels.ng
An interview with Neo Ighodaro, co-founder of Laravel Nigeria and CTO of hotels.ng Notes: Neo's Earliest drawings Laravel Nigeria Hotels.ng Building the Laravel Nigeria Community With Over 200 People Attending the First Meetup Neo speaking at Laravel Nigeria - Deploying Your Laravel Application Lagos CreativityKills Greymatter Mark Essien, founder of Hotels.ng FlashDP Kohana framework Prosper Otemuyiwa ForLoop Neo in a black hoodie Transcription sponsored by Laravel News Matt Stauffer: Welcome back to Laravel Podcast, season three. This is the second interview, episode three, where we're going to be talking to Neo Ighodaro, big man around town in Laravel Nigeria. Stay tuned. All right. Welcome back to Laravel Podcast! I've got to figure out how to number these things because technically, this is episode three because the first one was a preview, but that confused a lot of people, so welcome back to the second interview of season three of the Laravel Podcast. I have my actually relatively recent friend with me. His name's Neo, and I've been pronouncing it Ighodaro the whole time. Is that actually how to say it? How do you say your name? Say it, not me saying it. Neo Ighodaro: Yeah, you're actually saying it correctly. Matt Stauffer: Could you say it, though? I want to hear you say it. Neo Ighodaro: Okay. Natively, the "g" is silent, so it's more like I-ho-da-ro, but a lot of people call it Ighodaro and I kind of feel more comfortable with Ighodaro because it sounds better, in my opinion. Matt Stauffer: So, if I tried to say it without the "g," you'd actually prefer I say it the way I just said it? Neo Ighodaro: With the "g." Matt Stauffer: Okay. I have some friends.. one of my friends whose name is Al-bear-to ... I don't even know the Spanish pronunciation. Neo Ighodaro: Alberto. Matt Stauffer: I would try to learn how to say it, right? "Al-bear-to." He's like no, no, no. Just call me Alberto (pronounced like an American) and I was like, "But that's not your name," and we had kind of this big back and forth and what he ended up saying was, "When an English-speaking person says it in an English sentence, I prefer it to be the English pronunciation, and then when a Spanish-speaking person says it in a Spanish sentence, I prefer it to be the Spanish pronunciation." I've never heard anybody say that before, because I'm always like, "I don't care. I want to pronounce your name the right way," but for me, more important than the right way is what you want, so I'm here. I'm with you. Neo Ighodaro. It’s fantastic to have you on. If anybody hasn't heard about Neo before, the way that he has most primarily been known in the Laravel world is because he is one of the three organizers. I don't know ... who's the founder? Are all three of you the founders, what are you the founder and now three of the organizers? How does that work? Neo Ighodaro: I and Prosper basically are the founders, so we just got together and started it. We decided to get people on board, so Lynda was the third person. Now, we have a couple of other people who are silent organizers, but they help out every single time we have a Meetup. Matt Stauffer: Okay, and by the way, I didn't actually finish my sentence before I asked you one because I interrupt myself. The "it" that Neo and I are talking about is Laravel Nigeria, which is this kind of Meetup, but it's kind of a conference, because it's as big as all the other Laravel conferences, even though they're calling it a "Meetup," but people are traveling from five hours away. It's a really big deal, so we'll talk about that maybe a little bit later. But what I told Neo beforehand was, "This is not actually about that Meetup. This is not actually about you being the CTO of a big tech company. What this really is about is knowing you as a person and what you're about," and if anybody listened to the Taylor interview I did before, we didn't talk so much about Laravel. We talked for a little bit about just kind of Taylor and where he comes from, so maybe we'll down the road there, but the tiniest little bit of context, he's one of the two founders. He's one of the three formal organizers, and there's also some silent organizers of Laravel Nigeria. If you haven't looked it up, I'll put a link to a write-up that he did in the show notes, but you're just seeing hundreds and hundreds and hundreds of people once every couple months come together and teach and learn. There's actually a couple of your talks that are online, so I'll make sure to link a couple of those that I think Pusher's hosting. You can hear him speak. You can see what he's organizing. He's the CTO of Hotels.ng, which is a really big tech company out of Nigeria and y'all are in Lagos, right? Ah, pronunciation. Neo Ighodaro: We're in Lagos. Matt Stauffer: More of them. I've been saying "lay-goes" like "go," but then last night, I looked it up and they said "lay-guhs," not "goes", so is that another one? Neo Ighodaro: Exactly. Matt Stauffer: Oh, I'm murdering these things. Neo Ighodaro: Lay-gas, yeah. Matt Stauffer: I also, several times when we were first talking, I would refer to Lagos as if it were only a city, not knowing it was both a city and a state, so it's kind of like a New York, New York thing, right? Like New York is both a city and state, Lagos is also a city and a state. Now I know these things. Neo Ighodaro: Yes. Matt Stauffer: The tiniest bit of context, and I want you to teach me a little more, because basically over the last week, I've been Wikipedia-ing all these things, is that Nigeria's the biggest economy in Africa and then Lagos is the most significant economy in Nigeria. Then Lagos city is such a significant economy that it would have been one of the biggest economies in Africa just as a city alone, and it is the twentieth largest economy of any city in the entire world. This is a significant thing because I think a lot of folks, they understand some general names, some general locations, some general cultural concepts of various African cities and states and countries, but I don't know if they have that much context, understanding that this is a huge place. Are you actually in the city, or are you in a different city in the state? Neo Ighodaro: It's kind of hard to explain, but- Matt Stauffer: I figured. Neo Ighodaro: Lagos, as a whole, like you said, is a city and a state. It's a city and a state because it's quite small geographically. It's really small, so you can't really call it a state and it's so small that you can't not call it a city, I mean, and it's so small in the sense that you want to call it a state because officially, it is a state, but I mean, it's just so small for you to call it any other thing. Matt Stauffer: Now, is it like Singapore, where if you're in the state, you're also in the city? Neo Ighodaro: Yeah. Pretty much. Matt Stauffer: I assumed that there were other cities within the state? Neo Ighodaro: No. Matt Stauffer: So, if you're in Lagos the state, you're basically in the city? Neo Ighodaro: They're just ... we like to call them local governments. Matt Stauffer: Got it. Neo Ighodaro: They are like small, small, very tiny, little regions that you can probably drive like one hour across each region, so it's kind of like a big- Matt Stauffer: But all those regions are within the city? Neo Ighodaro: Yeah. Matt Stauffer: Wow. Neo Ighodaro: Within the city slash state. Matt Stauffer: Okay, so it is a little bit like Singapore in that way. When I think of big cities, I spent a couple years living in Chicago, so I think about Chicago as being a very large city, so Chicago has three million people. It has, I think, I'm trying to remember how many square ... 230 square miles and so Lagos has 16 million people and it has, I think 400 and something square miles, so we're talking many, many, many times the size of Chicago. Also, it's a city, it's a state, and it's all these kind of things, so I think just getting that kind of out of the way and understanding those things helped me a little bit of the context of why when I was like, "Oh, yeah. You're in Lagos," you're like, "Yeah, but" ... We've got to talk a little bit more than that. -So, you are in Nigeria. You are the CTO of Hotels.ng. You are doing all this kind of stuff, so let's actually get to the meat of it. First question: When did you first have access to a computer and where was it, and for what reason? Neo Ighodaro: I would say when I was about 13. Back in the day before internet was quite popular in Nigeria, it was really, really difficult to get your hands on a computer, so I think one of those cybercafes. They're not really cafes in the sense of it. It's just basically a shop where you have a bunch of computers and then you pay some amount of money to get access to those computers to use their internet. I think one of those days, I was about 13, and I got some extra money and I just went to the internet. It was mostly to chat, though. Matt Stauffer: What was the chat protocol that y'all used back then? Neo Ighodaro: I think Yahoo Messenger was very popular then and MSN- Matt Stauffer: I remember that. Neo Ighodaro: Or one of those ones. I was always on them. Matt Stauffer: Did they have computers in your schools at that point, or not until later? Neo Ighodaro: It's kind of tricky because we did have computers in the school, but it was not computers for everyone. It's privileged access at the computer. Matt Stauffer: Really? Neo Ighodaro: Yeah. It was horrible. Matt Stauffer: I told you beforehand that you get to tell me when I'm digging too far, but- Neo Ighodaro: No, it's fine. Matt Stauffer: What privilege gives you access? Is it a particular type of study or something else? What privileges someone to get to use the computer? Neo Ighodaro: Back then, the first thing is ... we had this computer science subject, basically, where we had to learn about computers, but they usually just write it on the board and like, "Okay, this is a CPU. This is a disk." Was it disk? Did we call it disk back then? What's the name of that thing, the square thing where you save stuff? Matt Stauffer: The hard-drive? Neo Ighodaro: No, no. The one back in the day, so you have this thing- Matt Stauffer: Oh, you mean a floppy disk? Neo Ighodaro: Yeah. Floppy disk, so they'll tell you, "This is the floppy disk," and we never saw any of them. We just had pictures and then- Matt Stauffer: Wow. Neo Ighodaro: Once in a while, maybe once in an entire term, they'd be like, "Let's go to the computer room," and then we go and we see them. We don't touch them. Matt Stauffer: Wow. Neo Ighodaro: You're actually forbidden to touch them. Matt Stauffer: Wow. Neo Ighodaro: You see them and they're like, "Oh, that's the CPU they were talking about. Oh, it looks so cool," but looking from five meters away like, "Yo. Don't touch it." Matt Stauffer: Now, why was it that you couldn't touch it? Was it because there were so few that they were precious, or was there something else going on? Neo Ighodaro: Yeah, yeah. Pretty much. It was more like a new thing back then, so they were pretty expensive. Matt Stauffer: Got it. Neo Ighodaro: And they didn't really trust kids back then, so- Matt Stauffer: Understandably. Neo Ighodaro: If you became a prefect, for instance, we have this thing where certain students, depending on your academic abilities or your leadership skills, you become a prefect, so to speak, and then you'll be able to have access to certain things that other students didn't have. Matt Stauffer: Got it. Neo Ighodaro: As a prefect, I was able to have some access, limited access. Matt Stauffer: But it was still very limited, so it was really the cybercafe that gave you the space to do what you wanted to do. You started out chatting. When did you transition from chatting to thinking that you were going to be able to create something? Neo Ighodaro: I was 15. I remember very clearly the day. It's actually a kind of funny story. I was subject to some bad people in school and I wasn't really keen on going to school at that point because they were always bullying because I was very little in school. They were always bullying and at some point, I was like, "You know what? Screw this, man. I can't deal," and then I started going to cybercafes. Instead of going to classes, I'd just go to cybercafes. I mean, I'm not happy about it, but it was sort of- Matt Stauffer: It's what it is. It's your story, so ... Neo Ighodaro: One of those days, I decided to check out an internet café and that was it. I just liked going there. I felt safe there. I could literally just bury myself in whatever I was doing and not worry about anything else. Matt Stauffer: That's really cool, so you spent more and more time there, even skipping class to go there. You were chatting originally, but what was the moment or was there a project, or what kind of piqued your interest in creating something on the web? Neo Ighodaro: I don't really remember the thought process, but I remember thinking at some point ... I saw this one guy. He went to the café to, I don't know what he was doing there, but I saw him typing some random stuff and I was just like, "What is this guy doing? It doesn't seem like English." It just looked random. I walked up to him and I was like, "Hey, dude. Sorry, but what are you doing?" and he was like he's learning how to program. That was the moment I just thought, "Okay, program. What exactly is a program?" I'm not sure if Google was a thing then, but I know I was using Yahoo Search a lot, so I tried to Google and I stumbled upon the word HTML. One thing led to another and I started thinking, "Hey, how is yahoo.com actually made?" Matt Stauffer: Right. Neo Ighodaro: I started digging and I find out, "Oh, okay. You need something called HTML." I had no idea what it was, and I was like, "I could probably learn that instead of chatting and wasting my time"- Matt Stauffer: Right. Neo Ighodaro:"I could probably learn how to make HTML." That was pretty much the thought process and one thing led to another. I just kept on going and finding out more about HTML. I literally did not know the meaning. I didn't actually care. I just wanted to learn the thing. Matt Stauffer: That's fascinating, so you learned enough that I'm sure you were making your own little local HTML things. Do you remember what the first page you made was about? Neo Ighodaro: Oh, it was a personal page, obviously. Matt Stauffer: Right. Neo Ighodaro: A site called uni.cc or something like that. It was one of these Geocities type of thing- Matt Stauffer: Sure. Neo Ighodaro: Where you just go and then they give you a sub-domain and a name and then you just kind of mash up the HTML in there. I created one of those and I remember there was this guy. I've forgotten his name, but he was a really big influence back then. There was the time of Greymatter. I don't know if you've heard of it? Matt Stauffer: I haven't. Neo Ighodaro: It was a blogging platform. It was close to what we have in WordPress, but it was called Greymatter. I think his name is Tony. He used to create all these blogs and then there were a lot of young people and they had a lot of blogs that they created. They create these blogs and then they just write random stuff in it, but I was more interested in how the blogs looked. They looked so beautiful and I was like, "Why does mine just look like a bunch of marquee running around the screen?" Matt Stauffer: Right. Neo Ighodaro: I was forced to learn design, so I had to start digging in. I heard about Photoshop, so I picked it up. Matt Stauffer: I love that you got there because when we first met, I went over to CreativityKills. Would I be right to describe CreativityKills as essentially your freelance web development kind of company? And I don't even know freelance, but your web development consultancy that was your main thing before you started working at Hotels.ng, and you still kind of keep it running on the side? Is that a good description for it? Neo Ighodaro: Yeah, pretty much. Matt Stauffer: What I noticed there ... I went to portfolio, and the moment I see ... I think it was portfolio or work or something, but what I saw instead of code or descriptions, was I saw screenshots. The moment I see that, I say, "This person's probably a designer," and the design was good too, so you're not just a programmer. Tell me how do you think of yourself? Do you think of yourself as a designer and a programmer? Have you trained in one more than the other, or do you think of yourself as a hack in one and really good at the other? How do you kind of approach your skillset? Neo Ighodaro: I think to really answer the question, I have to go a little back to the origins. Like I said, I learned about you have to design your sites for it to look good. I was like, "How do I get there?" and I heard of Photoshop. I started going to the cybercafes. Instead of learning how to write HTML, I was learning how to design, so it was a hassle, to be honest. It was really difficult because you had 30 minutes to learn, literally 30 minutes to learn everything you wanted. I basically started learning and a couple of people just noticed that I come regularly and some people just randomly gave me some extra time. Matt Stauffer: Oh, cool. Neo Ighodaro: I was able to pick up a couple of designs. I actually have a link to one my first ever designs. I still have- Matt Stauffer: That's going in the show notes. That is going in the show notes. Neo Ighodaro: Yeah. It took me about 12 hours chopped into 30 minutes- Matt Stauffer: I was going to say, 30-minute increments of 12 hours, and it's not as if you could take it home. I mean, once the 30 minutes is up- Neo Ighodaro: You're done. Matt Stauffer: Did you have a thumb drive that you were saving everything on, or how did that work? Neo Ighodaro: I had a floppy disk, so every time I go, I was like, "Does this computer support floppy disk?" If they were like, "No," I was like, "No. I'm not doing this." I actively looked for a computer with a floppy disk and I had to download Photoshop- Matt Stauffer: Every time. Neo Ighodaro: Every single time. Matt Stauffer: Oh my gosh. Neo Ighodaro: Exactly. Matt Stauffer: Oh my gosh. Neo Ighodaro: It was hectic. Matt Stauffer: That's incredible. Neo Ighodaro: Pretty much. Matt Stauffer: You taught yourself how to design, so both in terms of design and HTML, I'm assuming that ... because I know that when I started, there weren't a lot of books around teaching this. Were you learning it purely online and, if so, do you remember any of the sites you used to learn? Neo Ighodaro: I remember the site I used to learn how to make my first-ever graphic, but I don't think I really learned any of the other ones, I mean, the tool sets and everything, using any site online. I was basically just "mash, mash, mash." It's "mash, mash," and it worked, I'm like, "Oh." Matt Stauffer: View source, copy, paste, modify. Neo Ighodaro: Exactly. Something like that, so I was just editing. I would just pick a tool and drag it across the screen. I was like, "Try to figure out what does this do." But the first night I learned about actually making vector images was vexiles.net. I don't know if they're still around right now, but it taught me how to take a picture and turn it into a kind of vecto graphic. Matt Stauffer: Trace it with the ... what are those things called? The pen tool and everything like that? Neo Ighodaro: Exactly. Matt Stauffer: Very cool. I think that's pretty similar to how I learned. I remember I got my first book when I was five or 10 years into it and it was such a foreign process because I was like, "Wait. I have to sit down and read 50 pages and then" ... It just didn't translate. I was like, "No. You just kind of figure it out as you go." You started programming when you were 15. I'm guessing the design was a little bit later than that. At which point did you realize this was not just something that was just a fun thing to do with your time, but it was something you were actually going to consider turning into a career? Neo Ighodaro: I think I was about 17 or 18. That was when I actually creating the skills unofficially. I had a couple of friends back then and they had these really nice names for their website. There was Aether Reality.net. They just had really, really random names and I was like, "I could come up with one," and I don't know. I can't remember exactly how, but I was thinking in the lines of, "What if you had a company that portrayed designs to die for?" I sort of just circulated around that concept until I got to the point CreativityKills. I can't remember how it clicked or when I clicked, but I just know at some point, I was like, "Creativity kills." It kind of had a negative connotation, especially culturally, but I felt like people needed to ask questions like, "Well, how does creativity kill?" It kind of was the one thing that I knew could make my brand stand out, because people became curious. Matt Stauffer: I love that. It doesn't give you all the answers just from reading it. It makes you ask questions and that's something you wanted. I mean, that clearly lines up with the story you're telling me is you literally walked over to somebody else in the café and said, "What is that jumble you're typing into your screen right now?" That's really fascinating. Did you have any people around you or any role models where you said, "Oh, I'm going to do this like that other person I know or that other person I've seen," or was it more of a just kind of, "Hey, this is a thing I can try out and see what happens"? Neo Ighodaro: For design, yes. The Tony guy, I really can't remember his name. I wonder why. Matt Stauffer: Right. Neo Ighodaro: But anyways, the Tony guy, I think I still have him on Facebook or something. He didn't know it, to be honest. I was just more of an admirer from afar type of person and I really liked how he designed and everything, so he was sort of my role model in design. But when it came to HTML and PHP and the other program language, I didn't really have anybody. It was just me. Just me and nobody else. Matt Stauffer: At some point, you went from, "What is this computer and internet thing?" to "What is this coding thing?" to "What is this design thing?" to "I know these things well enough that I could make things" to "I know these things well enough that I could convince someone else to pay me money to do it." Those are a lot of shifts to happen over the span of, I think, two years basically. There's not a lot of other people around you who are doing kind of development consultancies and design consultancies and stuff like that, so how did you figure it out? What were your early challenges? Who were your early clients? What did it look like for you to create CreativityKills and turn it into actually making income? Neo Ighodaro: I had to figure out every single thing myself. I didn't know anything about marketing. They didn't even cross my mind, to be honest. When I started, I created a website for it. I don't have the template anymore, but I was proud of it then. I'm not sure I would be now. Matt Stauffer: Right, right. Neo Ighodaro: I had this lady. She wanted to create a website for her NGO and she met me. She heard of me from my friend, so my friend told her, "Oh, I have this guy. He's probably be cheap and he does websites." Matt Stauffer: Right. Neo Ighodaro: She was like, "Okay. Let me meet him," and I talked to her. She told me, "This is what I want. This is what I want," and I was like, "Okay, cool." Back then, I only knew HTML to be honest. I didn't know PHP and so I was like, "How do I swing this?" I then went to a cybercafe again and I started Googling, no, I was Yahooing, basically- Matt Stauffer: Right. Neo Ighodaro: Because I don't think I was using Google then. I was trying to figure out, "How do I make a website as dynamic?" and I think that's where I stumbled upon PHP. Somebody was talking about PHP and CGI scripts and all the stuff and I was like, "This seems like something to go into." Then I had about two months, so I gave a deadline of two months to deliver the project, so I had roughly about a month to learn PHP. PHP just jumped at me. I was like, "Let me just go with this one." I heard of ESB. I heard of a lot of ones, but PHP just seemed welcoming. I mean, that's the allure of the language, anyways. I was like, "I'm going to do this," and I jumped on it. The learning process was difficult. I didn't pick it up in one month. I actually just knew a bit, a few things, because of 30 minutes increments, 30 minute, 30 minute. At some point, I stumbled upon Greymatter and WordPress and then I was like, "Okay, so this kind of makes you build a website easily. I could do this. I mean, it doesn't look so complicated." I had to figure out how to host websites, so I hosted her website. I paid for the domains and everything and then in about two months, I came and said, "Hey, look at your website," and she paid me. I was so happy, like, "This is my first income. I did it alone." It was a happy moment for me, but from then on, I started feeling like, "What if I could take that one client and kind of expand my reach, try to reach other people?" I mean, one person old one person, so obviously, there's some sort of system to it. I started digging about SEO and I started digging into marketing and that's pretty much ... one thing led to another, and most of the things I learned, I had to learn because when you work to a certain degree, you hit a bump. Then you're like, "What to do next?" and then you get introduced to certain concepts, and then you learn about that. Then you hit another bump, and, then, "What do I do next?" That was pretty much my learning phase. I just kept on hitting bumps. Initially, it was the HTML. Then I was like, "The HTML has to look nice," so I had to go to CSS. "Now the visual aspects have to look nice," so I went to Photoshop, then I went back to HTML. I realized that you can't really do much with HTML. You need some dynamics. I went to JavaScript and it was really, really difficult, so I left it. I heard of PHP. I went to PHP and I realized I have to go back to JavaScript. I went back to JavaScript and then to Jaggery. It was just- Matt Stauffer: Right. Neo Ighodaro: One thing leading to the other. Matt Stauffer: Yeah. You do what you can until you hit a pain point and then you figure out the simplest possible thing to fix that pain point and then move on to the next pain point. Neo Ighodaro: Exactly. Matt Stauffer: Very cool. You were writing procedural PHP back then. This is pretty early. I'm guessing it was right past when WordPress was created. You got WordPress. You got into Greymatter. Did you spend just a couple years there, basically building HTML and CSS websites with some Photoshop design and some WordPress and some Greymatter? Is that kind of your bread and butter for a while before you made shifts over to things like Laravel? I mean, Laravel, obviously came out much later than that, but did you kind of sit in that space, or were there other kind of steps in your journey between then and Laravel? Neo Ighodaro: No. I sat there for a while. I really didn't think of structure or anything. I was there for a long time, probably a year or three years, between that range. I remember the first time I got introduced to CodeIgniter. I learned about CodeIgniter and I didn't really understand what MVC was. In my mind, I just wanted to write spaghetti code and be done with it, but I started seeing the benefits I made of separating concerns and I felt like it could help eventually. I mean, all those things I've created, plus it's a framework. It gives you a jumpstart and that was really what sold me. I didn't have to write my skill connect to this or my skill connect to that, I just put my details and I'm done. I got into CodeIgniter. After a while, I started ... my learning of PHP started evolving from spaghetti code to "How do we structure an application?" Then I started, and this is very interesting, actually. Because I didn't have a laptop or a PC. Laptops were a stretch. I didn't have a PC then. I had to do this thing. I decided to write a framework of my own, but I had just 30 minutes in a cybercafe, roughly. Matt Stauffer: Is this still a floppy disk that you're using, or is this what you're about to tell me? Neo Ighodaro: Yeah, yeah. A floppy disk, so what I did was I bought a diary and I literally wrote my code in ink- Matt Stauffer: No. Neo Ighodaro: On the diary. Matt Stauffer: No. Now why couldn't you just save it as HTML files and PHP files down in your floppy disk? Neo Ighodaro: Let me explain. I had a couple of minutes, where if I'm going to ... let's just say, maximum, an hour and thirty minutes at the cybercafe- Matt Stauffer: Right. Neo Ighodaro: That's when I have access, but I don't want to go there and start thinking of what to do. Matt Stauffer: Oh. Neo Ighodaro: Exactly, so my solution to- Matt Stauffer: You're writing in the diary when you're not at the cybercafe as your brain is roiling over. Oh my goodness. Neo Ighodaro: Exactly. Matt Stauffer: That's amazing. I mean, I've done architectural diagrams in a journal and I've done the tiniest little bit of code, but writing a framework that way? No way. So, you basically show up, and the first thing you'd do is basically transcribe all your diary notes down into code and then see- Neo Ighodaro: Exactly. Matt Stauffer:"Hey, did it work?" Wow. Neo Ighodaro:"Did it work?" "No." "Oh, bugs, bugs, bugs. Fix, fix, fix, fix, fix. Oh drat. I forgot this." Matt Stauffer: Wow. Fascinating. Neo Ighodaro:"Yeah. I got to go home. Just log out. Go back home." Matt Stauffer: Right. Neo Ighodaro: And write, write, write, write, write, write. Matt Stauffer: And write more in your diary. Neo Ighodaro: There was this thing. Nigeria's a very cultural state and then there was this day my mom stumbled upon the diary. She thought I was writing a lot of demonic stuff. She was like, "Oh my God." Matt Stauffer: Oh, no. Neo Ighodaro:"What is all this?" She literally thought I was possessed. Matt Stauffer: It's funny because I was going to ask about your family, so this is perfect. What did your family think about this whole thing? You're skipping class. I mean, I don't know if they knew you were skipping class, but you're doing these computer things. You're in the cybercafes all the time. Was that something that you got a lot of support for, you got a lot of criticism for, or were they kind of ambivalent, they weren't sure how to feel? Neo Ighodaro: A lot of criticism. An African family is a family that places a lot of value on education, so me skipping school then was horrible. I was literally the black sheep of the family just instantly. The day they find out, they were so disappointed. "How could you do this? Blah blah blah," and I was just staring, like, "Sorry." Then they were like, "We're really, really disappointed," and everything. Then the day they saw the writings on the book was my mom, she freaked out. She thought I was on some demonic tick and she was like she's going to call an entire family meeting, so the entire family gathered and they were like, "What is this you're writing?" Matt Stauffer: Oh, no. Neo Ighodaro: And I was not good enough to explain it, so I was just like, "It's code." "It's code for what?" And I was like- Matt Stauffer: Right, right. Yeah. Code as if ... "It makes computers work." Neo Ighodaro: Yeah, so I couldn't really explain it and they were like, "We don't want to ever see you doing this again," and I was like- Matt Stauffer: Oh my gosh. Neo Ighodaro:"Yeah, sure. Right." But I knew, deep down, I wasn't going to stop. Matt Stauffer: How long did it take for you- Neo Ighodaro: I think that was one of the few things that- Matt Stauffer: Oh no. Go ahead, go ahead. Neo Ighodaro: Really made me continue to really fight for it, just because I felt like it made me a rebel. Matt Stauffer: I love it. How long do you think it took before they really kind of understood, or do they now? Neo Ighodaro: Yeah, they do. It took a long time, until I was in the university, actually, and they started seeing some dividends like it was paying off. They were like, "Okay. This dude hasn't called us to ask for pocket money or anything, actually." Matt Stauffer: Right, right. Neo Ighodaro: They were like, "He probably is doing something right," and then they were like, "Okay, so what is this thing exactly?" Matt Stauffer: Got it. Neo Ighodaro: They were willing to come to the table and ask me questions like, "What does it do? How does it work?" Matt Stauffer: Very cool. Neo Ighodaro: Then there's this thing in Nigeria, so there are internet fraud stars a lot. They scam people of money and blah blah blah, but the idea is back in the day, when they see you, any young person in front of a computer, that is the instant thing they think, that you're a fraudulent person, that you're being ... they called it a "yahoo yahoo boy." Matt Stauffer: They call it ... can you say it again? It didn't come through on Skype. Neo Ighodaro: Yahoo yahoo. Like "yahoo" twice. Matt Stauffer: Got it. Neo Ighodaro: So they call you a yahoo yahoo boy. They were really concerned that that's what I was doing. Matt Stauffer: Got it. Neo Ighodaro: They really wanted to know because it was illegal and they didn't want any of the stuff and I was like, "No. I promise it's not actually that. It's literally the opposite," and they sort of just went with it. I don't think they really believed. Matt Stauffer: Right. Neo Ighodaro: They just had faith, so I guess they started to come around from there. Matt Stauffer: That's fascinating and that transitions to the university. At some point, you were doing CodeIgniter, and I assume that was before university. At what point did you decide to go to university, or was this all happening at the same time? Neo Ighodaro: Pretty much at the same time. After they found out that I'd been skipping school, I had to change schools, so I had to go to another one somewhere closer that it could monitor my movements and- Matt Stauffer: Got it. Neo Ighodaro: It didn't really stop me, actually. I did what I wanted to do anyways. The good part was I was sort of book smart to a point- Matt Stauffer: Right. Neo Ighodaro: I was able to ace my exams and everything. Matt Stauffer: Right. Neo Ighodaro: That was the good part, so I didn't really need to go to school, because I knew if they found out that I didn't do a couple of tests, they would probably come and check the attendance sheet and everything. Matt Stauffer: Right. Neo Ighodaro: I made sure I aced most of my tests, most of my exams, but on the low-low, I was still trying to figure out what this entire programming thing was about. Matt Stauffer: All right, so you went off to ... what did you actually study in university? Was it programming, or was it engineering? What was the actual formal title of it? Neo Ighodaro: Mathematics and economics. Matt Stauffer: Is that something you use in your daily life right now? Neo Ighodaro: Nope. Nope. Matt Stauffer: All right. Well- Neo Ighodaro: Very big no. Matt Stauffer: Well, yeah. I mean, I studied in English education when I was in school. I mean, technically, I don't use it, although the experiences I had there still inform me today. All right, so you went to university. You graduated from university. You got that degree. At what point did you transition from being Neo of CreativityKills who does kind of freelance contracting stuff to Neo who is, I mean, you're doing stuff out in the community. We'll talk about that in a bit. You're working at Hotels.ng. Now, I did see you had a blog post, I think it was in maybe 2016, so was this a pretty recent transition for you? Neo Ighodaro: Yeah. Pretty much. Matt Stauffer: What was that like? Neo Ighodaro: Let me step back a little. I'll tell you another interesting story. Ever before I owned my first laptop, how I got it was there was this guy, Kolade, he had a friend who wanted a programmer on one of their projects and then it was like, "Neo, you need to get on this," and I was like, "You know I don't have a laptop." He was like, "Okay, you know what? I'll tell them. They'll get you a laptop and then we can go from there." I was like, "How do I pay for it?" They were like, "No, don't worry." I was like, "Okay, cool." Matt Stauffer: Right. Neo Ighodaro: I was so excited, but I just wanted to play it cool. Be cool, be cool, be cool. Then they brought the laptop and it was ugly. I appreciate it. Matt Stauffer: Right, right, right. Neo Ighodaro: I mean, I still have it. Matt Stauffer: It's a laptop. Nice. Neo Ighodaro: I appreciate it, but it was horrible, meaning if you unplugged the laptop, it would go off. Matt Stauffer: Right. Neo Ighodaro: The battery was finished. It was literally horrible. Matt Stauffer: It was like a big gray box kind of thing? Neo Ighodaro: Yeah, and the problem with that was the situation of power in the country. You could literally go for an entire 24 hours without power at all. The internet was so expensive, but, I mean, somehow, I was able to manage. I had to go to school a couple of times. There's this hub where you could plug your stuff in. Matt Stauffer: Got it. Neo Ighodaro: I'd go there and plug. I remember some of those people always laughing at the laptop, like, "What is that?" Matt Stauffer: Right. Neo Ighodaro: I was like, "Just ignore them. Just ignore them and do what you need to do." Fast forwarding, I had a sort of big break, right? It was during the period where BlackBerry was very popular in Nigeria, so I created this website with PHP. I think that's actually the first product I've ever created for myself. Matt Stauffer: Right. Neo Ighodaro: It was called FlashDp. What it did was it used ImageMagick to create a GIF and then you were able to use that GIF as a display picture on your BBM, BlackBerry Messenger. I did it because ... back in the day, because I wasn't too rich. Let me rephrase that. I was poor, so I had to find a way to make money at least. Matt Stauffer: Right. Neo Ighodaro: I found out people really like these GIFs and I used to create them on Photoshop a lot and then I thought about it, like, "There has to be a way to do this in PHP or some language." I was like, "Let me try." I sat down that day and I used Kohana. I don't know if you know it? Matt Stauffer: Yeah, yeah. Neo Ighodaro: Kohana framework? So, I used it and I came up with FlashDp and I gave a friend ... I was hosting it on Pagoda Box, so I gave a friend, like, "Hey, help me try this stuff. See if it works," and I went to bed. The next morning, the server had crashed. Matt Stauffer: Oh my gosh. Neo Ighodaro: I was like, "What is happening? What happened?" Then I went to analytics and I check. "Wow. A lot of people used it," and because it was very resource-intensive, I mean, it was ImageMagick trying to- Matt Stauffer: Right. Neo Ighodaro: Generate images over and over again, so I was like, "Let me try and reboot the server." I didn't really know about servers then, but it was a click and reboot thing. I decided to create another version two. I decided, "Let me just give everybody, make people use it." Right? Matt Stauffer: Right. Neo Ighodaro: I mean, it doesn't hurt. Then I gave people and I just put AdSense on it, and that was literally one of the best decisions I've made ever, because in the space of ... so I created it 2013 and in the space of about a year or two, I made about $37,000. Matt Stauffer: What? What? Just from AdSense? Neo Ighodaro: Yeah. And in Nigeria, that's huge. Yes. In Nigeria, that's huge. That was huge money, so I was able to get my first MacBook. I was able to get a nice Mac and literally that point was the turning point, because I had all the tools I needed. I didn't need to write in a diary anymore. Matt Stauffer: Right, right, right. Neo Ighodaro: I could practice it without need for power for a long time at least. I literally had everything I needed to actually become better and I felt so empowered. That was around the period when I was in school, so I had a lot of time to myself. Matt Stauffer: Right. Neo Ighodaro: A lot of time to learn, a lot of time to actually go back, and that's when I started redesigning CreativityKills again. I went back to the drawing board and I was like, "How do we appeal to people?" I spent about eight months creating that site and I released it. I think it was on adwords.com for an honorable mention or something like that. Matt Stauffer: Nice. Neo Ighodaro: I was really proud of myself. I came out and I did it. It was crazy for me, but creating FlashDp itself was the turning point. That was the landmark in everything. Matt Stauffer: That's incredible. I feel like I could dig into just this part of your story for another hour. I'm trying to keep this short. I'm going to move on, but that is fascinating. You said that was 2013, so at that point, you had gone from CodeIgnitor, you had moved over to Kohana. Let's move into modern Neo. Let's move in to Laravel. Let's move into the Laravel Nigeria Meetup. Let's move into Hotels.ng. When did you transition from Kohana to Laravel and what made you make that transition? Neo Ighodaro: FlashDp made me make the decision. It was around this period where people were arguing about whether to use static methods or not, and I started feeling bad about Kohana because it had a lot of static methods. I was like, "Is there something out there that's better?" Matt Stauffer: Right. Neo Ighodaro: I mean, obviously there might be, so I started digging and I found out about I think was it FuelPHP? I think Slim. I don't know if Slim was really around then, but I know I saw a bunch of them and I heard of Laravel and I was like, "I like the name." It has a ring to it. That was literally the only reason why I jumped on it. Matt Stauffer: Wow. Wow. Neo Ighodaro: I just liked the name. It was like, "I could try this," but I think it was around version four, around that period or something like that. I was like, "How does this work? I mean, it's usually the usual MVC stuff." Matt Stauffer: Right. Neo Ighodaro: I was like, "This seems cool," and I realized that every single thing I did was easy. You want to do this? Easy. You want to do that? Matt Stauffer: It just works. Neo Ighodaro: Easy. Yeah. I was hooked. I was like, "I'm sold." It was hard for me leaving Kohana, because I had built a lot of packages back then. Matt Stauffer: Right. Neo Ighodaro: I built a Honey Pot module or Coconut. I forgot on what they called them, but it was a package for Kohana then, so I was kind of tied to the community, but I felt if it's better with Laravel, I could just try it. That was my switch. I created version two of FlashDp using Laravel 4. I just basically kept on digging into Laravel and digging and digging and digging. I also picked up Objective C during that period. Matt Stauffer: All right. Neo Ighodaro: I got an iPhone and I learned to jail break in. I learned you could create awesome stuff using a language called Objective C, so I pretty much dived into it and started learning Objective C, creating jail break tweaks, and all that stuff. Matt Stauffer: Very cool. Neo Ighodaro: Now, my transition into being Neo ... I had this thing where I said I was never going to work- Matt Stauffer: For someone else? Neo Ighodaro: For another company. Matt Stauffer: Right. Neo Ighodaro: But I realized that if I was to run any successful business, you need experience. It goes without ... you just need it. I was like, "I need to pick the right company." You just don't jump into it, right? Matt Stauffer: Yep. Neo Ighodaro: From, I think, 2015, I started scoping the Nigerian tech scene. Matt Stauffer: Right. Neo Ighodaro:"Who would I want to work for?" I was nobody. I wasn't really known. Matt Stauffer: Right. Neo Ighodaro: But I knew I was good, so I started digging and digging and I found nothing, to be honest. I found nothing that I felt I wanted to work for until I think 2016. I was still in Benin. I schooled outside Lagos, by the way. I was still in Benin and I went to a school called University of Benin. That's UNIBEN. Then I sort of heard of Hotels.ng and I didn't really think much of it. I hadn't heard much about it, so I was like, "Meh." Then I had a friend called Lynda. So, cool story, she was the friend of somebody I knew back in the day, so my friend had been telling me, "Okay, Lynda, she's really good. She's really good." I was like, "Who is this Lynda? Who is she?" I went online and I researched and I heard she was the head of product at Hotels.ng and so I just pretty much said, "Hi. Oh hey, how you doing?" Matt Stauffer: Right. Neo Ighodaro: Then we got to talking a little and then we kind of just hit it off pretty much. We were just talking and talking. Then I think I told her that I'm looking for a gig or something. I can't really remember the backstory, but I remember receiving an email. I came to Lagos because my mom had an accident. Matt Stauffer: I'm sorry. Neo Ighodaro: A very, almost mortal one. She was in a sickbed for a long time, so I was really sad. I came down to Lagos and went to see her in the hospital. It was a very bad, very depressing moment in my life, but, I mean, coming back gave me some sort of perspective on life, like, "Things don't last forever. You need to use whatever you have as quickly as you can," so I think I sent an application. I'm not really sure if I applied or not, but I remember receiving an email from Mark Essien, he's the CEO, and he was like, "Hey. I heard about you from Lynda. Can you come to the office for an interview?" My initial reaction was, "No," but I thought about it. Matt Stauffer: Even though you had sent something in to them, right? Neo Ighodaro: Yeah. Then I thought about it. I was like, "You know what? It doesn't hurt. Let me just go." Matt Stauffer: Right. Neo Ighodaro: That was literally my first interview ever. Ever. Matt Stauffer: Ever, anywhere? Neo Ighodaro: I was about 20-something then. Matt Stauffer: Wow. Neo Ighodaro: Twenty six-ish? And I was like, "Let me just go." I went and- Matt Stauffer: Right. Neo Ighodaro: I remember him sitting in the office with three devs. Lynda wasn't around. I think she was on leave then. It was like, "What are these? What are these?" and it was calling computer science terms. I really didn't know any of them and I was like- Matt Stauffer: Right. Neo Ighodaro:"If this interview's to go like this, I'll literally fail because I don't know any of these terms. Give me a laptop." Matt Stauffer: Do you say that out loud? Neo Ighodaro: Yeah, I did. Totally. I didn't know any of these terms. Matt Stauffer: Right. Neo Ighodaro:"Just give me a laptop and I will show you what I can do." Matt Stauffer: Right. Neo Ighodaro: Then he looked at me for a minute or so and then it was like, "Okay." Then he left and then sort of, I just felt like I'd already gotten the job. Then he left me with the devs and they kept on asking me different questions, like, "This, that, that," and then one of them was like, "I think I've seen your CreativityKills somewhere." I was like, "Ha, sold." Matt Stauffer: Brilliant. Neo Ighodaro: Then he was like, "Yeah. Can you show us stuff you've done?" Then I brought in my laptop and then I showed him ... I had this music site I created using Angular and PHP backed in on Laravel. I showed him, and the first thing he was like was, "Do you design your code?" Because it was so cleanly written. It was during a period where Jeffrey was always talking about, “small controller, thin controllers, this, that. Best practices, SOLID. This, that," and he literally asked me, "Do you design it? Do you sit down and format your code?" I was like, "No, not really. Maybe I have OCD or not. I don't know." But he was really impressed at the structure of the code and I was like, "Wow. He's never seen anybody designing this, like your code. You just write code. It makes no difference to the compiler, you know?" Matt Stauffer: Right. Neo Ighodaro: I was like, "I like to see my code as art. If I feel good about it, I feel happy, but I just don't want to jumble everything. He was like, "Cool." I think that was the day I got the job. I hadn't even gotten home and I got another email saying, "You're hired." He was like, "Can you start tomorrow?" and I was like, "Okay." Matt Stauffer: All right. Neo Ighodaro: It was a big leap. That's right. I literally- Matt Stauffer: You were hired as a programmer upfront, right? Neo Ighodaro: Yeah, as a programmer. I hadn't even settled with the fact that just got my first interview. I already had my first job. Matt Stauffer: Right. Neo Ighodaro: I decided to go in and what really caught me was the culture. I've always had this culture, this ideology of what I want CreativityKills to look like and I literally saw everything right there. It was there, and that was what sold me. Everybody seemed so compact. It was a very good mixture of fun and work and that was literally what made me stay. Matt Stauffer: That's very cool. And Mark's very young too, right? It's not as if you're- Neo Ighodaro: Yeah, he is. Matt Stauffer: Joining this kind of giant, pre-existing thing. It was other people with a kind of same young Nigerian "figuring this out as we go" kind of mindset. Neo Ighodaro: Exactly. Matt Stauffer: That's awesome. All right, again, I want to ask you an hour of questions about Hotels.ng, but because we're getting close on time, what I want to do is to talk about a few things real quick. First of all, we're going to talk about the Lagos tech scene, because you mentioned about how you looked around there, and it obviously exists, but I would guess that when you first started, there really wasn't much of a tech scene. I want to hear your thoughts on that. I want to hear your thoughts about the Meetup, and then the last thing, I want to hear about hoodies. Let's start with the Lagos tech scene. When you first started, you said there weren't a lot of people around you that you could look at. There weren't people who you were saying, "That is this person in my town who I want to be like. I identify with that person and I want to be like them," so do you have any thoughts? Did you watch transition happen where all of a sudden, there were other Laravel developers around you and other tech companies? Do you have anything to share with us about what that growth process looked like? Neo Ighodaro: Yeah. When I started, either there was nobody, but they were there, but social media- Matt Stauffer: Right. Neo Ighodaro: Wasn't as prevalent as it is now, so I didn't really notice or see anybody. But the first person I did notice was Prosper. I just knew he was making a lot of noise. He's very, very energetic. He can shout, so he's an energetic person, and I kind of noticed him. I was like, "Who is this guy?" He was always saying, "Community, community." What is the community? What is it, exactly? Matt Stauffer: Right. Right. Neo Ighodaro: There is no community. I'm not seeing anything. He just kept on going and I was like, "Maybe there is a community after all," and so getting to Hotels.ng kind of gave me a lot of ... because Hotels.ng is kind of a big scene when it comes to tech. We like to support tech a lot, and it kind of gave me ... it's almost like I swallowed something and now my eyes were opened, and I sort of saw that there was potential. There were a lot of people, but there was just no real leadership. People were not just organized, but the people were there. It's just like Lego blocks. They were there, but nobody could put them together. Matt Stauffer: Got it. Neo Ighodaro: That was literally how I noticed, and I realized that what Prosper was trying to do was to get people to come together. Matt Stauffer: Very cool. Neo Ighodaro: And create that actual community that he was shouting about. That was when I realized that it's possible for us to create something that would kind of unite every single hungry developer, for any developer that's been hungry for knowledge for a while, we can unite them and people could come out and give speeches. Then we did a lot of research on Meetups and conferences. From there on, it has been up, up. I've just been noticing that. People have just been waiting, literally, for someone to start, and once there was that spark, it just happened so quickly. Everybody was, "Meet up here. Meet up here. Meet up here." Right now, as I speak, they're having a G2G Summit and a bunch of others. Next week, I have about ... the entire week is literally booked up. Matt Stauffer: Wow. Neo Ighodaro: I have a talk in Android Nigeria and there are a lot of Meetups coming up everywhere. Matt Stauffer: So, this is all pretty recent? Neo Ighodaro: Yeah, yeah. I would say about three years, two years. Matt Stauffer: Because I mean, I follow you on Twitter and I see you posting stuff about a Meetup or a conference, it feels like every week, you're at a different place meeting new people. So this is all just a couple years old, then? Neo Ighodaro: Yeah, yeah. Pretty much. Matt Stauffer: Did I hear you right in saying it's not that that tech scene wasn't there, but it was very kind of individualized, like people were really kind of in their own world? A lot of people probably have a pretty similar story to yours, where people are figuring it out on their own and just recently there was ... Prosper helped. You helped, and probably other folks helped realizing there's a lot of potential if we bring all these people together in one, and all of a sudden, they're exploding. So, I'm seeing you nodding, but I asked you a question. Is that a safe way to say it? Neo Ighodaro: Yeah, yeah. That's literally how it happened. Matt Stauffer: What do you think the thing that kicked that ... could you point to a single Meetup or a single person or a single event, or were there a lot of them kind of all starting up at the same time? Neo Ighodaro: I might be wrong, but I would point at ForLoop. There's this Meetup called ForLoop. It was started by Ridwan. I think he was one of the first people that started the entire Meetup thing. I might be wrong again, but it was the one I notice- Matt Stauffer: Sure, but from your perspective. Neo Ighodaro: Yeah. It was the one I noticed first and it kind of had the ideologies that most Meetup outside the countries have, like you just get a bunch of coders to come to the table and just talk about new tech. Matt Stauffer: Right. Neo Ighodaro: That was literally my first Meetup, so I was like, "You know what? I want to speak at ForLoop." That was literally my first ever talk, so I spoke on Docker and I was like- Matt Stauffer: Cool. Neo Ighodaro:"Let's see how this goes," and it was really successful. I mean, we're having not as much numbers as we have now, because it was just starting out, but that was the first Meetup I've heard of from my own perspective, so I think that was the turning point for everything. I will literally say ForLoop. Matt Stauffer: Do you remember, when you first spoke at ForLoop, when that was and how many people there were there at that point? Neo Ighodaro: I'm not too sure about when, but I know the first one I attended, because we hosted it in my office. We used to host Meetups at the Hotels.ng. I think there were about 80, between 50 to 80 people. Matt Stauffer: Wow. Neo Ighodaro: To us, that was big numbers. We really thought we- Matt Stauffer: The Meetups in my local town don't get that many people most of the time and they've been going for years. I mean, and you've noticed people are getting excited about Laravel Nigeria. I mean, part of it is because you never heard of it at all, and then all of a sudden, you've got 400 people and you're running out of space for people to sit. The rapid success that you've seen ... you say you don't remember, but it was at your office, so it had to have been within the last year probably, right? Neo Ighodaro: Yeah, definitely. Matt Stauffer: Yeah, so this is very, very, very recently. I mean, you went from attending ForLoop the first time with 50 to 80 people. You went from speaking at ForLoop for the first time. You went to helping kind of Prosper and Lynda and others create Laravel Nigeria. For it not existing at all, to all of sudden having hundreds and hundreds of people and running out of space and we're all talking about the span of basically the last 12 months or less. This is a pretty incredible growth process and that's why people, they're saying, "Wait a minute. Where did this all come from?" And that's why I asked the question about the tech scene. It didn't come out of nowhere, but the organization that gave the space for it to be seen and to for it to be brought together seems to really happen quickly, but what it did was it touched on something that's been there for a long time. Right? Neo Ighodaro: Yeah. Matt Stauffer: It's individuals. It's an entrepreneurial spirit. It's the desire to do all these things and the motivation to do it even when you only have 30 minutes at a time, even when you've got rolling power black and stuff like that. There's something. There's a reason where a lot of people keep saying, "Whoa. Keep your eye on Nigeria," so that's ... I mean, again, I could talk a whole hour about that, but I'm trying to keep everything short here. All right, so we talked about the Lagos tech scene a little bit. We talked about the Meetup a little bit. I do want to hear you give a pitch, where if somebody has never heard of Laravel Nigeria, give me a pitch about what it is and I asked you a lot of questions when we first talked about well, where people are coming from and what are your timelines and what are your goals, and all this kind of stuff. So, tell me a little bit about the Meetup. Tell me a little about where it is right now. When's the next one going to be? What are the things you're excited about? What are the things you're nervous about? What are the difficult and exciting parts about doing it? Neo Ighodaro: I remember when I thought of Laravel Nigeria initially, it was around December 2016, and I talked to Prosper. That was one of our first few conversations, and I was like, "What would it be like if we had Laravel in Nigeria?" I initially called it, I can't remember the name, but I called it something different. It was like, "You know what? That seems like a good idea. Why don't we do it?" I had zero knowledge on Meetups, like zero. I literally didn't know where to start, and they were like, "Okay." Then we kind of just didn't do it, so January passed. February passed. March, I can't remember when we did the first one, but all of a sudden, I just woke up one morning. I was like, "Let's just do it," and then I called him. I met him at a café, Café Neo, funny enough, so there's a café in Nigeria called Café Neo. Matt Stauffer: Love it. Neo Ighodaro: I met him there and I was like, "Guy, we should do this thing, but I want to speak in pidgin." Pidgin is a weird form of English that we speak in Nigeria here. Matt Stauffer: Really? I had no idea. Neo Ighodaro: Yeah. It's called pidgin English. So, I'm like, "Guy, we could do this thing now." Literally saying, "Guy, let's do this stuff." Then he was like, "Okay. How do we start?" Then I was like, "We should create a Meetup page first." He was like, "Okay," so I tried doing my card and it didn't work, so he did. His card worked, and he created a Meetup page. I created a Twitter page. I started working on the website. Generally, I just noticed people were joining the Meetup page and we hadn't really started talking about it. We just put a couple of things there and say, "We might be hosting a Laravel Nigeria Meetup." Might. That was the word, might. Matt Stauffer: Right. Neo Ighodaro: Then people were like, "Oh, this is great. This is great. This is great. This is great." The Meetup page was just going higher and I was like, "What is happening?" Then that kind of put pressure on me to actually do the Meetup. Matt Stauffer: Right. Neo Ighodaro: Because I was kind of nervous that it would fail. I remember telling some of my colleagues at work that, "I don't know if I can actually do this. I mean, it's huge." Matt Stauffer: Right. Neo Ighodaro:"It's a huge thing. I don't have the money to sponsor it, but how would I do it?" Then someone was like, "Just ask for help," and I was like, "That kind of makes sense." The strategy I did was I went to the Laravel source code itself. I was like, "Okay. What companies are generally interested in Laravel?" I mean, that would be the companies that are more likely to support, right? Matt Stauffer: Right. Neo Ighodaro: I looked and I saw Pusher. I saw Nexmo and a couple of others. I was like, "Okay. Pusher, Pusher." Then I spoke to ... I think around that period, I just started guest-writing for them, so I messaged someone in their team and she was like, "That sounds great." I was like, "Cool." I didn't really believe it. Of course, she was like, "Yeah, sure." Matt Stauffer: Right. Neo Ighodaro: Back then, we had about a hundred people who RSVPed and I was feeling like it wasn't enough, but she was really, really, like, "Oh my God. A hundred?" I was like, "Yeah." Then she was like, "That's huge. We will support." I mean, that's the journey. We started getting people to support the entire thing. We couldn't use Hotels.ng space because 100 people, it wouldn't fit, so we talked to Andela, which is a company that outsources developers to bigger companies and I think Facebook invested in them recently. I talked to them and they were like, "Yeah, sure. Why not? I mean, we're all for the community. Yay," and I was like, "cool." So, we had that. If I was to tell someone about Laravel Nigeria, I would literally say from my own perspective, it's the belief that you can bring something out of nothing, the belief that you don't have to know about it to be able to do it. You just need to take the first step. Nobody's perfect at anything, and Laravel Nigeria was a shot in the dark, granted, but it was a lot of hard work and that shot paid off. I mean, it might have not paid off, but it did. I wouldn't have known if I didn't try, yeah? Matt Stauffer: Yeah. Neo Ighodaro: What we try to do now is tell people, "Hey, talk to everybody. Try and get people in remote communities, because right now Lagos seems like the place where a lot of things are happening." Matt Stauffer: Right. Neo Ighodaro:"We want people from other states. Mobilize your people. Try and get people to attend Meetups." In the past one month or two months, I've attended Meetups in places where I didn't expect people to come. I'm like, "Wow. Okay. Crazy." This is viewed as a state where you're like ... I didn't expect so many people to come out. People were out, and I was like, "It's happening." Laravel Nigeria is literally the belief that there are a lot of people out there. There are a lot of people who want it to happen. There are a lot of people who are hungry for this knowledge, a lot of people who already know, but just need a platform to come out and start speaking. This has given them a lot of them hope and a lot of that platform they need to really come out and be leaders, because that's what we want to create, a lot of leaders that can lead the new generation of developers, basically. Matt Stauffer: I love it. I've said a thousand times I could talk for another hour. I can't, but I'm going to wrap it up with just three more questions. Neo Ighodaro: Sure. Matt Stauffer: Number one: you're a hoodie enthusiast. What makes the perfect hoodie? Neo Ighodaro: The color black. Matt Stauffer: I was just going to say, "You're a black hoodie enthusiast." And you walk around with the hood up all the time. Neo Ighodaro: Every time. Matt Stauffer: Do you want it to be thick? Do you want it to be thin? Do you want it to be stretchy? Do you want it to be not stretchy? What's the perfect hoodie for you? Neo Ighodaro: Stretchy. Not thick, because we live in a very hot climate, so not thick. It should really cover my face. I used to be very timid. That's why I fell in love with hoodies. With a hoodie, I felt like nobody sees me. I'm invisible. Matt Stauffer: Right. You're protected a little. Neo Ighodaro: Exactly, so it just sort of made me feel very protected. Right now, I don't feel that way, but I've grown to the point where I really love hoodies. I love the ideology behind it. I don't know why, but I'm just attracted to it. It's like that, but it has to be black. Matt Stauffer: Okay. A thin, black hoodie. Neo Ighodaro: Yeah. Matt Stauffer: I got it. That makes sense. Next thing. Has there been one piece of advice or something someone said to you that really has stuck with you across your career? Neo Ighodaro: Not really, but remember my mom, so there was this period and she probably wouldn't even remember saying it. The period when we had these hardships and people didn't understand what I was doing and my family was wilding out and everything. She called me and she told me. She has this habit of waking me up by 3:00 AM if she wants to discuss some very specific stuff and then she woke me by 3:00 AM. I was sleepy-eyed and she was like, "I don't know what you are doing, but if that's what you want to do, then do it." I was like, "Okay," and I went back to bed. Matt Stauffer: Right. Neo Ighodaro: But literally ever time I decide to do something, I just remember that point like, "If it's what you want to do, just do it. Literally, just start," so every single thing I've done ever since has just been with that thing in mind. "Just do it." Excuse me. It really can be difficult, but you would never know if you don't do it, so I think that would be the one watch word that I always ... if I want to pick up a new programming language, just do it. Just start. Matt Stauffer: I love it. And the one last thing is, is there one part of your story, one part of what has gotten you from 13 years old, first walking into a cybercafe, between there and here where you say ... and obviously, there's many of these moments, where you say, "If that thing hadn't happened, if that person hadn't done that thing or if I hadn't tried that one thing or if I hadn't whatever, I'd be in a completely different place now." Is there one really kind of significant thing that you really reflect on often? Neo Ighodaro: Yes. I would say it was the bullies, strangely enough. I think- Matt Stauffer: Wow. Tell me more. Neo Ighodaro: If I wasn't bullied in school, I probably would have just been ... because, like I said, I was very book smart. I probably would have studied something very differently probably, but the bullies just kind of forced me to move away a little and have some sort of new passion. Back then, I really didn't have any passion. I was more of an introvert, so I didn't really have any passion. I just liked sitting at home reading books, so I think that point was a big turning point, even if I didn't realize it then, but it was a huge turning point in everything. Matt Stauffer: Man, that's amazing. I mean, not amazing that you were bullied, but amazing how that could be redeemed and turned into the whole story that you just told me. I've got to make another podcast so I can talk to you for longer or something. I don't even know, but this has been amazing. I really appreciate your time and for sharing with us. I really am thankful for your contributions to the Laravel community. We all benefit from it, and before we cut for the day, is there anything you want to tell people or anything you want them to know about or anything like that, or do you feel like we've covered everything here today? Neo Ighodaro: I would say we have pretty much covered a lot of stuff, but- Matt Stauffer: Cool. Neo Ighodaro: There's really nothing to tell. Just, if I'm talking to my Nigerian brothers out there- Matt Stauffer: Yeah, sure. Neo Ighodaro: That are probably going to listen to this, I think a lot of people keep asking me like, "Oh, how were you able to this? How were you able to do that?" It's really not that difficult if you think about it. I mean, there are going to be challenges every single time. I tell them, "If you have something and you didn't have to work for it, you will not appreciate it. There will be challenges, but in hindsight, when you think about the challenges, they might not be as big as you are making them seem. Yes, we don't have a lot of power in Nigeria, but I mean, there are other ways around it. You could probably get a generator or you could ... I mean, just in whatever way you want to, try and feed your imagination. It doesn't only apply to coding. It could be anything, literally. I feel like anybody can be anything they want, you just need to get yourself out of the way first." Matt Stauffer: That's beautiful. Is there anything in pidgin that all your friends from Nigeria would totally flip out if they heard you say as the last words of the Laravel Podcast? Because if there is, say it, and that'll be the end. Neo Ighodaro: Let me see. Now don't listen to Laravel Nigeria. Now don't hear the podcast from Matt Stauffer, so as [inaudible 01:03:41], anything is possible. I was literally nothing before, but now that that they see me, I'm on Laravel Podcast and it's been a dream. I'm really grateful for it, and I appreciate it. So, thank you. Matt Stauffer: I love it. Thank you so much for your time, Neo. Neo Ighodaro: All right. Thank you very much.
Interview: Taylor Otwell, creator of Laravel
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.
Season 3 Teaser
Introducing season 3: an interview season, where Matt will be conducting long-form interviews of known and unknown members of the Laravel community to learn about who they are and what motivates them. Transcript (sponsored by Laravel News): Matt Stauffer : Welcome to The Laravel Podcast episode 54, also known as the preview episode for season three where I tell you about what we're going to be doing for this new season. Stay tuned. All right. Welcome back to The Laravel Podcast. It's been a little while and even since the last time we had been posting pretty infrequently. If you haven't been listening to the podcast for a long time, it's actually really easy to think about this podcast as having happened in two seasons up until now. The first season was Shawn McCool starting the podcast and having some regular guests where they did some pretty long form chats about some high depth, high intensity conversations about DDD and other stuff. A couple of years ago, I took over leading the podcast and it was myself, Matt Stauffer and then there was Taylor Otwell and Jeffrey Way speaking regularly on topics that are interesting to us, the news and happenings in the Laravel world and other stuff like that. We've reached a point where each of us were pursuing separate podcasting and speaking opportunities. Also, we just got to the point where we ran out of things to talk about some of the times. We love talking and we got really great feedback but it just got to the point where sometimes we just said, "You know what? There's not really much to say right now." Rather than let that be a bother, we realized that that's a really good moment to step back and reconsider what you're doing. A lot of times when other podcasts have done that, hit that moment, it's a moment where you realize it's time for a little bit of a shift. This concept of seasons has come up recently where a podcast can have a season and then it could just stop and breathe for a moment. We decided that that was a indicator to us that it should be time to call that the end of season two and that gives us the ability to stop and think. What does the community really need for season three? After a little while, we figured it out, and we are likening it to maybe a famous hiphop group or something like that where they split up and pursue their solo projects for a while. They might get back together later so there's no saying that season four is not going to be the gang all back together or a different gang or something like that. But, for right now, season three, Jeffrey is doing the Laracasts snippet. Taylor might have something of his own. We'll see. And, what I'm going to be doing on this podcast is I'm going to be doing interviews. This is an interview show for season three and the interviews I'm going to be doing are two primary sorts. One of them is I'm going to be doing interviews of a sort that I hope you haven't heard before of the people who you hear from frequently in the community from Taylor, and from Jeffrey, and from Adam, from Eric Barnes, and Chris Fidao, and other people who've been around and who you hear from frequently, who you hear speaking at conferences and stuff like that to get maybe a different sort of interview, a little bit of a background of them of where they came from and what motivates them and the other stuff you might not hear in a traditional interview but I also want to have the opportunity to expose some folks to you that you may have not have heard from before, people in the community who are doing incredible work and might not get recognized outside of the world that they're in, their country or their meetup, or their package, or whatever else. Season three of Laravel Podcast is an interview show to help you get to know all the people in the Laravel community who you do or do not know by name but you might not know their origins and what motivates them and where they're from. The first podcast episode, episode one which will be ... The total episode will be episode 55 across the whole podcast. I'll try and release it in about a week from this preview episode and I'm going to give you a couple quick little snippets of that interview right now to tantalize and tease, to get you excited about what's coming. What I would love is when I tweet this one out, please send me anybody who you really like to hear an interview of. I'm Stauffer Matt on Twitter. Just let me know if there's somebody ... You know what? Even better, @laravelpodcast. Why don't you send it over to the podcast? And, if there's anybody you'd really love to know, who they come from, what they come from, what they're about, what motivates them, anything else and they're in the Laravel community, I'd love to hear it. That's it. That's the bases. Here's a couple quick snippets from the episode one and stay tuned for some really great interviews coming out during the season. Taylor Otwell : I also got really into TI-83 calculator program. I would write little strategy games. Back then in at least middle school and high school, the popular thing was that Drugwars game. Matt Stauffer : I was just going to say Drugwars. That was it. Taylor Otwell : I would write games like that either with drugs or with other lemonade stand type games. I learned how to do that basically sitting in 9th grade English. I just taught myself how to program the calculator. Those were really the first real programs I wrote I feel like. I had messaged one of them and said, "Hey, I 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. I'm just not like a knock on them. They just weren't interested in it. I was like, "Oh. Well, okay. I guess I'll keep working in 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. I probably would have just started using it and become invested in. That's one moment. Probably the biggest moment I could think of where things could have took a really different direction. Because that feature wasn't really a fit for them, then I just kept working on Laravel.
Episode 53: Bigger & Better
In this episode, the crew talks about enterprise applications, scalability, and productivity. Transcription provided by https://twitter.com/wtoalabi Episode 53: Bigger & Better Music.... Intro: Alright welcome back to another episode of the Laravel Podcast, I am one of your hosts, Matt Stauffer, I have got two guys joining me...Can you introduce yourselves? JEFFREY WAY: I am Jeffery Way! TAYLOR OTWELL: And I am Taylor Otwell. MATT STAUFFER: It's been a little while but we are back with a little bit more to share and if you haven't gotten a chance to check out the Laravel New...News Podcast...all *laugh...*Check out the Laravel new Podcast where... Interjections MATT STAUFFER: Checkout the Laravel New..News Podcast...oh my gosh! Everytime now! News Podcast, where Jacob Bennett and Michael Dyrynda, basically being Australian and ' Illinoisian' tell you all the greatest and latest news that is going on with Laravel, so, because they are covering that so well, we are going off the beaten track a little bit talking about a few kinda broader topics, so, what we did was, we put out some requests on the Twitter account and said "Hey folks, what do you want us to talk about?" And we picked a couple interesting ones and we just want to...just like the reader grab bag or... whatever you call it on your podcast Jeffery, so, the first one at the top of the queue is...something we hear about all the time, not just in this particular request, which is "Can Laravel be used for big apps?" And sometimes this comes in the same conversation of well you know if you want to do enterprise you should use this framework or if you just want to do a cute little thing, then use Laravel. You know, there are all this like statements and perceptions that people have and make about this, so before we go anywhere else, I would ask like, what is and do we know, what is the definition of an enterprise app, like if someone, and then again we are trying to give as much grace as possible to the person who actually thinks there is a distinction...what makes an enterprise app? Is it about lines of code? Is it about patents? Is it about security? Is it about traffic? Like what makes something a big app? And or an enterprise app? Do you guys have a sense for that? JEFFREY WAY: I really don't. So I basically have the same question. From afar, I will just say an enterprise app is something I imagine that is really really big...I don't know, it is an interesting distinction that people always make. I mean for as long as I can remember, even back in the Codeigniter days, you had this idea that Codeigniter is for these sorts of hobby projects but then if you are on the enterprise level, you are gonna reach for Zend or you are gonna reach for Symphony. And I feel like even after all those years, I can't quite figure out, what specific features or functionality do they have, that make them suitable for enterprise or what would Codeigniter not have or what does Laravel not have...hmm... is it related to the fact that Zend has a big company behind it? And whereas with Laravel, you know, like everyone is just gonna keep creating threads about ...what happens when Taylor dies? Is that the kind of idea? Like this is open source...it's kind of rickety...you are not sure what the state of it is, you are not sure if it's going to be abandoned? And with Zend, maybe if you have a big company behind it..maybe you can depend upon it more? Maybe? I don't know, I have the same question as everyone else. TAYLOR OTWELL Yeah, I think most people mean lots of classes I guess. You know, lots of code, lots of lines of code and I think the answers is, you know, obviously I am going to say yes it can be used for big apps, one because it has been used for big apps in the past, so we already know it's true basically. But then also, I think that, you know, Laravel is good for any app that PHP is good for, so, Laravel gives you a good routing system and a way to route request as classes and sort of beyond that is really up to you, you know, once you are past the controller, you basically have total freedom to do whatever you want to do, so, it's up to you in terms of if your app is going to be scalable in terms of complexity. And also I think Laravel is kind of uniquely qualified and better at making big apps than other PHP offerings right now, for a few reasons. One because when people start talking about big apps, a lot of time there is dependency complexity and Laravel Dependency Injection Container is really good and it's really thoroughly baked in throughout the entire framework. When you talk about complicated apps, a lot of time you are also talking about needs like background job processing and Laravel has basically the only baked in queue system out of any major framework in PHP...hmmm...and then of course there is event broadcasting and other features that I would say are more kind of on the big app side of things, so, not only is it...can it be used for big apps, I think it's uniquely better for big apps than other alternatives out there in PHP right now for those reasons. And I think it's just a little misleading because it is easy to get started with, and has a very simple starting point. And since that has a single route file you can kind of jump into it and start hacking around on, but it also scales up, you know with your needs and with your team's needs in terms of complexity...so yeah, that's kind of my take on it. Everyone kind of thinks that their app is a special snowflake you know, that has this, very unique requirements that have never been required in the history of web apps, but, the vast majority of applications don't have unique requirements and they don't really have unique needs and you know Laravel and many other frameworks really are going to be a good fit for them but I think Laravel is the best option in PHP right now for a big sophisticated application. JEFFREY WAY: And it is funny because, for whatever reason everyone thinks their project is going to be the one that really put Laravel to the test in terms of how many page views it can render in a single second...all that stuff like...if you need to worry about that, you are at such high level and you will know if you need to worry about that or not, but 90, I would say 99% of projects will never even get close to that point. So, it's almost like, to be frank, it's almost like a sense of vanity that you think the project you are working on right now is something that really needs to worry about that, because you probably are not even close. TAYLOR OTWELL Yeah, and we are assuming, developers don't approach projects in a rational way, even though we think they might. Like people don't choose frameworks in a rational way, they don't choose anything really laughs related to tech in rational way, a lot of time, as surprising as that is. There's a lot of things that go into it and some of it are sort of personality things, maybe they don't like a way that a certain framework is marketed or not marketed. You know some people are very turned off by active marketing around open source, so, maybe they don't like the style of Laravel sort of friendly, hey look at easy this is easy kind of marketing and they are turned off by that, and so they choose something that is more toned down, more sort of suite and tie like Zend because that fit's their personality better. It's not really a technical decision, it's more of just personality or subjective decision. And that happens a lot with tech in general, you know, some people don't use anything that is popular in general, just the kind of classic hipster type thing. I think a lot goes into it and rarely is it purely technical. Sometimes it is... they don't like me! You know, they don't like me personally. And so they don't like Laravel or use Laravel. JEFFREY WAY: I like you Taylor. Everyone laughs JEFFREY WAY: Right before we started recording, I guess RailsConf is going on and I was watching DHH give his presentation live...and he was kind of talking about this to some extent...the idea that it is important even for a tool like Rails or Laravel to have like their own culture and their own sense of values. And he was talking about how like a lot of people take this idea that you just learn all the different languages and then... you do...you are a programmer. So, if you need to work in this local language, you do it and you just apply everything over. And he was talking about how like while that is true, what is wrong with being part of the community that has a very specific culture, very specific views...he talked about like the people that are still using Rails are doing it, maybe not just because it's better, but because they agree with the values that Rails represents. That is like the huge reason why people still use it to this day. And I think, that is very much true for Laravel as well. It is kind of interesting way to think about things. It's all personality, it's about what your values are. What you connect with and what you don't connect with. TAYLOR OTWELL Yeah...when I first started Laravel, that was a big part of how I wanted, how I thought Laravel could be successful, because I knew that in my own life, like there is sort of this ongoing desire to sort of connect with a group of people. Some sort of community or whatever around shared values. And you know that can be found like around many different things like music, or sport or religion, or whatever. And I knew with programming like I wanted to connect with this group of people that has similar values about writing really clean code and having a good time doing it and making it enjoyable and sort of interesting, new and fresh. And that's kind of how I presented Laravel and I think it resonated with some people that were also looking for a group with those kinds of values. And that is still the kind of the values that we obviously try to share today, but yeah, it wasn't necessarily a purely technical thing, it was building this group of people that sort of resonates around similar ideas and working on it together. MATT STAUFFER: It's interesting 'cos I think that even in my question, I conflicted big and enterprise and I think that you guys kind of really drew out the difference between the two in some of your answers, I mean if we think about it, like Jeffery's first answer was, while enterprise might be really interested in having a company back it versus a person..like Taylor said, we get the question of what if Taylor gets hit by a bus all the time. And it makes sense right, like we have clients all the time coming to us like, say, you know well, you know the CEO or the board or the CFO of our multi-million dollar or multi-billion company are very worried that we are gonna invest a whole bunch of money and time in something and X ..and it's not always...and that Taylor might get run over by a bus, but a lot of developers are getting non-developer input on decisions they make here and there are certain times where some IT persons have set up some rules that says like "You can only use projects like this and not [projects like that and I do wonder whether there are some constraints there like one of them being, that it must of be owned by a company, I know that when we worked with CraftCMS a lot of people said well, why would you, there's actually a business value of using CraftCMS over something Wordpress because Craft is making money and therefore it's a sustainable business model and therefore the business people are actually less worried about this thing disappearing. Right? So like maybe a more direct chain of profit to the people who are running the thing might actually make it clearer. I don't know if that exists maybe ZendCon would be something like that but I know it's Laracon too...I don't really know! But it's interesting that the requirements of ...like the true enterprise requirements...like because I work for a company, my company has these requirements...but I think people, including me when I ask these questions conflict that with big. And so I think there is a good place to take this next is, lets step away from enterprise a little bit...enterprise culture is a thing...you know whatever...let's talk about big, so the thing mentioned Taylor, and Jeffery both of you said a lot of people come along and say oh well mine is going to be the one that finally pushes those bounds right, I am gonna run into traffic issues and stuff like that, so, first of all, like I know that we can't say a lot of the names of big sites that are running on it but I feel like is there anything we can do to kind of like just ... I mean, I know several of them 'cos I am under NDA with several of them, you know, who have talked to us about doing some work with us but there's like multi- I mean milions of millions of hundreds of millions of page views sites running on Laravel...there is like Alexa top 500 sites running on Laravel, there's ...hummmm...what's the big group of all the businesses in the US? I can't remember the name of it...Fortune 500 companies running on Laravel...like multiple Fortune 500 companies whose websites are running on Laravel. Are there anything that you guys can share, like to say, hey look, this is the proof, like we've got big stuff running through here. TAYLOR OTWELL Trying to think some of them..I mean like the Vice Video, Log Swan, you know, various video games sites like FallOut 4 had their landing page on Laravel...other stuff like that, but you know, it's sort of never seems to be enough and it sorts of becomes this treadmill of, you know, I have to give one more proof that it sort of can work...and I just wonder like what's really underlining the question like, do they want to know that if I build my big app on Laravel will it be infinitely maintainable and clean...and no, Laravel won't automatically make your app amazing to maintain for 10 years, you know, I don't know if it's like trying to sort of scale responsibility for you also having to do a lot effort to like make your app enjoyable to maintain or what...but... MATT STAUFFER: Bad programmer, can write a bad app with any framework right? Like, nothing is going to rescue you from that..not saying that the person asking is necessarily bad..but I think that's a great point you made earlier Taylor, I wish we can further into it, is that with Laravel like yea ok, Laravel has it's own conveniences but at some point every single app is basically just you writing PHP... TAYLOR OTWELL: Yeah MATT STAUFFER: And especially at this level when you are talking about hundreds of thousands of lines of code, like the vast majority of the dependencies there is going to be just PHP code right? TAYLOR OTWELL: Yeah. Once you get...let's just take like a Laravel app...'laravel new'...whatever...once you are at the controller, method, in your controller class, everything else is up to you, so whether you use the validator or whether you even use Eloquent at all, or whether you use anything in Laravel, is entirely up you, so it was your choice to do whatever you did past that point. So, it's not Laravel making you do any one particular thing. So, that's sort of the point where you are gonna have to, you know turn your thinking cap on and really plan on how to do a big project, because as far as the framework is concerned, the framework is gonna be a much smaller concern than your actual code, you know the framework is gonna be routing session, some caching, some database calls, but you are the one that is gonna have to like, figure out the domain problems of your app, which is gonna be way more complicated I think, than any framework problems you are gonna have. Like, how is this app gonna work? How is it gonna provide value for our customers, or whatever, those are all like much bigger questions I think...than worrying about can Laravel be used for "Big" apps. MATT STAUFFER: One of the questions we got on Twitter was, how to build big sites with Laravel, scaling, deployment, database structure, load balancing, so, lets say someone is on board right...yes, Laravel can be used for big apps period..it's good..so, what are some considerations that you would have, so if you were taking, you know, a default app out of the box and you "laravel new" it and you build some basic stuff and someone says alright, this app that you just built needs to be able to handle you know, a million hits a week next month..what are the first things you would look to, to start, kind of hardening it against that kind of traffic? TAYLOR OTWELL: Hmm, really simple things you could do is to make sure you are using a good cache or session driver, so probably you wanna use something like Memcache or Redis or something that you can centralize on one server or Elasticache if you are on AWS whatever, you know, you are also probably gonna use a load balancer...PHP is really easy to deploy this way you know, to put a LoadBalancer up and to make a few PHP servers and to alternate traffic between them. PHP makes it really simple to do that kind of scaling and then with Laravel, make sure you use config cache, make sure you are using the route cache, make sure you are doing composer dump autoload optimized, you know, really simple things you can do to sort of boost your application a little bit. MATT STAUFFER: Jeffery, I know Laracast is pretty huge, you kinda in there day in, day out, so I know you are super focused on making sure that it's performing, especially related to maybe, let's say, databases and deployment, can you give me any kind of tips that you have there for people who are building new kind of high traffic apps that you have learned from developing Laracast? JEFFREY WAY: Yeah, Laracast is surprisingly high traffic, if you look at the numbers. And I can tell you, not doing that much...just to be perfectly frank, beyond what Taylor said, a lot of that stuff is kind of the fundamentals...of using config cache...a lot of people will just deploy and stick with the file based cache driver...laughs..you will obviously have some issues with that...but, I am not doing anything that fancy. A lot of it becomes basic stuffs like, people completely ignoring the size of their images...like that is always the very first one I bring up and it's such a 101 tip, but if you go from site to site, you can see it being abused immensely. There is so many ways to work it into your build process...or if not, just dragging a bunch of images into..like a Mac app...I am trying to think of the one I use... TAYLOR OTWELL: Is it ImageOptim? JEFFREY WAY: ImageOptim, yeah just, like when you deploy you can drag a bunch of images up there and it will automatically optimize them as best as it can. And you would be shocked how much benefit you can get from that...versus people who just take a 100kb image and they throw it into their project...you know it's funny that people will debate single quotes versus double quotes all day and then throw a 200kb image into their banner, you know, it makes no sense, people, are silly that way. TAYLOR OTWELL: I think another great thing to do is separate out your database from your web server. If you are building anything, you know, that you care about...like in a real way, it can be good to do that..and sort of, if you don't do it from the start, it can be kind of, you know, scary to make the transition, because now you've got to move your live database to another server...but, there are tools out there to make it pretty easy, there are even free packages out there to make it pretty easy to back up your database, so, that has always been really nice for me to have that on a separate server. So definitely if you are gonna have to start do that because it just makes it easier to do that scaling where if you wanna add a second server, you don't have this sort of funky situation where you have one webserver talking to another webserver because it has your database and all that other stuff where now if you want upgrade PHP you've got to upgrade PHP on the same server that your live database is running on...just scary situations like that...that, that would help you avoid. MATT STAUFFER: Are you guys using a lot of caching on your common Eloquent Queries? JEFFREY WAY: Yeah, I do quite a bit. TAYLOR OTWELL: I really don't on Forge. MATT STAUFFER: I wondered about Forge, because with Forge, each query is gonna be unique per user right? Versus with Jeffery where there might be like a page that lists out all of the episode and you might have 10, 000 people hit that same page. With Forge, it's more 10,000 people each seeing a totally different list right? TAYLOR OTWELL Yeah, it is very dynamic. The one thing I do cache is the list of invoices from stripe because there is a stripe API call we have to make, so we do cache that. JEFFREY WAY: Yeah me too. TAYLOR OTWELL: But other than that I don't think I really do any caching. So, Jeffrey probably has more insight on that...? JEFFREY WAY: Well I have a lot of the stuff on the Forum, because the forum just gets hammered...you will be surprised about how popular that forum is... MATT STAUFFER: I won't be surprised because it shows up on the top results of everything. JEFFREY WAY: I know and I do love finding my forum when am googling for my own ignorance. And I go to my own website to figure out how to do something which is a great feeling! But I do have some queries related to the forum that are pretty intense, a lot of like multiple joins, pulling in stuff, so I do cache that..even summary, I cache that every 10 minutes at a time. Just to reduce the weight a little bit. I get a lot of use out of that stuff and then, yeah, of course, the type of stuff that doesn't just change like Categories or Channels or like Taylor was bringing up, there is no reason not to cache those things. And yes especially the invoices it's a great example, if you are making a network query every single time a page is hit, there is really no need to do that if it's going to be the exact same results...every single time give or take a change or two...so those are obvious cases where you want to cache it as long as you can. TAYLOR OTWELL: How do you burst your cache on Laracast? JEFFREY WAY: Whenever something cache bustable takes place...I guess... TAYLOR OTWELL: Ok so I guess like whenever a new category is out and stuff, you just ... JEFFREY WAY: When a new category is out yeah, as part of that I will just manually bust the cache...or no, I will automatically bust the cache...in other areas, it happens so rarely that I just boot up 'php artisan tinker' and do it myself....*laughs...*which is crappy, but no, anything more common like that, I will just automate it as part of the...whenever I update the database. MATT STAUFFER: We are working on an app right now that has Varnish sitting in front of it. And so literately the code that is behind our Skype window right now is me writing a job that just wipes the Varnish cache either for the whole thing or for specific routes in response to us notifying that the change happens and that's an interesting thing because the cache is outside of Laravel app, but it's cached based on its routes...and so I have the ability to say...well, these particular changes are gonna modify these routes and I built an intelligent Job that kinda get sent out anytime we need those things. So even when it is not within the app, even when it is not your Laravel cache, there is still a lot of ability to kind of put some heavy caches on. And in speaking of that kind of stuff cache busting, use the Version in mix all the time. I mean that is just, because then you can throw Varnish or whatever else and just do infinite cache on your assets. And if you all don't know what that is, it's essentially every single asset that gets built by Mix now has like a random string appended at the end of the file name. And every time it's changed, it gets a new random string on it. And so you can set a forever expires on your Javascript files, your CSS files or whatever else, because anytime it needs to change, it would actually be a different file name as your browser will get to request it and then Varnish will get re-request it or whatever is your cache is. JEFFREY WAY: But on that note, actually, I have been thinking about that, is there...can you guys tell me any real reason why when we are using Versioning, the file name itself needs to change? Because you are using that Mix helper function already to dynamically figure out what the version file is, so is there any reason why we can't just use a unique query string there, or not a unique query string but taking where we would change the file name to include the version, we just include it as part of the query string and then the file name always stays the same? MATT STAUFFER: I know that HTML5 boiler plate used to do just query strings and I hadn't even thought about that, but that might be possible, where the files always stay the same but your...what's that JSON file that has the .... JEFFREY WAY: JSON manifest... MATT STAUFFER: Maybe that just adds the id into the new id to pass? And it's just like authoring comment or something like that? JEFFREY WAY: Yeah, when you version the file, it creates, basically it gets like a Hash of the file that you just bundled up and then that gets included in the new file name...but every time you bundle if that changes, you will never know what that file name is called in your HTML so basically you can use this Mix helper function that Laravel provides that will dynamically read that JSON file and it will figure out, oh you want this file, well, here is the current hashed version and we return that...but yeah I have just been thinking lately like, is it kind of dumb that we keep creating a new file, when instead, the Mix manifest file can just have the relevant query string updated. MATT STAUFFER: So, I googled really quick and there is a thing from Steve Souders....who is the guy who originated the 13 rules of make your website faster or whatever they were...the whole like, you know less HTTP requests, and it's called in your files names don't use query strings...I havent read it yet...oh High Performant websites...I havent read it yet and it is 9 years old. My God! Now that I am seeing seen him talking about Squid, I have worked with Squid before which is like a pretty old cache, but a lot of stuff that works for Squid also works for Cloudflare so I am guessing Cloudflare is either using Squid or adopted Squids terminologies and I do think...and I also did a whole bunch of work with one of our clients who is writing custom Varnish rules right now. And I do remember that stripping query strings is a thing that happens sometimes especially when it doesn't matter, for example in the case of asset, I think it maybe a thing that he do by default, so he is digging through here and Squid and proxies and stuff like that, I think basically what he is saying is your proxy administrator could go and teach the proxy to care about query strings but all then ignore them by default... JEFFREY WAY: Ok MATT STAUFFER: So by choosing to use it with query strings you are opening up a lot of job opportunities where it doesn't work the way you are expecting. TAYLOR OTWELL: I have been using Cloudflare quite a bit recently. The whole Laravel website is behind Cloudflare, heavy Cloudflare caching, very few requests actually hit the real server. Mainly because it's all static, you know documentation but am a big fan of that, especially when you are scaling out webservers, if you are using, you know, some kind of Cloudflare SSL. I think Amazon has a similar SSL service now, it makes so much easier to add a web server because you don't really have to think about your certificates as much, you know, putting your certificate on every server, especially because since you can just use like a self-signed certificate if you are using the Cloudflare edge certificate...so that's something to look into and it's free to get started with and it has some nice feature for scaling. MATT STAUFFER: I helped some folks at this thing called the Resistance Manual, which is a Wiki about basically...huh......sorry to be mildly political for a second...all the negative impact of the Trump presidency and how to kind of resist against those things. And so they wanted me to help them gather their information together and I said well I can help out, I am a tech guy and they were like, do you know, you know, media wiki, which is the open source platform behind things like Wikipedia, and I said no, but you know, I can learn it. Turns out that it's like really old school janky procedure PHP and so I said yeah I can handle this but it is also just extremely dumb in terms of how it interacts with the database and so when you are getting you know millions of hits like they were on day one, we had a like a 8 core, you know, hundreds of hundreds of dollars a month Digital Ocean box and it was still just tanking. Like couple of times a day that the caches were getting overflowed and all that kind of stuff, so, I threw clouldflare on it, hoping it would be magical and the problem with that is it's not Cloudflare's fault it's because Cloudflare or Squid or Varnish needs to have some kind of reasonable rules knowing when things have changed and for anyone who has never dealt with them before there is a sort of complicated but hopefully not too complicated dance between your proxy and reading things like expires headers and E-Tags and all that kind of stuff from your website. And so if you throw something like Cloudflare or something like that on it and it is not working the way you expect, the first thing to look at is both the expires headers and the cache link headers that are coming off of your server pre-cloudflare and also what that same response looks like when it's coming back after going through cloudflare, and cloudflare or whoever else will add a couple of other ones like did it hit the cache or miss the cache and what's the expires headers and what's the Squids expires headers, so there are lots of headers that give you the ability when it just seems like it is not just working the way you want and there is only like 3 configuration options in cloudflare, then what do you do? Go look at your headers and I bet that you know, 15 minutes of googling about how cloudflare headers work and Squid headers work and then inspecting all your headers before and after they hit cloudflare and you will be able to source out the problem. Alright so, we talked databases, we talked loadbalancing a little bit, deployment, so, if anybody is not familiar with zero downtime deployment, just a quick introduction for how it works...if you use deployments on something like Forge the default response when you push something new to your github branch is that it hits 'git pull', 'composer install' 'php artisan migrate' or whatever, so your site could erratically be down for seconds while the whole process runs and so, if you are worried about that you can run, 'php artisan down' beforehand and 'php artisan up' afterwards, so when it's down, instead of throwing an error, you just see like hey this site is temporary down kind of thing. But if you are in a circumstances where that is a problem, you might want to consider something like Capistrano style or Envoyer style zero downtime deploy, look somewhere else for a much longer explanation but essentially, every time a new release comes out, it's cloned into a new directory, the whole installation is processed and run there and only once that is done, then the public directory that is getting served is symlinked into that new directory instead of the old one. So you end up with you know with the last 10 releases each in its own directory and you can go back and roll back into a previous directory and Taylor's service Envoyer is basically a really nice User Interface in front of that... For me that has always been the easiest way to handle deploys in a high kind of pressure high traffic high loads situations is just to use Envoyer or Capistrano. Are there any other experiences you've all had or tips or anything about how to handle deploys in high traffic settings when you are really worried about you know those 15 seconds or whatever...are there any other considerations we should be thinking about? or anything? TAYLOR OTWELL: That's the extent of my experience..I haven't had anything that is more demanding than using Envoyer. Am sure there is you know...if I were deploying to thousands of servers, but for me when I am just deploying to 4 or 5 servers Envoyer has been huh...pretty good bet. MATT STAUFFER: And hopefully if you are deploying to a thousand sites, then you've got a server person who is doing that. You know like we are talking dev'ops for developers here right, like when you are running a minor server not when you are running a multi-billion dollar product and the clients I have been talking to were working with all these kind of Varnish stuff..I didnt setup Varnish you know, my client setup Varnish and took care of all these stuff and he just kinda asked me for an input in these kind of stuff and so I definitely would say like there is definitely a limit at which...you know...people often lament like how many responsibilities they are putting on developers these days. I don't think we all have to be IT people capable of running servers for you know, a one thousand server setup for some massive startup or something like that. But I think like this whole, you know, how do I handle a thing big enough that 15 seconds of down time where a migration and composer run...I think that is often within our purview and I think something like Capistrano or Envoyer is for me at least it's being a good fix...the only situation I have not had to run into which I have heard people asked about online and I wanna see if you all have any experience there is, what if you do a roll out and it has a migration in it and then you need to roll back? Is there an easy way to do the 'migrate:rollback' in an Envoyer rollback command or should you just go Envoyer rollback as you SSH in and then do 'php artisan migrate:rollback' TAYLOR OTWELL: Sort of my view on that recently like over the past year has been that you will just never roll back, ever. And you will always go forward. So, because I don't know how you rollback without losing customer data. So, it's, a lot of time not really visible to rollback. Lets just pretend you could, then yes, there is no real easy way to do it on Envoyer, you will just kind have to SSH in and do php artisan rollback like you said. But I think a lot of times, at least for like my own project like Forge and Envoyer, I can never really guarantee that I wasn't loosing data so I think if at all possible, what I would try to do is to write an entirely new migration that fixes whatever problem there is. And deploy that and it will just migrate forward, you know. And I will never really try to go backwards. MATT STAUFFER: You find yourself in that accidental situation where you deploy something that should never have been, then you then go 'php artisan down' real quick, run the fix, push it up and let it go through the deploy process and then 'php artisan up' after that one deployed. TAYLOR OTWELL: Yeah. That's what I would do. If it's, I mean, sometimes if it's low traffic and you feel pretty certain no one's messed with the new database schema, then probably you can just roll back, but, I was just worried in Forge's case that people are in there all day, I would lose data. So that's why I would every time possible to try and go forward. MATT STAUFFER: Yeah, that makes sense. TAYLOR OTWELL: I have actually stopped writing down methods in my migrations entirely recently...not that it's optional. JEFFREY WAY: I feel evil doing that! Like I very much get the argument...but, when I create a migration and I just ignore the down method, I feel like, I am just doing something wrong. I am still doing it right now. TAYLOR OTWELL: It's really mainly visible in Laravel 5.5 'cos you've got the new db:fresh method or db:fresh command, which just totally drops all the tables without running any down methods. MATT STAUFFER: I end up doing that manually all the time anyway because at least in development, the most often when I want to do refresh, it's often in context where I still feel comfortable modifying old migrations..like basically, the moment I have run a migration in prod, I would never modify an old migration. The moment there is somebody else working on the project with me, I will never modify an old one unless I have to and it's just so important that I have to say hey, you know, lets go refresh. But often when I am just starting something out and I have got my first 6 migrations out, I will go back and hack those things over and over again...I don't need to add a migration that has a single alter in it, when I can just go back and edit the thing. And in that context often, I change the migration and then I try to roll back, and sometimes I have changed it in such a way where the rollback doesn't work anymore. I rename the table or something like that... JEFFREY WAY: Right.... MATT STAUFFER: So fresh is definitely going to be a breath of fresh air. JEFFREY WAY: I do wish there was maybe a way to consolidate things, like when you have a project that has been going on for a few years, you can end up in a situation where your migrations folder is huge...you just have so many. And it's like every time you need to boot it up, you are running through all of those and like you said sometimes, just the things you've done doesn't just quite work anymore and you can't rollback. It would be nice sometimes if you could just have like...like a reboot, like just consolidate all of these down to something very very simple. MATT STAUFFER: We did that with Karani I don't know if there is...there is a tool that we used that helps you generate Laravel migrations from Schema and we did it soon after we had migrated from Codeigniter to Laravel for our database access layer. Karani is a Codeigniter app where I eventually started bringing in Laravel components and then now, the actual core of the app is in Laravel and there is just like a third of the route that are still on Codeigniter that havent been moved over and once we got to the point where half of our migrations were Codeigniter and half of them were in Laravel it's just such a mess so we found this tool...whatever it was. We exported the whole thing down to a single migration, archived all the old ones, I mean, we have them on git if we ever need them and now, there is just one..you know, one date from where you just get this massive thing, and then all of our migrations happen kind of, from that date. And for me, I actually feel more free to do that when it's in production because the moment it's in production, I have less concern about being able to speed it up through this specific process because like if something is from two months ago, I am sure it had already has been run in production and so I feel less worry about making sure the history of it still sticks around... JEFFREY WAY: Alright...right... MATT STAUFFER: Alright...so the next question we have coming up is, "I will like to hear about how you all stay productive." And we've talked on and off at various times about what we use..I know we've got us some Todoist love and I know we've got some WunderList love...hummm... I've have some thoughts about Calendar versus Todo lists and I also saw something about Microsoft buying and potentially ruining Wunderlist..so what do y'all use and what happened with Wunderlist. TAYLOR OTWELL: Well, Todo lists are dead now that Wunderlist is dead. MATT STAUFFER: Yeah...So what happened? TAYLOR OTWELL: Wunderlist was my preferred todo list, I just thought it looked pretty good...and Microsoft bought them I think, that was actually little while back that they bought them but now they have finally announced what they are actually doing with it...they are basically shutting down Wunderlist and turning it into Microsoft Todo...which doesn't look a lot like the old Wunderlist and doesn't have some of the features of the old Wunderlist...but it looked ok..you know, it seems fun, so what I have done is migrated to Todoist rather reluctantly but it's working out ok. JEFFREY WAY: Please correct me...is this funny like, Wunderlist is gonna be around for a very long time but just the idea that they are shutting down it's almost like you feel compelled...we've talked about this with other things too...where it's like you suddenly feel like oh I need to migrate...we talked about it with Sublime, like if we find out tomorrow, Sublime is dead in the water. But you can still use it as long as you want. Even though, it would still work great, you would have this feeling like well, I gotta get over to Atom or I gotta start moving on...'cos this place is dead, even though Wunderlist is gonna work for a long time. TAYLOR OTWELL: Yes...laughs...as soon as it was announced, I basically deleted Wunderlist off my computer... All laugh.... TAYLOR OTWELL: Which makes no sense, but it's so true... MATT STAUFFER: I needed a new router and everyone told me, you use the Apple Routers 'cos they are the best...but I have heard they are 'end-of-life'd'....and I was like no way...no way I am gonna throw all my money there and someone say well, why does it matter...you know...you are gonna buy a router and you are gonna use it till it dies? And I said I don't care...I am gonna buy something else 'cos it just...I don't know...it's just like you are putting your energy and your effort after something that can't...you know can only be around for so long and you just want..you want be working with something that's gonna last I guess... JEFFREY WAY: Yeah...I am still on Wunderlist right now. I am hearing...humm..if you guys are familiar with "Things" that was like the big Todo app years ago...and then they have been working on Things 3 or third version for a year...it's been so long, that people joke about it..you know, it's almost like that...new version of..humm..what was it...there was hummm...some Duke Nukem game that.... TAYLOR OTWELL: Is it Duke Nukem Forever..? JEFFREY WAY: Yes! For like 10 or fifteen years and it finally came out! It's looking like next month, "Things 3" will be out and I am hearing it..like the prettiest ToDo app ever made I am hearing really good things. So, I was hoping to get in on the beta but, they skipped over me. So, I will experience it in May but I am excited about it. So, that's the next one..but you know what, I am never happy with Todo apps..I don't know why. It's kinda of weird addiction...if you say an item address basic need...even like a Microsoft Todo. Ok, your most basic need would be to like say...Go to the market on Thursday. You can't do that in Microsoft Todo. You have to manually like set the due date to Thursday. Rather than just using human speech. TAYLOR OTWELL: Have you tried Todoist? JEFFREY WAY: Todoist works that way. Huh I think Wunderlist works that way but now, Microsoft Todo doesn't. MATT STAUFFER: Oh ok..got it. You lost that ability right? JEFFREY WAY: Yeah, it's so weird like every task app would have something that's really great and then other basic things that are completely missing...and it's been that way for years. MATT STAUFFER: I always feel bad, I mean I bought things...thankfully I managed to skip...what was that thing...OminiFocus, I skipped OminiFocus which is good 'cos that is hundreds of dollars saved for me. And I tried...I tried all these different things and I finally figured out that there is a reason why I keep jumping from one to the other, is because..for me...this is not true for everybody...and I think it might have to do with personality a little bit...and the industry a little bit, and what your roles are whatever, Todo lists are fundamentally flawed because they are not the way I approach the day...and they are not the place my brain is...so, I can force my brain into a new paradigm for even a week at a time but I have never been able to stick with it and it's not the app, I thought it was the app, I thought just once I get the right app, I will become a todolist person and I realized, I am not a Todolist person so I can try every app and it can be perfect and I will still just stop using it 'cos it's not what I think about. And when I discovered that I can't use and then later found some articles talking about how I am not the only person who come up with this...that validated me...'cos I put it on my calendar and so, if I need to do something, I put it on my calendar and then it gets done. And if I don't put it on my calendar, it doesn't get done. End of story. It's so effective for me that my wife knows at this point that if she asks me to do something and I don't immediately pick up my phone and put it on my calendar, she knows it's not gonna get done. Because that's..that's how things happen and so, it's amazing to me, that..laughs...she literarily, when she first started discovering this, she sent..and she's not not super technical..like she's smart, she just doesn't like computers all that much...but she knows how to use google..and so, she, when she first discovered this, she sent me a calendar invite that is "Matt Clean Toilet"...and it's for 8 hours every Sunday and so, I will be on a screenshare..'cos she's like that's how I am ever going to clean the toillet right?...so I will be on this screenshare with a client and I will pull up my calendar and to say hey when is it a good time for us to have this meeting? And I will be like..oh "Matt Clean Toilet" takes the 8 hours....laughs... But for me, my todo list is my calendar. And everyone kinda in the company knows what my calendar is completely for and Dan actually has asked me to start marking those things as not busy, so, Calendly, our appointment app will still allow people to book...like clients to book times with me during that time..but like essentially, if I need to get something done, like, I..I need to review a whole bunch of pull requests, like Daniel who works with me literarily just put meeting invite on my calendar for tomorrow 10:30 and it says "Code Review @ Daniel". And literarily after this podcast, there is an hour that says "Code Review with James" because they know that that's how they get it....and there is...500 hundred emails in my inbox and all these other things I have to do, but if it goes to the calendar, it gets done. So, have you guys ever tried that? Does it sound like something that will click with you or no? JEFFREY WAY: I think it makes good sense for you because it sounds like your days are scheduled like your day is full..humm...my day isn't quite as much like do this with so and so, I don't have as many meetings. So, most of my day is like: these are the things I wanna get done. And it doesn't matter whether I do it at 9:AM or 9:PM, so, Todo list works good for me but yeah..I can see how like if my day was very segmented and scheduled that would make far more sense than reaching for some todo app. TAYLOR OTWELL: Yeah..my days are usually pretty free-form outside of the kinda standard schedule where I always do emails and pull requests first thing in the morning but then after that lately it's been...you know..was work on Horizon..now it's work on the thing that comes after Horizon, and that's pretty much the rest of the day, you know, besides whatever Laracon stuff that I have to do recently, which is more of a seasonal thing you know. But I got lunch, all booked, that's done...but whatever we need, you know, furniture, catering or whatever. But yeah, then I pretty much just work on one thing throughout the day. So, I don't really switch context like that a lot. But I was so despondent at the Wunderlist announcement that all Friday afternoon I wrote a chrome extension that when you open new tab, it opens "Discussing Todo List" that I wrote in VueJs and you know HTML and it uses the chrome sync to sync it across my chrome account to all my laptops whatever...so... every new tab has a todo list, but even that, I was still not happy with it and deleted it and the whole afternoon went with the todo list. Anyway, but I have forgotten about the Chrome extension thing. I need to open source it. MATT STAUFFER: Every developer has to make their own Todo list at some point in their lives. TAYLOR OTWELL: Yeah. That's interesting about the calendar though...I want to get Calendly because it looks like a really cool app and try some more calendar stuff 'cos I haven't really dug into that as much as I could. MATT STAUFFER: Yeah...I use basic Calfor my desktop app, I know that, I think I use Fantastic Cal on the phone or something..a lot of people love that...the thing that we like about Calendly is that it gives me a public link that syncs up to my Google calendar and so when we need to schedule things like we are in the middle of hiring right now or client meetings, I just send them to my calendly link and I just say, go here and schedule time with me and it syncs up with my Google calendar and it shows them all the times and I can say..go schedule a 60 minutes meeting and I give them the 60 minutes link or 5 minutes or whatever and you can put different rules around each. So I teach calendly when do I drop my son off at school and when do I ...you know drive from my home office to my work office all that kind of stuff...so that it knows when I am available and then..because we just wasted so much time between Dan and me trying to get our calendars in sync. So, that's what I love about Calendly. TAYLOR OTWELL: What really sold you on basic Cal over like you know just Apple Calendar or whatever? MATT STAUFFER: I wish I can tell you...I know that it handles multiple calendars better...but it's been so long since I made that choice that I couldn't even tell you. I know that Dan, my business partner hates calendars more than any person I have ever met and almost every time he complains about something, I am like oh yeah, you can do that with Basic Cal and he is like "I still use Apple Calendars" I know those things but I can't tell you what they are..so. Alright...so one last question before we go for the day. Saeb asked "It would be nice to hear why are guys are programmers. Is it just something you love and enjoy or is it just a way to put bread on the table? Is it passion what is it that makes you wanna be a programmers?" JEFFREY WAY: I will go first. I fell into it. I think we are being disingenuous if we don't say that to some extent...but I know even from when I was a kid, I love the act of solving puzzles. I remember I had this Sherlock Holmes book and it's one of those things where every single page is some little such and such happens...somebody was murdered and then Sherlock comes, points to so and so and says you are the person who did it. And the last sentence is always..."How did he know?!" And that was like my favorite book. I would go through it every day and try to figure out how how did he figure out that this was the guy who...you know...robbed the bank or whatever it happened it be. So, between that or I play guitar for over a decade and I went to school for that. It's all still the same thing of like trying to solve puzzles trying to solve riddles trying to figure out how to connect these things. You may not know it with guitar but the same thing is true, like puzzles and you start learning about shapes on the guitar and how to transpose this to this. And how to play this scale in eight different ways...it's still like the same thing to me it's figuring out how to solve these little puzzles. And so for programming, I feel like it's the perfect mix of all of that. There needs to ne some level of creativity involved for me to be interested in it....I always worried I would end up in a job where I just did the same and only this thing every single day. And I would finish the day and come back tomorrow and I am gonna do the exact same thing all over again. So there needs to be some level of creativity there which programming does amazingly well or offers amazingly well. Although my mum would never know. I think she thinks I gave up on music and went to this like boring computer job...and even though when I explain to her like no there is huge amounts of creativity in this I don't think she quite makes the connection of how that is. So, yeah, between the creativity and solving puzzles, and making things, it's a perfect mix for my personality. TAYLOR OTWELL: I was always really into computers and games and stuffs growing up, so it was pretty natural for me to major you know in IT in college but I didn't really get exposed to the sort of the front side of programming and open source stuff until after college when I started poking around on side projects and stuff like that. So, I did kind of fall into this side of programming you know, where, you are programming for fun as a hobby and working on open source after I graduated but I was always kind of interested in looking back sort of things that are similar to programming so like into games like SimCity and stuff like that where you are planning out you know, your city and sort of...one of the similar things you do when you are building up big projects or whatever a big enterprise project you know was sort of planning and trying to get... just the right structure whatever, so I was kinda always into that thing. And just sort of naturally fall into that path later in life. MATT STAUFFER: I...my brother and I started a bulletin boards service...out of our spare bedroom, I mean we were in Elementary or middle school or something like that..and he is 3 and half years older than me and he is a little bit more kind of like intellectual than I am, so, he learned how to code the things and he said why don't you be the designer. And that kind of trend just kept up. When he learned how to make websites, he be like well, I am gonna make websites and you be the designer. And so I kinda had this internalized idea that A...I was interested in tech..but B, I was the design mind. And the thing is, I am not a very good designer...like the only reason I kept getting into design is because I had like... I was creative, I was a musician and stuff but also because my brother already had the programming skills down and so he needs a designer right? And so, I think that I went off to college, by that point I already had a job as a programmer, I already had my own clients, doing you know frontend web developments and basic PHP, Wordpress that kind of stuff but I was like well I need to become a better designer so I went off to college for design and I just realized I am not a designer, so I left. And I went off and I did English and I worked with people and I worked for a non-profit having thought you know like oh that is not my thing and then I kinda did a turn round when I left the non-profit, my wife went back to school and I needed to pay the bills, so it was..there is an element of paying the bills..I say like well I know that web development pays well, so I will go back to that. And just discovered that I love web development...it is fulfilling and it is satisfying...it is creative...it's using your brain in all this really interesting ways...each one it's a little bit the same, a little bit unique, there is always really great things about it...I mean I remember one of the things that drove me nuts about my previous work..both in design and in working in the non-profit is that there is no sense like whether you did a good job or not. There is no sense of when something is done. You are just very kinda of vague and vacuous and with this, it's like there is a defined challenge...and you know when it's done. And you know whether you did a good job or not. And I was just like that was huge...that was so foundationally helpful for me. And so I think just kind of being able to approach it and realize that it's creative..like, it's creative and it is well defined..it's a little concrete..it's a challenge all those things together I think for me..and it turns out that it wasn't just a way to make money and I have also since discovered now that I run a company that I also have all the people aspects here..it's about relationship, it's about communities...I mean we have talked about that a lot in this episode and running a company is about hiring and company culture and all those kind of stuff... So I get to comment especially at the level of tech that I get to do day to day whether it's open source or running company I feel like it's all of the best together in one word. JEFFREY WAY: So Matt, how did you go from taking on smaller projects when you went back to web developments to suddenly running Tighten? Like how did you get there? What happened? Were you getting more projects than you can handle? MATT STAUFFER: The opposite. I...I had no work. I worked out of a co-working space in Chicago and I only had about 10 hours a day, fifteen hours day filled because I didnt know anybody. And I had not been doing anything in the industry for 6 years. So, I said, you know what? When I worked for non-profit there was this need I had and I still worked for those non-profit's per time at that point, so I just started building an app...I built an app by hand while I worked for the non-profit in PHP and it was terrible. And I was like oh, I have heard about this framework thing, and so I tried building it in CakePHP and it was terrible, and so, those experiences matured me a little bit...and so by the time I was now kinda going solo as a developer, every free moment I would have, outside of the you know, the contract work I had, I would go learn Codeigniter. You know my buddy Matt had learned ExpressionEngine and said hey, checkout Codeigniter I think you might like it. So I learned Codeigniter and I did all these work in Codeigniter and I built this whole app which is Karani, the thing we are talking about today and I built Karani and I made it for myself and then my friends wanted it and so then I made it for my friends and then it was costing me money to upkeep, so I learned how to charge them money..and Stripe was brand new at that point, so I almost went with Stripe but I ended up going with BrainTree...I got into like big and software as a service app development through there...and right at that same time... I was teaching my buddy all about modern web development HTML5 boiler plate all that kind of stuff after work one day and this guy walked over...the one guy in my co-working space that I had never met, who was always in his closed office and he was like, are you a developer? Are you looking for work? I was like yeah..and he was like..I need you...would you consider working for me? I played it all cool but I was like YES..PLEASE I NEED WORK!!! I only have 10 hours of work a week right now. And it was Dan... And so, Dan and I worked together on this massive project for a year and the client took 6 months to actually get the work ready for us. And he already had me booked and he already had me billed and he was why don't you just go learn become the best possible developer you can..I will throw you know, 30 hours a week jobs just off my various you know various projects...but in all your free time and even in those projects, just learn to become the absolute best, because we were working for, you know, this massive billion dollar international company at that point. And responsive was like just a thought in people's minds. So, I wrote you know, articles and I created responsive libraries back in the early days of responsive and all those kind of stuff and I was like really up in the middle of it. And then we built this app. So, I had like a lot of kind of things that took me very quickly from like hey I haven't written any code or any professional code in 6 years to like to the point where I was ready to build an app for this billion dollar company. JEFFREY WAY: That was amazing. That is how learn best too. MATT STAUFFER: It really is..and Dan and I loved working together so well that within 6 months we decided to go into business together and 6 months or a year later, we named it Tighten and the rest is history. MATT STAUFFER: And so, we are super late and Jeffery, you are the one who has to edit this all later, so I apologize for that..so Ok. Future Jeffery, editing this, I am going to do you a favor, call it a day for now so..guys...it's been a ton of fun..everyone who submitted questions to us on Twitter, the ones we didn't get to today, they are still on our trailer board, we will get to some of them next time... But keep sending us stuff for us to talk about and like I said, the Laravel news podcast is doing a fantastic job of keeping you up to date on regular basis with news so definitely tune in there for that...but we are gonna be talking about more long form stuffs when you got questions for us, send them to us either to our personal accounts or twitter account..for the podcast and we will try to get to them whenever we can..so, until next time..it's Laravel Podcast thanks for listening. MUSIC fades out...
Episode 52: Doug Pro
In this episode, the crew talks about Mix, Dusk, Laracon US, package development using TestBench, GitLab, and more. Gitlab.com Database Incident Laravel from Scratch Laracon Orchestra Testbench
Episode 51: Dusky Christmas
In this episode, the crew discusses Laravel Mix, Markdown mailables, Laravel Dusk, Laravel 5.4, and more. Matt's Learning Vue.JS Out Loud videos Five-Minute Geek Show: One Easy Tip to Being In the Top 2% of Freelancers Laravel Mix tweet Laravel News: Markdown Mail VueCasts Laravel: Up and Running - the book Test-Driven Laravel - video course Laracon US
Episode 50: Turkey Day Touch Bar
In this episode, the crew discusses new Apple announcements, the Laracast redesign and improvements, Forge, Laravel 5.3 and 5.4 changes, and more. Set up a Mac Dev Machine From Scratch Penultimate Bear Suggestive on GitHub Laravel Podcast Suggestive Laravel News on Components and Slots Mohamed Said on Laravel 5.4 localization using JSON files Nintendo Switch ad
Episode 49: Big Ball Of Yarn
In this episode, the crew discusses PHP 7.1, Laravel Forge, Yarn, Validator improvements, and more. Yarn Yarn Laracasts Fluent builder unique/exists PHP 7.1 release notes
Episode 48: Bing Bong Loves dd()
In this episode, the crew discusses Laracon US & EU, Laravel 5.3, Laravel's first hire, and the heart-wrenching sense of loss created by Bing Bong's death. Streamacon Laracon US videos Laracasts 5.3 series Mattstauffer.co 5.3 series Laravel news 5.3 release post What's up with Laravel Up and Running? Soft delete commit note Tighten Quicksand
Episode 47: Musical Routes
The crew talks about where the routes file lives, some tantalizing hints of big new 5.3 features, Jeffrey's 2 sets of 2 hours plan, and Taylor's love for DHH. Jeffrey's 2 sets of 2 hours Taylor's tweet about Scout & Passport Tighten Blog: What I learned at The Basecamp Way To Work Workshop
Episode 46: Laracon & Books Jeffrey Hasn't Read
In this episode, the crew talks discusses Laracon, Elixir, Browserify, Webpack, the NBA finals, and Red Rising. Ryan Singer Twitter Ryan Singer Full Stack Radio Sandi metz twitter / site Sandi Metz - POODR (Practical Object-Oriented Design in Ruby) Sandi Metz - 99 bottles of OOP Laravel News: Laravel 5.3 Matt Stauffer: Laravel 5.3 Laracasts Community Page Issues for Laravel Docs Some sample open source laravel apps: Symposium / Gistlog / Giscus / Cachet (got others? tweet us at @laravelpodcast and we'll add more)