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.

Interview: J.T. Grimes, lover of puppies and shaver of ungulates

October 12, 2017 01:04:14 61.67 MB Downloads: 0

An interview with Laravel woman around town and lover of puppies J.T. Grimes.

SPONSOR: Twilio provided J.T. audio recording equipment ❤️


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.