Interview: Samantha Geitz, Senior Developer at Tighten

from The Laravel Podcast
by Matt Stauffer

Published 22 May 2018 (2 months ago) • Duration: 45 minutes

Interview with Samantha Geitz, Senior Developer at Tighten

Play Download

Interview with Samantha Geitz, Senior Developer at Tighten

Editing sponsored by Larajobs
Transcription sponsored by Tighten

Matt Stauffer: Welcome back to the Laravel Podcast, season three. This is the first time we'll be talking to a member of the Tighten team, senior developer Samantha Geitz. Stay tuned.

Matt Stauffer: All right, welcome back to the Laravel Podcast, season three. Like I mentioned in the intro, for the first time ever, I have dipped into the local pool, because I think that the people who work at Tighten are great, because otherwise, they wouldn't work at Tighten. I think they're all fantastic, but I've been trying to avoid nepotism, and if you're not familiar with the concept of nepotism, it's when somebody basically makes their whole ... their family and friends in power, so basically Donald Trump personified. That's nepotism, so I've been trying to not be a nepotist, but at the same time, I mean, there's great people who deserve interviewing.

Matt Stauffer: I figure we're going to start with Samantha Geitz, who is one of our two senior developers; Samantha and Keith are our senior developers, and you may have heard of Samantha before, but before I go into her backstory and who she is and what she's about, the first question I always ask everybody is, when you meet a random person in the store, how do you tell people what it is that you do?

Samantha Geitz: There was a really long period of time where I said, "Well, I'm a software engineer," because it sounded really fancy and I kind of needed that validation.

Matt Stauffer: Right.

Samantha Geitz: I've gone back to "I'm a developer," and they ask what that means, and I say, "I build websites, and some of which you've probably used," and I list them off, and usually they kind of glaze over about halfway through, and/or say, "Oh, my company's hiring. Do you use .NET? You should come work for me."

Matt Stauffer: Right.

Samantha Geitz: I've steered away from software engineer, unless I'm talking to a real engineer, because they get really mad and it's hilarious. Like, "You haven't taken certification."

Matt Stauffer: Basically whatever trolls the best. I tell people I make websites, which drives my wife nuts, because she's like, "You don't make websites, you run a company." I'm like, "I don't like telling people that when I first meet them, because then it sets certain expectations." The more that people underestimate me when they meet me, the happier I am.

Samantha Geitz: I was going to say I guess it's true-

Matt Stauffer: Oh, go ahead.

Samantha Geitz: I actually don't make very many websites for Tighten anymore, I'm a PM/therapist/wrangler. I do a lot of hand-holding, talk about feelings a lot. It's a great job.

Matt Stauffer: That is basically what we do at Tighten. We just use code as the excuse for that.

Samantha Geitz: We talk about feelings a lot at Tighten.

Matt Stauffer: Yeah, yeah. Okay, Samantha first came onto the scene, when I knew who she was, when she was speaking at Laracon US a couple years ago in Louisville. I don't even know what year it was, 2015 or 2016, 2015, something like that?

Samantha Geitz: 2015.

Matt Stauffer: And speaking about microservices.

Samantha Geitz: It was the new hotness at the time. Taylor introduced it as the most anticipated talk at Laracon right before I walked on stage, and I was like, "Ooh. No pressure."

Matt Stauffer: No pressure, and the funny thing is I don't think you've done any microservice work since you've started at Tighten, right? Or have you?

Samantha Geitz: I have not. No, but you also hate microservices. I'm surprised you hired me after that.

Matt Stauffer: I hate them a little bit, yeah.

Samantha Geitz: Yes, we like this girl's ideas.

Matt Stauffer: Yeah, well ... What we liked was the way that you think. That's not necessarily the microservice aspect. Not saying there's nothing good about microservices ever, but it's not ... they're overblown a little. But anyway, you gave that talk. Everyone said, "Wow, who's this Samantha Geitz, she's great." Soon after we open up a job posting, you apply. It was great. That's not the point of this story, but now you're a senior developer, like you mentioned. Day-by-day you write some code, you review some code, you write blog posts a lot. You wrote a three part React series, that has basically taken the internet by storm since it existed, which you keep updating and I'll put a link to that in the show notes. You are one of the lead React thinking people in the Laravel world. You're the one who contributed the React preset to Laravel. That's one area you're known a little bit.

Matt Stauffer: If you haven't heard of Samantha before, go read a couple of her blog posts on the Tighten blog. Go check out the React preset. Go check out a React series. Even if you know React already, it's a really good broad level introduction. That stuffs all great, but that's not what this podcast is about. This podcast is about people.

Matt Stauffer: The next question I always ask everybody is, when was the first time that you interacted with a computer, and tell me about it.

Samantha Geitz: Well my dad had a computer science background. When I was really young, like five maybe, we were using Logo to build tic, tac, toe and obviously I was not writing much of the code at age five, but I sat with him when he did it and it sparked an interest, but as I grew up, I always thought computer science was A, for boys, B, involved a lot of math and even though I'm technically good at math, I did well on the GRE in math, I just thought I was bad at math and I can go into all the feminist reasons about that on Twitter if anyone's interested, we don't need to spend the whole podcast. I want to get on my platform and talk about it.

Matt Stauffer: Right.

Samantha Geitz: I didn't really take computer science seriously as a career. I had built some websites and stuff in high school in Joomla. I'm dating myself here, but my last semester of my English Literature degree, and fun fact, if people don't know, both Matt and Dan are also English majors, so Tighten's got a very strong liberal arts background.

Matt Stauffer: It's true.

Samantha Geitz: I took a computer science course as an elective because it was literally the only thing that fit into my schedule and I was the only woman in the class and walked in. I immediately got picked out by this professor, who was a very nice man, but also this old Eastern European man. Caught me after the first day and said, "Oh, if you need extra help let me know." And within three weeks I was tutoring a quarter of the class.

Samantha Geitz: Well I had realized by that point, because my background was in English Literature but I wanted to be an English teacher and got through all of my English Literature course work and then started the education component and said, "Oh, no. I hate teenagers. This is going to be awful." Yeah, when I took that computer science course, I said, "Oh, cool. So this is what I want to do when I grow up." Went back to grad school and got a masters in information science and I guess the rest we will probably cover in future questions here.

Matt Stauffer: We will, but I have so many questions. I have so many questions. Your dad, computer science. You're five years old, making tick tac toe in what?

Samantha Geitz: Logo. It's a programming language where you move a turtle around the screen.

Matt Stauffer: Logo.

Samantha Geitz: I think it's like Scratch. This was almost 25 years ago.

Matt Stauffer: Oh okay.

Samantha Geitz: I couldn't tell you a lot of the specifics.

Matt Stauffer: Yeah. It's just funny. This is the first time anybody's ever mentioned something I've never even heard of before, programming language wise. Okay, but it was focused on kids learning?

Samantha Geitz: I think so yeah. I know my dad had probably C and basic and I don't even know what. He's now trying to learn Laravel. I have two brothers who are Laravel developers and my dad has decided he wants to get into that life too. We have a Slack channel where he posts questions and it's fun.

Matt Stauffer: That's awesome. Tell me that he has a copy of my book, please?

Samantha Geitz: He does not ... No, he does.

Matt Stauffer: I will mail him one.

Samantha Geitz: It's in a PDF. I sent him a PDF.

Matt Stauffer: Okay I was going to say, I will mail him one.

Samantha Geitz: Sign it.

Matt Stauffer: Jeez. Okay. Yeah, definitely. Okay, you did Logo. Was there much computing? Were you on Instant Messenger and stuff like that in between that time and when you were in college? Or were you not a computer person during that time?

Samantha Geitz: Oh, I was PC gaming master race from a very, very young age.

Matt Stauffer: Okay, so you've been sitting on ... Yeah, you totally skipped that part of it. Let's talk about that.

Samantha Geitz: That's how I win typing challenges. Yeah, no. I had a computer in my room from the time I was in eighth grade. Yeah. Oh, I got into all sorts of shenanigans in Instant Messenger and stuff. I was 10, cat fishing people.

Matt Stauffer: Oh my goodness. I didn't even know what that word meant until college.

Samantha Geitz: ASL, 18 female California and I'm 10 years old.

Matt Stauffer: Oh my God.

Samantha Geitz: This is a family friendly podcast so we don't need to get into that.

Matt Stauffer: There you go, we'll just keep it there. Cat fishing. Go Google it, it's a type of fish and it is a ... nevermind, I'm not even going to go there.

Matt Stauffer: Playing video games, did you build your rigs? Computers?

Samantha Geitz: Oh yeah. Still do.

Matt Stauffer: Still do? I didn't know that.

Samantha Geitz: Have you not seen this.

Matt Stauffer: I have not seen this.

Samantha Geitz: I'm turning my camera so Matt can see my rig. Look at that bad boy with a cat on it.

Matt Stauffer: You should take a picture of it without a cat hanging ... or with the cat hanging over it so we can put a link in the podcast. In the show notes.

Samantha Geitz: I've got the clear panel on the side so you can see ... Yeah, I've got some good hardware in there too. I've had a $900 graphics card in there.

Matt Stauffer: Geez. Okay, you learned that stuff from your dad. Computer science. You cat fished people when you're 10 years old. You built your own PC's and you're playing video games. Was there anything formal before you went into college? Was there anything outside of you doing it on your own, or was this more like you had the interest and you did all the stuff? Obviously you said at age 10 you had interest access, or was this bulletin board services?

Samantha Geitz: I did have internet access and yeah, I would be on various forums and stuff, but when I was 15 I think, I also, English background, dabble in writing, surprise, surprise. I ran a writing community website that I built on Joomla, I don't wonder what form software I used. Simple core maybe.

Matt Stauffer: Okay.

Samantha Geitz: It was completely hacked together. There was a little bit of PHP, but it was a lot of just customizing templates and stuff, which for me was a very different thing than, "I'm going to go get a computer science degree and do the calculus I guess, because that's what computer science is." Right?

Matt Stauffer: Right. Well and that was my next question actually, is at what point did you actually write a line of web based codes? You mentioned you did Logo, so you had coding from age five, but when do you actually write web code?

Samantha Geitz: That would have been high school.

Matt Stauffer: Okay.

Samantha Geitz: It was probably undergrad years.

Matt Stauffer: There's no classes for it. You were just view sourcing around on the internet and figuring it out as you went?

Samantha Geitz: Yeah, it was a lot of, "I'm done loading this template and making it look the way I want it to look and I don't really know what I'm doing." I was not doing anything too complex.

Matt Stauffer: Right, just FTPing it up to some kind of general shared host?

Samantha Geitz: Yeah, it was all FTP.

Matt Stauffer: Okay, all right.

Samantha Geitz: Very much hacking my around. I did not have a solid grasp on it where if someone could have probably paid me and gotten good work out of it. At our peak we had about, for the writing website, maybe 250 active members.

Matt Stauffer: Nice.

Samantha Geitz: It wasn't too small time for someone who was 15.

Matt Stauffer: Yeah, speaking of people paying you. What was the first dollar you made making websites, or making any code actually for that matter?

Samantha Geitz: That would have been in grad school. I did some freelance work because I very quickly realized that my grad program, we did some programming stuff but it was Flash in 2012.

Matt Stauffer: Right.

Samantha Geitz: I very quickly figured out that I was not going to be learning the sort of things I could go get a web development job for. I was working when I started grad school in admissions at the University of Missouri Graduate School and trying to do that and full time masters program, and self-teach was just too much. I took a risk and quit my job and just made a living for the rest of grad school freelancing. That would have been ... I think my first client paid me three grand for a pretty complex WordPress site.

Matt Stauffer: Yeah, I was going to ask was tech stack were you doing most of that freelancing in? Mainly WordPress?

Samantha Geitz: It was pretty much all WordPress in the freelancing and then I was self-teaching Ruby on Rails.

Matt Stauffer: Did you do the front ends of those or did you use templates mainly?

Samantha Geitz: I did a lot of child themes so I used Genesis or something and then build themes based off of that.

Matt Stauffer: Yeah, okay. You had at least front end capability. You probably knew CSS and jQuery, JavaScript all that stuff by that point?

Samantha Geitz: Yup.

Matt Stauffer: Okay. Then Ruby on Rails. Tell us that journey.

Samantha Geitz: Laravel, if it existed at the time was not well known. I mean this would have probably been Laravel 2.

Matt Stauffer: Yeah.

Samantha Geitz: Basically I was just looking into, okay, I wanted to build web applications. I very quickly figured out the limits of WordPress and I don't know. Ruby on Rails was hotness then, so I built myself a personal blog site just to learn it. I don't think anyone has ever paid me to write Ruby on Rails code.

Matt Stauffer: Okay.

Samantha Geitz: But it gave me decent MVC background and my first job, I was at ... I was just about to finish grad school and I was at the University of Missouri and I was back up at Chicago at a Ruby meetup and there was an open bar that was sponsored by, gosh I don't even remember. One of the API companies, so I met this guy who said, "Oh yeah, My company's hiring and we do Rails." And I was like, "Okay, cool."

Samantha Geitz: He got me this interview and got the job and then they told me I would be doing WordPress. It's like, "Oh okay. That's fine. It's not really what I want to be doing." But they said eventually they'll move me over to a more of a MVC stack and I proceeded to do WordPress for the next year and a half.

Matt Stauffer: Yeah.

Samantha Geitz: But we landed a client who was going to not be great for WordPress so I was looking into Laravel at the time, because I had a really strong PHP background. Hadn't done Rails in a while, and that was right ... That was Laravel 3, because Laravel 4 was released somewhere in the middle of that project and we upgraded. Yeah, that was how I got into Laravel. Was just wishing I could do Ruby on Rails and I've got this WordPress background so I know PHP, so I guess this is what we're doing now.

Matt Stauffer: Right. Was the clients, I don't know if you remember, it's been a while, but was the client's tech stack such where if you had been a super accomplished Ruby developer they would have signed on, or would they prefer PHP as well at that point?

Samantha Geitz: Are you talking about at the last agency that I worked at?

Matt Stauffer: That one company where you discovered Laravel 3.

Samantha Geitz: They had been ...

Matt Stauffer: Do you remember?

Samantha Geitz: They had been pitched on a WordPress site, because ... The company I worked at, which I don't think technically even exists anymore, it's called Dojo. They were a very small number of ... It's called WordPress VIP agency. WordPress VIP definitely still exists. It's actually a fantastic service, but it's basically automatic. Who's the company who does WordPress. It's their premium hosting and support solution. I think it starts ... Then it was $3,500 a month.

Samantha Geitz: You had sites like Pandora with their entire advertising platform was built on it. I think Time Magazine. We did a lot of work for Tribune. I actually got a lot of enterprise WordPress experience, just because they wanted ... There's only 10 shops in the world who did it.

Matt Stauffer: That actually do that kind of work.

Samantha Geitz: The problem was we just pitched WordPress for everything and when it's something that doesn't really fit into that posts and pages paradigm, and they wanted all sorts of crazy relationships between entities and stuff, so I steered them away from that and I had a lot of flexibility in the stack I could use, so I had been looking to Laravel a little bit, and said, "I'm going to learn it." And I used that project to learn it.

Matt Stauffer: Yeah, yeah, yeah.

Samantha Geitz: It was pre Laracasts too. I think.

Matt Stauffer: I could be wrong, but I believe that Laracasts came out during 4, but I could be wrong. I've got to go look that up later.

Samantha Geitz: I used Dayle Rees' book to learn it.

Matt Stauffer: Yeah, there you go.

Samantha Geitz: It was called Code Bright I think.

Matt Stauffer: Code something.

Samantha Geitz: Whatever the Laravel 3 one.

Matt Stauffer: Yeah exactly.

Samantha Geitz: That was how I learned Laravel.

Matt Stauffer: Nice. Yeah, that's how I learned it too, and then eventually Jeffrey. All right at that point ... I was trying to think. There was a couple of questions rolling around. I had rolling around about prior to that. I'm trying to think about your background.

Matt Stauffer: You had got ... did you finish your undergrad degree in English before you went to do the CS? Okay. I'm sorry, she nodded.

Samantha Geitz: Yeah, it was just an elective. I had some elective I had to take to graduate. I was working full time at Best Buy and just was the only thing that slotted into my schedule.

Matt Stauffer: Yeah.

Samantha Geitz: I was like, "Okay. I'm not sure how this is going to go because I haven't taken math in five years."

Matt Stauffer: Yeah, turns out.

Samantha Geitz: Clearly it worked out.

Matt Stauffer: Turns out. Okay you worked, you're doing WordPress. You did a little bit of Laravel 3, what was the next transition from there.

Samantha Geitz: Okay, I don't want to do WordPress anymore, I know Laravel know, so I got a job at this start up called PackBack. Who are still around. They are a Shark Tank funded start-up in Chicago. Mark Cuban's on their board.

Matt Stauffer: Aye-oh.

Samantha Geitz: Yeah.

Matt Stauffer: You can see them on YouTube right? I feel like I saw that at some point.

Samantha Geitz: Probably.

Matt Stauffer: Their episode.

Samantha Geitz: Yeah, I got a job working there and pretty specifically as a back end developer, because their front end stack was Angular and the big Laravel project I'd done for the previous agency, we had a ton of ... it ended up being a very complicated Angular set up and people hear me talk about Angular PTSD and that's why. It was just a single page application that should not have been a single page application. It was just a lot of Angular.

Samantha Geitz: Yeah, I pretty much did strictly API development for the next year and a half after that. It was all Laravel and it was microservices, and that's how I got really pumped about that idea, which also meant my front end chops took a nose dive, which is a big part of the reason I ended up learning React. It's like, all right, I need to get back into this world.

Matt Stauffer: Get back into it. Yeah.

Samantha Geitz: We don't have API developers at Tighten.

Matt Stauffer: Yeah. No, everybody does everything. Let's talk about your work there a little bit. I think everyone has a pretty good sense of the value of single page apps in API first. Just to recap real quick for anybody who hasn't heard these pitches. API first basically means build the API, then build a JavaScript single page app that consumes that API. Then when you need to build a mobile app it'll magically be fast and easy and quick, because you already have an API that works. There's definitely some true promise there.

Matt Stauffer: One of the things we've talked about a lot lately at Tighten, over the last year is as someone ... I'm a little bit of an old head developer where I'm just like, "Hey, you know what? This is the way I've been doing it for x number of years. I want to keep doing it." But I wanted to leave space for us to try those things. The SPA's and the API first stuff like that. We've definitely seen some of the pain points of microservices. Some of the pain points of SPAs and stuff like that.

Matt Stauffer: I would say the bigger your team, the bigger the company, the bigger your needs, the more likely the mobile needs, the more likely that you will find the API first and the SPAs to be worth the costs they introduce. I would assume that where you were, would have been one of the places where that's just a clear win. I don't want to dig too much into their intellectual property or anything like that, but you mentioned that an SPA may end up being a little tough in some context. Without revealing any of their secrets or anything like that, is there anything you can talk about that helps you understand when you think an SPA is or is not the right fit? Are there any signs? Anything like that that helps you really think through that?

Samantha Geitz: I feel like where I've gone on it is, yeah, if you know you're going to have a lot ... I say you know, and one of the things about working with a start-up is you hope. You hope you're going to grow, you hope you're going to be handling a lot of traffic and stuff, and I think a lot of companies end up doing a lot of premature optimization based on that.

Samantha Geitz: Compared to a situation in which you're refactoring a monolith and it makes sense to break off some asynchronous tasks into a microservice. That's a place I would definitely reach for it now.

Samantha Geitz: Single page applications that have a lot of views and very complicated authentication and authorization requirements, my preferred way now is to have a Laravel app with Vue or React components where you're utilizing a lot of server side stuff, and a lot of out of the box authentication things and then just the really interactive UI things that makes sense to have JavaScript that's where you have ... I have found that to be easiest personally. I think a single page application, if it's really a single page can be great.

Samantha Geitz: I think a single page application where you're trying to have some very complicated web application with multiple pages, gets complicated. There are routers and stuff that can help you handle it and I can see the argument for using it, but I have always found that the overhead is a lot more than using something like Laravel or Rails with server side stuff.

Matt Stauffer: Yeah, it's interesting.

Samantha Geitz: You don't have to worry about someone going into a console and messing around and seeing encrypted things. I don't know.

Matt Stauffer: Yeah, it's interesting you mentioned the single page because single page app ... Theoretically the single page is referring to the fact that it's a single page that doesn't get navigated away from, but like you mentioned, single page apps are a lot less complicated when they don't have to handle I guess what you'd say like theoretical multiple pages that are served by that one page. You could say how many URLs does it serve? If that single pages serves a single URL your complexities going to a lot lower than if that single page serves multiple URLs using a router.

Samantha Geitz: Yeah, not to say that you should never have multiple views in a single page application, because of course that's silly, but if you have a Laravel app with 30 controllers that all have all these routes and stuff, and you're trying to do that in the context of a single page application, can you do it? Sure. Is it going to be a lot more code and overhead than if you did it service side? Yes. Absolutely.

Matt Stauffer: The question is do the pros outweigh the cons in that context? Sometimes the assumption can be well it's the new thing and eventually we can use it therefore yes, but you've got to realize the cons. Caleb's been talking about it a lot this recently because he lived in microservice land for a while, so he was becoming a little bit of the captain of the cons of microservices. I'll have to ask him about that another time. I think that you are ... obviously you know microservices, but you also know full stack routing JavaScript, all this stuff, super, super, super well.

Matt Stauffer: You gave a talk about microservices. It's funny, Chris Fidao gave a talk about hexagonal architecture and as far as I know doesn't do it at all right now. You gave a talk about microservices and obviously I haven't assigned you to any projects in the microservices sense, but I know that you do side stuff. If you were doing a side project, do you default monolith right now, and if so, can you tell me one or two really clear signs that tells you to ... Regardless of SPA versus anything else. One or two clear signs that makes you want to pole servers out.

Samantha Geitz: Yeah, I can actually give a concrete example from the last six months. A friend and I were working on basically ... Call it LinkedIn for professional gamers. We realized specifically for this game Overwatch which more recently has ... It's called Overwatch League which almost is like a professional sports franchise model and these were selling for 15 million dollars. Where it's like the Houston Outlaws.

Matt Stauffer: That's a crazy number.

Samantha Geitz: Yeah, I mean there was a lot of money floating around the scene and these professional players, there was a discord chat room in which these coaches and owners for these 15 million dollar teams would be scrolling through players looking for teams. So we're like oh, there's an opportunity here.

Matt Stauffer: Yeah.

Samantha Geitz: We basically built an app to hook professional players up with teams and one of the things we wanted to do to keep people coming back was to integrate their Twitter and Twitch stuff and Twitch specifically doesn't have any web hooks or anything where it's like, "Oh, this new thing is on Twitch, we hit your app." We had to pole it.

Matt Stauffer: Yeah.

Samantha Geitz: It was just this process I was constantly running in the background and basically I built some logic into the main app to figure out who needed to be refreshed, because obviously if someone is streaming, you want to refresh them more often, so when they're offline they're no longer showing.

Matt Stauffer: Yeah, yeah.

Samantha Geitz: The actual thing that was hitting the Twitch API was a totally separate microservice just because it was this process that was constantly running and I didn't want that load on my regular server.

Matt Stauffer: It's funny. That's my exact same use case is that when I'm finding myself in a place where I'm interacting with a third party server that doesn't present the data I want or in the timeline that I want or takes too much load, that's the first thing I want to do, is I build the API I want, and then I make that API do all the work of getting the data into that shape or whatever. I like that.

Samantha Geitz: Yeah, anything that you would have to run asynchronously and could put a lot of strain on your server and you want to make sure that ... I would reach for a microservice before I'd start getting into crazy load balancing stuff for infrastructure because I think it's pretty easy to just build something that does a thing. You can swap it out easily if you need to.

Matt Stauffer: Yeah.

Samantha Geitz: But would I build a separate microservice for users? Probably not. Just to have it different.

Matt Stauffer: Okay. Your day job is at Tighten. We talk about what you do there. You also speak at conferences and you also blog. Even though you don't love teenagers you did end up teaching. Tell me, who is your most common audience that you're thinking about when you're giving a talk, and what are your most and least favorite things about giving conference talks?

Samantha Geitz: I gave a talk a couple of weeks ago at Erie Day of Code and I literally had a slide where I made assumptions about the audience and one of them was that they're white males. It was a feelings talk about actually design patterns and microservices and crazy architecture. Looking into the reasons that people use that.

Matt Stauffer: Interesting.

Samantha Geitz: I feel like a lot of it is imposter syndrome where you feel like people on Twitter get very opinionated about software and say things like, "Why are you putting models in your controllers? You should have a repository for this." Just get really dogmatic about it. You get to the point where you can build anything, even if that's just in a way where you just have very basic MVC and you start learning more about design patterns and you just want to apply them to everything because you have this knowledge that's so exciting, and also are you going to be judged if you don't.

Samantha Geitz: I would like to start speaking at more women in tech spaces, but I'm very aware whenever I'm in front of an audience that it's mostly white guys in the 25 to 35 age range.

Matt Stauffer: Yeah.

Samantha Geitz: I mean that's generally the audience I'm aware of. I do hate public speaking through. I'm very introverted despite my personality on Twitter and getting up in front of a crowd and speaking is very, very overwhelming for me sometimes.

Matt Stauffer: What's your best trick for when you're preparing to give a talk to help either reduce your nerves or prepare in a way that would make you feel more confident or something like that?

Samantha Geitz: I just don't over prepare and I get up there and just almost treat it like a conversation. I've been told I'm a very conversational speaker. I feel like if I over rehearse I will get very stilted. I also give myself permission to use a little profanity if that's ...

Matt Stauffer: Yeah.

Samantha Geitz: Or make jokes if those are there. Sooner or later I'm going to make a very off color joke in a very public place and it's going to get me into trouble, but it hasn't really happened yet.

Matt Stauffer: So far, so good.

Samantha Geitz: So far, so good. It's one of those things I just muscle through and it's gotten better over the course of my career. I told Matt at my last review in November I think, that that was my goal for 2018 was to get back out there and give a bunch of talks and not let my stagefright overwhelm me and I'm two in and Laracon coming up in July, so when you give me my review next week Matt ...

Matt Stauffer: Hopefully we'll look positively on that. You told me the thing that you like the least which is public speaking. What do you like the most about giving conference talks?

Samantha Geitz: Clearly the Twitter fame. When you see that follower count tick up. It is the Twitter fame. I'm trying to think of another ... it's like, no.

Matt Stauffer: That's true. That's okay.

Samantha Geitz: It's fun getting up there and doing a good job and knowing that I conquered my fear of public speaking and didn't ruin my career.

Matt Stauffer: Yeah.

Samantha Geitz: I just gave a React workshop at PeersConf and it was pretty small. I think it was maybe 15, 20 people and so I had a lot of space to go around and work with people one-on-one and get people excited about this technology that I'm really excited about and that was cool too. Just getting that really face-to-face time, compared to being on stage and talking at 800 people, most of whom are probably just screwing around on their laptops anyway.

Matt Stauffer: Yeah.

Samantha Geitz: I had a lot of people come up to me after my white boy feelings talk at Eerie Day of Code too and say, "Oh actually that really resonated with me. That yes, I was there in my career too and I understand that impostor syndrome is a thing for men that isn't talked about."

Matt Stauffer: Yeah. Giving people permission to experience the things they're experiencing and language for understanding what it is.

Samantha Geitz: Something we talk a lot about a Tighten and it's something that's talked a lot about in various women in tech circles, but I feel like tech as a whole, we don't talk a lot about mental health issues, we don't talk a lot about impostor syndrome and the fact that everyone experiences and if you don't you probably have horrible Dunning-Kruger and you're a lost cause.

Samantha Geitz: One of the things I had in my slide that I'm going to assume about you is A, anyone at that conference is very smart and cares about writing good code.

Matt Stauffer: Right.

Samantha Geitz: Because you're not going to conferences if you don't care, but also that you're aware of that fact for everybody else in the room. You know that everyone else in tech is smart and is trying to do a good job and you compare yourself to that bar and that's a very intimidating thing. I think women feel it more acutely or people of colors, people who are more outside of the mainstream, but white guys feel it too and it's something that's just not discussed. I think to the determent of all of us.

Matt Stauffer: I think that's really helpful. Especially a lot of conversations that certain around understanding the diversity of experiences, especially a sentence that says, "Women and people of color experience this more." I think a lot of people instantly hear that you're going to be telling white guys that, "Oh well, we have it really easy." I think it's really helpful to hear, I think for everybody to hear someone say, "Women and people of color have it especially tough, but white guys, nobody's talking about the fact that you experience this thing as well." And it's not just white guys. It's men that aren't white, or white people that aren't men, but the more ...

Samantha Geitz: Yeah, non binary, trans.

Matt Stauffer: But by that I mean the more normative. My white male, heterosexual, Christian, blah, blah, blah American. The less likely you tend to feel in these kind of conversations that there's a space where you actually have valid experiences, valid pains, valid difficulties, and there's a lot we can say about that that this is not the podcast for, but I think one of the things I really appreciate is that in a context where you are explicitly saying, "Hey, it can be harder in these contexts to be a woman or a person of color, or whoever else, that does not mean that other people aren't having this experience. That does not mean that people with privilege or however you want to talk about it, are not also having impostor syndrome issues, and sometimes it's actually less approved for white guys to talk about these things.

Matt Stauffer: I think I'm really grateful that you as not a white guy are giving people that permission to feel that, the language for that and everything. That's super cool.

Samantha Geitz: I mean ultimately the main takeaway of the talk about reading other people's code, good code or bad code is, you don't know the space they were in when they were writing it. You don't know their motivations for writing it, but it was never that they were trying to make your life miserable.

Matt Stauffer: Right.

Samantha Geitz: No one wrote code like, "I want the person who maintains this after me to struggle." Treat people with kindness even if you will never see them because you inherited it. You have to give them the benefit of the doubt sometimes because everyone does have those struggles in this industry. It's really tough.

Matt Stauffer: That's a great point. I mean honestly, imagine the worst pressure you've ever been under during a coding session where the client was pushing you. They're rushing you and your dog just died the day before and you want to do really great work, but the client needs something tomorrow and then they cut off the contract after that, and you did your best but you aren't proud of that. Every time you interact with somebody else's code, imagine that they were in that circumstance and it's like the, "Oh okay, maybe they're not a total bumbling idiot." But maybe they weren't in ... It's like people often say, you compare other people's worst code against your best code, or whatever. The code you think you write even in your head even though it's not actually the code you write.

Samantha Geitz: Exactly. Sometimes that code that you're looking at that's the bad code is your own code and you need to be able to forgive yourself for writing bad code six months ago, because you didn't know better. I mean I feel like if you're not looking at code from six months ago and saying, "WFT was I thinking?"

Matt Stauffer: Yeah, yeah, you're not growing.

Samantha Geitz: That means you're not improving. That's not a good thing.

Matt Stauffer: Yeah.

Samantha Geitz: That was a cool talk and a lot of people came up to me after and said that they enjoyed it and it resonated with them. I'm sure a lot of people were sitting there like, "This is stupid."

Matt Stauffer: She's terrible.

Samantha Geitz: "I am the smartest person in this room."

Matt Stauffer: Right yeah. They have other problems.

Samantha Geitz: They weren't picking fights with me so that's fine.

Matt Stauffer: Well and that's the Twitter fame part right? If you ... not to say that we never get any benefit out of giving these talks. Sometimes you get paid, sometimes you have certain experiences, but when we're speaking at the type of conferences we're speaking at, we're not making life changing money. We're not making even pay you back for your time kind of money. We're making, "Hey, I'm going to try and minimize the cost when you just took off work for five days kind of money." Or whatever else.

Samantha Geitz: Right.

Matt Stauffer: There's at least an element, and I think usually a pretty large element of doing it because you want to help people, and you want people to learn and you want people to grow. In terms of the joke that you made about, "I do it for the Twitter fame." I mean what I hear there and I'm pretty sure this is what you meant was hearing the feedback from people that the work that you just put into trying to help them helped them is one of the most affirming things that you can get after a talk. You're like, "Oh, I overcame impostor syndrome and I overcame public speaking anxiety and I spent all that time preparing it and it's making the impact I wanted to make." And that makes you want to go do the thing again. Did I just read you right on that?

Samantha Geitz: It is. You did. It's a very affirming experience and I do think it's very important. Whether or not you do public speaking or blogging or tech overflow or just making it publicly known on Twitter that you're available for mentorship, I think it is really important in this industry to give back and to talk about your failures and successes and to pass it along to the next generation of developers. I mean that does have normalize it I think. It helps normalize the shared experience where you see people's victories on social media and not their struggles. I'm not going to go on Twitter and say, "I had a really bad day where I was struggling with this thing and just didn't get it and I feel awful about myself right now." Or. "I dealt with this exact issue six months ago and screwed it up and it was a big deal, but I survived and here was my takeaway."

Matt Stauffer: I survived.

Samantha Geitz: One of the things that I've realized over my career and then working with more junior people is, sometimes I get tasked something and I have no idea how to do it, but I have the experience now to know that I've managed to figure it out every other time.

Matt Stauffer: Right.

Samantha Geitz: And every single other time it's been okay and a lot of my job now is just talking to our more junior developers and saying, "It'll be okay. You will figure it out. You have the team behind you. No ones going to judge you if you don't get it right on the first time. That's what code review is for and also, I did it and screwed it up this one time so if you have this bad day where you got a bad code review, it's fine." Everyone's the hardest on themselves generally I think.

Matt Stauffer: Yeah, that's a good point. We're short on time, but this serves as one more question I want to ask and then we'll start rolling down a little bit.

Samantha Geitz: Yeah.

Matt Stauffer: You have worked for consultancies and product companies. This may be a hard question to answer, but if it's not, now that you work at a consultancy, what is the best and worst aspect of working at a consultancy relative to working at in a product company?

Samantha Geitz: When I joined PackBack, they were still fairly young. They were migrating from this really gross Magneto thing to a Greenfield thing. I got the Greenfield fun, new shiny experience, but then we got to the point where we're launched and maintaining. Working at a consultancy gives you the opportunity to work with a very, very large array of projects and some of them are going to be Greenfield new and shiny and you learn new things, some of them are going to be, oh God, there's this awful legacy app and then you'll learn new things.

Matt Stauffer: Right, right.

Samantha Geitz: I think it's really, really easy to get a very wide diversity of experiences and that is going to make you an awesome developer and you'll be able to tackle a lot of things that come your way and see pitfalls that you wouldn't if you were just working on one platform consistently. I do love product, that's why I'll always have separate side hustles going. Especially now that I'm not day-to-day on code as much at Tighten, just so I can stay on top of the new shiny and I've never worked for a Google, or in Chicago like Groupon or Grub Hub or some of the bigger ones. I've never had that experience. All my enterprise-y stuff has been I'm developing this large WordPress site or something, or working on ... I'm one developer working on this small piece for this other company, not I'm part of this very large team in a very medium sized fish in a huge, huge, huge pond.

Samantha Geitz: That's one thing I've lacked in my career and now that I work at Tighten have no desire to go seek at all. Not to say I don't have that opportunity but nah, I'm good.

Matt Stauffer: All right so you just said very nice things about consultancy's. Was the worst thing snuck in there about, "Oh, I like to do product stuff?" Or is there a worse thing about working for consultancy that you can share?

Samantha Geitz: I feel like if you work for a good consultancy who helps ... one of the problems with client works is they're stress tends to trickle in and become your stress or sometimes becomes a deluge and it's your stress. I mean agencies and consultancies have a very bad reputation for burning people out and working them crazy hours and crunch time and deadlines and let's plan things six months out and make this promise and then oh God, we're not going to be able to deliver. I've had both.

Matt Stauffer: Yeah.

Samantha Geitz: I've not so much had the latter at Tighten, but I would be very ... If Tighten shut its doors tomorrow I would probably go to a product company over another consultancy unless I really knew that stress was not going to become my stress because I just ... at this point in my life, don't want to deal with it anymore. I'm not working 60 to 80 hour weeks. I'm just not.

Matt Stauffer: Yeah, I think you have to be super intentional in any company to create good working environment and the product company, when you create a good working environment it stays relatively stable, whereas with a consultancy it's your working environment plus you're working environment protecting you against any potentially problematic client working environments. There's two vectors of attack.

Samantha Geitz: Right. Yeah and the clients are constantly changing and rotating probably and a lot of times they're coming to you because, "Oh, we have this massive deadline and we don't have the manpower to meet it." Or, "Our stuff is so broken and it's ... We need help." We've had a lot of people come to us, "All of our tests are failing and we just don't have the space to fix it. Please come help us." Projects like that can be really, really fun, but it's always an opportunity for stress.

Matt Stauffer: Yeah, stress to sneak in.

Samantha Geitz: Matt and I have a lot of conversations like, "Okay, how do we keep stress from trickling down to the developers?"

Matt Stauffer: Yeah.

Samantha Geitz: That's a lot of my job is just to be a shield against that.

Matt Stauffer: Very cool. I will make it through a podcast one day without saying I could talk for hours. Today's not that day. I could talk for hours, but we're out of time. Is there anything that you wanted to cover that we haven't gotten a chance to talk about yet?

Samantha Geitz: Oh man, I don't know. Should we plug the dev battle? When's this podcast being released?

Matt Stauffer: This will be released within the next week. I've heard that some company, I don't know. Some company you might work at will deal with it, but I'm trying not to nepotize that, but if that's what you want to plug to your guests then go ahead.

Samantha Geitz: Oh no. This is the Laravel podcast nepotism and feelings version for sure. Back on the React track, if you are interested in learning more about React Native specifically and/or Native tools if you care about Vue. No one listening to this podcast cares about Vue though clearly. It's Keith Damiani, who's the other senior developer and I had a dev battle about a year ago and I still think the results were bananas, but Vue was declared the winner, so we're doing a round two. Or I guess a part two with three rounds and it's the React Native versus Native Tools battle. It is called Native Tools ...

Matt Stauffer: I think it's Native Script right?

Samantha Geitz: Is it Native? No you're right, it's Native Script. See you can tell how much I know about this. I just literally wrote a blog post about it too. Native Script. Part one is going to be we basically just build a super basic card app. We're either going to just save it to whatever local storage or I have an API set up with predefined user authentication tokens.

Samantha Geitz: Round two is authentication authorization, so trying to figure all that out and round three, because a question. We've not done a React Native project yet as a company and one of the questions Matt and Dan are always asking me is how much code reuse is possible, so if we want to build a web app can we use React Native code?

Matt Stauffer: Right.

Samantha Geitz: Round three is us taking those apps and then basically building a web app also and seeing how we can reuse code. We also have Caleb Porzio joining Team Vue and Daniel Coulbourne joining Team React. We've pulled the 20% time ...

Matt Stauffer: 20% FM.

Samantha Geitz: Yup. Pulled those guys in. Oh and the one thing I didn't mention is we don't really know these tools that well, so we're just figuring it out on the fly. Paring and ...

Matt Stauffer: It's very different ... Last time it was a React developer and a Vue developer with an unknown task. Now it is you know the task but you don't know the code. It's going to be a total flip of what it was last time.

Samantha Geitz: Right, we have mock ups, we have the API. Everyone knows what we're building, which oddly, even though I don't know this and once again, the internet might look at me and be like, "Oh, what is this girl doing?" It's so much less pressure. I'm okay with live coding with the expectation like, "I don't know what I'm doing. I'm figuring it out."

Matt Stauffer: Right.

Samantha Geitz: "If I don't figure it out, okay, you try to figure out React Native in four hours bozo."

Matt Stauffer: Versus trying to pretend to be the expert and then people can criti ... yeah yeah.

Samantha Geitz: Exactly, exactly. The pressure of live coding for any of y'all who haven't done it, especially in a timed battle context.

Matt Stauffer: It's extreme.

Samantha Geitz: Things that I do every day, I was like, "How do I do this? I need to look it up." It's hard and I'm not even sweating this one, but it is ... if it's coming out next week, it'll be this Friday, May 25th. It's we have all the info and there's a blog post coming out too.

Matt Stauffer: If you listen to this after the fact, the recording will be there as well. Whether you listen to this before or after the battle still go to that same site.

Samantha Geitz: Well there's going to be three rounds, so even if you miss the first round you can come and ... It's going to be on Twitch. You can smack talk. You can help us if you know anything at all about React Native or Native Script. I wanted to call it Native Tools again.

Samantha Geitz: Yes, it will be a very fun time. Spicy meatball of a time. You should tune in.

Matt Stauffer: I feel better about this being less nepotistic because they planned this entire thing without me even knowing it was happening, and they literally planned the first one during my son's pre-school graduation so I won't even be there. I'm going to tune in after the fact and hear how it went. I actually am disconnected from this, I promise.

Samantha Geitz: You making it sound like we did it on purpose. We didn't want Matt there so we planned it during Ky's preschool.

Matt Stauffer: It's not my thing that I'm pretending to not be ... I actually wasn't there for the planning so it's just going to be a nice surprise for me as well.

Samantha Geitz: It'll be a nice surprise for all of us. It's going to be ... We're winging it y'all don't judge us too harshly, unless it goes well in which case, yeah, you can ...

Matt Stauffer: We totally knew what we were doing. Right? Okay, anything else you want to plug or talk about or share?

Samantha Geitz: Nope not really. Follow me on Twitter.

Matt Stauffer: If people want to follow you, yeah, how do they follow you?

Samantha Geitz: Yes, Twitter fame, I told you. It's @samanthageitz which G-E-I-T-Z I'm assuming also you probably will see my name in your little ...

Matt Stauffer: Put it in the show notes, yeah.

Samantha Geitz: Podcast thing. It's a lot of ... can I say, shit posting. Can you beep it out?

Matt Stauffer: You can say shit posting.

Samantha Geitz: Shit posting. I'm like people listen to this-

Matt Stauffer: That's our cuss for the episode.

Samantha Geitz: I haven't. Have you noticed I didn't Matt? I was trying really hard not to swear on the Laravel podcast.

Matt Stauffer: I know I was really proud of it.

Samantha Geitz: Yes. I have the filthiest mouth at Tighten. I haven't been reprimanded and I still feel like it's a thing. I also was told that I'm the bro-iest brogrammer at Tighten which is now part of my Twitter.

Matt Stauffer: That is most certainly true.

Samantha Geitz: Bro I would crush some code.

Matt Stauffer: Right, our single cuss down at the end of the podcast. I think I'll probably let this one slip through.

Samantha Geitz: Yes.

Matt Stauffer: All right Samantha, this was a ton of fun as always. I loved it. Thank you so much for giving us some of your time and your story and we will all see you at the Battle for React and Vue and whatever all that stuff.

Samantha Geitz: Well thank you so much for having me.

Matt Stauffer: Yeah, see you later.

Samantha Geitz: Bye.