 Welcome to the code and supply podcast. I'm Alex Code and supply is building a polygot can polyglot community of developers in Pittsburgh, Pennsylvania You can check out our upcoming events at code and supply co today We're joined by a woman that needs no introduction Sandy Mets Sandy is a programmer teacher author and consultant She's most well known for her book practical object oriented design in Ruby or pooter and has another book 99 bottles of oop Which is currently in beta welcome Sandy Thank you happy to be here Yeah, we're happy to have you Yeah, it's very exciting Yeah Okay, so I guess what we're gonna we'll start with kind of like how you got your start in the industry so can you tell us like how Like how you got interested in computers and programming specifically Okay, so that was so long ago like I'm not sure that my experience of getting started. Well, okay I was gonna say I'm not sure it's of interest or of use to anyone But I'll back I'll back up now I got a look at the time because I can go on or not so in some ways my experience does parallel the experience of people today Where they're going to say code schools or being self-taught at programming. I Started writing code back when there weren't really programmers Gosh, I won't even tell you what year but it involved punching cards. Let me say that Right. So mainframe computers were just becoming affordable and so there weren't programmers and I ended up going to Votek school trying to you know, I ended up failing out of music school and Going to Votek school trying to get a job and they tried to put I wanted to take drafting And I took the little pre-test at the Votek school and they insisted that I that I sign up for data processing and And and that yeah, and that sounded so incredibly boring that I resisted it might only Processing right what is that and so You know Votek schools exist because employers that need skilled labor Where there's no there aren't enough people like cabinet making or auto body or mechanics, right? There was a time. I know it's unbelievable when Votek schools top computer programming and so I after resisting mightily ended up caving and Going to data processing at Votek school and on the morning of day one. I wrote a for-train program and It was like magic Right remember the first program you ever wrote it was like. Yeah. Oh It was just astonishing like I caught the bug that day and I've been writing code ever since and that was a long time long time ago Nice. Yeah, I definitely know that feeling I My first program was some random thing that I wrote with my dad when I was super young I was like maybe nine ten kind of computer It was a PC. It was a like an old old old gate. Like when Gateway had like the golden G logo like that When Gateway and Dell were big competitors. Yeah. Yeah, I think it was like a I think it was like a penny and one maybe a penny and two Yeah, that was okay. So okay. Wait Emma. I want to know from you. What was your first first computer program? What language and what hardware? I think it was basic. I had had a little bit of exposure to we had an old Tandy box that my brother played with occasionally and But I think that my first experiences were basic on our old HP Pavilion something as Windows 95 bucks is still the the AT motherboard Form factor and whatnot, you know pre ACPI power on and off thing where you actually switch to the power Supply on its own It's funny because it did have a button on the front for suspend Before It was like before suspend really meant that much Not s3 suspend or whatever, but did it have a turbo button? Okay, I was waiting to jump in but I'll come back. Let's come back to the turbo when Emma's down here It didn't have a turbo button It did I think it was a penny one with like it was before the Oh Gosh, what was it? It was it was it was I think it had MMX I think that's the seat the feature that it had was like mx s or mx mx. Sorry Yeah Sorry, and we had a we had Internet, I don't know if that helps at all of it like Before a well or before we had a well there's that and then of course they will To gig Hard drive, I think it was Scary, okay, so I actually built bought parts and built an 80 86. Oh, it had a Turbo button on it that switched it from 4.77 Up to like nine Megahertz, whatever it was the chip, right? I mean it was it had a 30. Oh my gosh See What would it okay, I get them all confused so right now if I it's not gigs it's maybe mags Would that have been a 30? It was a 20 But you could do some weird reformatting which made it incredibly unreliable To turn it up to 30 to 30 mega hard drive All right, it was horrifying You could do very little. I mean it was DOS, right? Yeah, and then Windows was a big like Windows 3 was such a big upgrade anyway back in the day Yeah program it gets in our blood right we never stop being nerds Yeah, yeah, it's actually really interesting to kind of see all that stuff like to kind of be nostalgic about it I think it's Yeah, I think I think that it was it was it's nice to see like it's really cool to see that you You know got into it so so long ago, and yet you're still like a big name and you're still still doing it I Mean the big name thing was an accident. Okay Everybody's a programmer. Okay. I mean definitely in my sort of long programming career I know programmers who seem bored with their jobs, right? I have workplaces where people seem bored with their job, but but most of us who Stay sort of attached and interested in enthusiastic about programming like we never get bored Because it's fun right it never ceases to be fun. So it's amazing I feel incredibly lucky like I was one of the people that got in this so early and Then now I look back and I think well what I have done if I hadn't been right and go Like I can't think of a job that would have you know that would be that could have maintained its interest Challenge for so many years Yeah, and that's the thing too is that it's it's also it's also a career path where like there is always Something else to learn like the thing that I love so much is that I'm continually learning and continually like new stuff is coming out new you know Ways of doing things like it's definitely profession where there's no shortage of things that you can learn and things That you can try and things that you can do Yeah, and that's a huge benefit, but it's also a huge stressor for a lot of programmers too Yeah, the fact that that stream of information like the things that we have to know to do our jobs Keep changing and you can't like you can't stop Yeah, good and bad. Yeah. Yeah So I guess we can sort of pause on that like one of the things that I found that helps me is that I just sort of like I guess I've been fortunate enough to the things that I'm presented with to learn or things that I'm just so ret or like ridiculously interested in learning but Do you have any like? advice or I guess advice for how to try and stay ahead of that and try and keep trying to find Things or stay I don't know. I feel like I'm terrible at that like I'm terrible at knowing Like like I I have friends. Let me say this I have friends who are really good at keeping up with What's going on in the world and I rely on them to tell me? like Trends that I might need to pay more attention to And so that would be one bit of advice, right? Some people seem hardwired to be good at that like they seem to read everything and pay attention to everything and know Everything and if you're not that kind of person which I'm really not like I like I don't want to answer my email. I don't want to take phone calls, right? I'm gonna put my head down and do work and So what that means is that there's a whole body of there's a whole stream of information flowing around me Which I'm not paying that much attention to and and it could go badly wrong, right? Not paying attention and so I I do two things one is it a friend gave me some great advice when I was stressing about Like not keeping up not reading hacker news every day, right? You can go on and on not following everybody on Twitter. Not it's just it never ends this stuff that you could feel like you had to know about and It's great friend Jin may lives in Jin may we lives in San Fran and she's in that startup scene where they're all kind of crazy Anyway, and she told me once when I was stressing out. She said it's just news And and if you if you ignore it, it'll be gone tomorrow. There'll be new news And so that was one piece of advice, right? Don't pay too much attention to it But then the other thing is I have a friend who pays a lot of attention to it, and I just ask him So yeah enlist others who are good at it that would be my advice, okay So you you also So you came to Ruby from small talk I remember I watched a talk where you kind of showed was it six keywords at small talk had Yeah, so what drew you to Ruby? What you know, I had a real job. I mean, okay. I love Ruby Oh my gosh, I'm so grateful for the existence of Ruby But I was a small I mean I would still be writing small talk if there were if there had been a Really good well-supported open source version of small talk in the early 90s Right the problem is we were paying I was working at Duke University And we had big apps that Were written entirely on small talk that generated, you know that did the grant management stuff for the university So there's lots and lots of many millions of dollars of money came to Duke For grants that were submitted through that app and we were just dying paying licensing fees I mean in some ways like the big picture here is You know, even though there are good open source small talks now The those guys like they rolled the dice on closed source and lost and we all left Yeah, you know, and so I I was at a conference. We were right Java I just you know, I've always been a I've spent most of my life in dynamically typed object-oriented languages And so if you got raised that way then those statically typed object-oriented languages seem very constrained Yeah, right and I'm not saying that there aren't reasons why you'd have to use C++ or Java There definitely are but in my life I haven't much like I've written mostly sort of either medical or business apps and so I Came from small talk and then it just got too expensive and Java had won that at that point back in the mid 2000s, but I went to a conference. I was trying to pick it was my job to pick Some kind of database framework. I was looking at hibernate And I went to a conference and a guy Bruce whatever his name is that wrote all the job of books I went to his talk on hibernate and I said and I went up to him afterwards And I said I represent a group of people a group of small talk programmers Who have transitioned to J2SE and we're looking for a database framework and he said go see Dave Thomas's talk Dave Thomas was there doing that 15 minute Rails demo Uh-huh and so I saw that and I my boss was away. Okay here wait We'll pretend that my boss never hears this podcast So my boss was away. I go and I buy the book. I buy that tutorial, right? I run home. I buy this tutorial I take it to work on Monday. I steal it. I give it to everybody and oh, I did the tutorial over the weekend Right? I give it to everybody on Monday and I tell them everybody has to do this tutorial this week because When the boss gets back a week from today, we're a Rails shop So They did and we did and so we had a big important production app out on rails O dot 13 and Made I did made a bunch of terrible decisions, right that thing about change doing a technology change for a mission-critical app Whose deadline couldn't slip? That's what and you know, I was the one who had to stand up and In public and say we will make this work, but we did and it was a tribute to rails And so at you know the small talk people like Ruby a lot so that it was an easy sell to the programmers It was a time when open source seemed a little sketchy to the management You know, they were afraid but that battles now long since been one right ten years later I would say that closed-source software was a better deal in open source Anyway, that's how I got to Ruby. It was just accidental really. Yeah, I feel really lucky and and you just ended up being like a Pirate staging a rails Well, it was such a good idea and I felt okay. I know it was a okay Ruby and rails was a good idea. It was probably a little It was a little hubris involved in me is telling all the people at Duke that I could make I could solve whatever technical hurdles existed like We went production we went live in production before mongrel existed When there was really no Good solution. Well, I'm sorry. That's not quite true We were writing it mongrel came out while we were writing it And then when we were tried to when I tried to go from the dev server to the pod server nothing worked Like two weeks before we're gonna go live. It was that kind of life Back again like some some of the problems weren't saw like you could write a really fast app But you couldn't actually deploy it to production back in those days And so but it all worked out it was kind of an ear thing, but You know, I think there are a lot of people from that era who have stories like this, right? Right. Yeah, that's awesome So I your I mean Emma do you want to Chime in sure I Was wondering You know you sort of stage Deku and Did you think but um At what point did you go from At what point did you did your interest in Ruby go from you know, this thing is better to I Want to write a book about I never wanted to write a book I Here's what I would say someone this is a quote from someone it might be Chad Fowler I heard say this that many people want to have written books, but very few people really want to write them Right to have written and so I didn't I Didn't want to write a book. I went to that for I went to the first RailsConf in Chicago whenever that was 2005 2006 and I Okay, you know that thing where if you know a thing a technical thing it seems obvious and simple Yeah, and right, you know it. It's like everybody ought to know it I like why would you tell anybody a thing that you know because that would just be boring? all right, and so and but I And so I have this thing like you know how every all of your strengths are also Weaknesses like the other side of the coin Okay, so I have this Really leaky filter in my brain and so Things get connected in weird ways Which means that the symptoms of this are that I can sometimes say inappropriate things and I have to watch out for that Just come out But the other symptoms are that Once I and I'm not the brides guy in the room But once I understand a problem very often I can explain it in a way that makes sense using and uses sort of unexpected analogies Right things seem really simple to me once I understand now I don't always understand right away, but once they do it's like and so what happens is very often for something I understand I'm Sometimes really confused by other people's explanations Now I tell you this because I walked out of a tech talk at that first Rails Conf and so I don't even know what it was Someone was explaining something and he made it sound Incomprehensible it was just absolutely so confusing and it was like one of those things where really smart people say Here's this really smart thing that you're probably already afraid of and look now I'm gonna give you an explanation that you find incomprehensible. So at the end you're gonna feel really really stupid Right, it was one of those things like it did not help this explanation So I was out on the hall having a rant about that to people to the people I was with I was like God Why are they why do they do that? It just makes people feel stupid like this is not that hard like it's just stuff people don't you know It's just things people don't know like and I got overheard by a woman who is now my editor at Addison Wesley Oh, wow. All right. So that's what happened. Let that be a lesson to you Right, I was having a rant in the hall and so she started a campaign to get me to write a book I don't know what she was thinking, but she did And I was just like people like me don't write books like I write email and documentation and code. That's what I write And I don't do that. And so she was very persistent like if there's Value and pooter It really is a triumph of old-school publishing Because I didn't want to write it was from that date. It was almost five years to the day I agreed to start writing it. Oh She never let up every time I went to a conference. I'd see her and she'd buy me an expensive meal It's not me like oh And so she has cycled through argument after argument after argument and I finally decided to do it I actually there's a talk I give About the course of writing that because then once I started writing and it took me two years to do it And I pretty much hated every minute of it. I Wasn't good at writing. I didn't really know how to do it. I didn't know It was just hard, you know, I read a lot so my stand, you know I like if you're a reader your standards for the written were very high But then producing stuff that reads well to you as a reader is not as easy as one might think It doesn't just pour out not of me so anyway, so I wrote the book because in the end I just Gave in and said I would and then I I started on it because of that and then I finished it because After a year of working on it, I realized that I would hate myself forever if I quit Right because what do you do are you gonna quit you're gonna quit? It's a big project I kept it a secret for a long time. I didn't tell people I was working on the book and I did that so I could quit without feeling bad and Then I finally started telling people I was working on it. I kept people would tell me. Oh, you know, let me read it I want to read it. Let's give me a chapter and I would give people what I'd written and no one would read it They're all busy. That's not I mean I'm not because this is not a complaint But no one you know no one is interest. No one is as interested in your problems as you are Yeah Hey So I would give them the book and they wouldn't read so I had no You know I did it I mean I did it because in the end I felt like I Would hate myself forever if I didn't finish and I wrote it for I wrote down the thing That I wish someone had told me You know and that's really and so it's fine. You know people everywhere. I go people Well, all right, let me say this so I okay, you can't read your own press You can't because what is it, you know, I mean now there's sort of this internet Sandy there's internet Sandy and there's me And I'm okay like I don't mind playing internet Sandy when I go out in public. I do it You know and people what I hear people's I hear people saying to me things that I say to other people who are very influential To me, right? I met Kent Beck recently and I told him how much his books had meant to me and and I could I Recognized in his response to me the thing I say right because because what you want to do say you want to be gracious and grateful without accepting That you are in any way special at least I do yeah, right and so the things you say are things like I'm so it's I'm so glad it was useful to you hmm I mean seriously and so You know it's important Now here, I'm going on a whole tangent now And I don't need to do it. It's so I wrote a book the original question. I remember the original question Why did you write a book? I wrote a book not really because I wanted to write a book But but I'll tell you this I'm very glad I did who knew Yeah, you know, I mean I here's what I would say you guys should write books There's something you know now that you didn't used to know Yeah, it's sort of generous open-hearted Explanation of that to your earlier self Has an audience and that might be surprisingly big Yeah, yeah, yeah, I think that that is a lot of the things that you said Especially that that you recognize your own Statements back. I hope it was I hope I'm glad it was useful to you or even you know I've noticed that even in I've I've given a couple of talks. I mean, I'm pretty new in the game, but I've given a talk a couple of talks at coding supply and You know, it's it's stuff that Again, like you said, I thought it was pretty simple and I Also, except that there are probably people there who went and left it and You know left the building and we're like, oh, why did she say this like this? But You know in the end I guess I Some some people did come up to me afterwards and say Hey, I learned a lot and that you know helped connect some dots or something like that That's it's one of the nice things that I like to see and that's one of the nice things that I that's why I like to see Talks even about things that I already know about because you know, if nothing else getting that read on someone some other person's interpretations of something Really great. So Well, let me okay, I'm gonna jump in good on you for giving a talk Right. Well, so many people don't right they like that fear that we have of You know, I don't know. I mean, there's a couple things right like I'm gonna look like an idiot I'm gonna fall down or I'm gonna choke myself or fall off the stage or everybody knows it already right who am I to say a thing right that thing gets in the way and and I don't know the Feeling like like, you know, someone told me something really interesting early on And they said divide your audience into thirds and who knows if thirds is the right But it does seems to your experience given this talk and it seems to validate this He said a third of the people already know it and they're like, yeah, duh Third of the people are the third of the people are so new. It's such a new idea to them that they're like Oh wait, that's the way too hard And a third of the people are right there and you're make you're helping them take that next step and they're like Mind blown what an amazing idea, right? So there's that like So there's that right it's always it's for someone even if it's not for everybody But then when I was writing pooter my editor told me a thing Which I thought which actually is trying to be very very true. She said people love the story. They know Oh Yeah, and then if you and that goes to your thing about like I heard they heard it in a different way put a different way right, right like if you If you respect your audience by showing up well prepared They don't really care if they already know it Like they love hearing it put the way you would put it and I find that very comforting, right? It's like, okay, they're not gonna eat me alive Like all I have to do is do is respect them by showing up having You know clearly worked on this talk clearly done preparation clearly practice clearly made slides Like if I do all those things then even the people who already know everything I'm gonna say are gonna enjoy the talk Yeah it's it's really interesting because I tend to suffer from the same kind of like Whenever anybody like I'm really bad at taking compliments sometimes like people will tell me like this is really good Like you do this really well, and I just like never know what to say really, so I'm usually just like I can help you. There's what you say, right? We can practice right now Actually say something nice to me say something nice to me. We'll practice. Okay So I really enjoyed the talk that you gave on dependency injection I thought it was it definitely changed the way that I thought about Dealing with inheritance. So that actually changed a lot of the way that I approach problem-solving. Thank you so much It's really a pleasure to hear that it was a lot of work to put it together And it makes it worthwhile to hear that it's valuable to people See there you go It's a weird okay, there's a weird balance right between like Like do you feel like you're smarter than everybody else? No We are not in we are not in any danger of turning into assholes. Sorry Right, but you have to take the compliment because they're calm right you have to take it And so don't be too deflective. So stop that yeah, both of you Maybe you're not but yeah There's a way to be deflective about like like I don't want to hear the your special thing that that makes me afraid Yeah, but I will it does it does it's like what because if you buy into that then That it seems like you come to a bad end Yeah, it can come at that But for to have people value your efforts, that's a wonderful thing that never gets old Yeah, yeah, yeah, that's fair. I think it's kind of funny like I don't know it seems and all Positions are wrong as we know including this one, but It seems like there are a lot of people in tech who follow that same sort of Idea of of like no nobody wants to hear what I have to say about this thing and then I almost wonder in some cases if that's like If tech kind of even attracts the the sort of people who who don't want to Do that sort of thing but on the other hand, I mean it really attracts everybody. It's possible. I mean my interactions with everyone else around us or around me You know are completely different from the next person's but It's funny because I mean I think that Like you said everybody knows something so It's really easy to fall into the trap of I mean like someone came to me and was just like you should do it Talk about this thing and I was just like no no no, and then I ended up doing it And it was fine and you know help some people and then I've talked to other people and they I've been like you should do a talk about this thing like, you know you You Having this conversation with me really opened my eyes to you know a different way of looking at something something that comes to mind a whole lot is version control or like specifically not using version control but like Ways of managed managing version control other than here's some code. I committed it You know rewriting history and rebasing and stuff. I had a talk with a friend a long time ago Who I'm still for it pushing to Maybe potentially give a talk, but I really enjoyed that and so I think Maybe in general it's sort of that sort of thing. I don't know I guess I guess the point is maybe we should all be pushing each other to talk and I think I hope that At least code and supply self-plug again You know helps people feel good in that sort of way sorry you were gonna say something and You just made me have a thousand thoughts and I was trying not to interrupt and just you take you off on a digression But before I go, let me digress once code and supply awesome name Awesome name. It's like going to the hardware store to get code It's kind of it's kind of Pittsburgh II you know Pittsburgh being an industrial town by nature up until The EPA became a thing basically I Pittsburgh's things so yeah, it's I had no involvement in making that name, but go Justin and or any other folks But yeah, it's really good. Sorry. I'm coming up for abstractions conference soil. I hope to get I hope to find swag We've got swag. Yeah, so I need a t-shirt that says code and supply Yeah, I'm just saying So you guys get on that the logo is cool. It should be on a t-shirt. Okay, wait, so I wrote down two things while you were talking about the whole thing about It was an interesting thought that our business might draw people who Have Okay, the notion that we're the people we're the people that say no one to hear that everybody knows that no one wants to hear it It made me think gosh Is it is it possible that we all have more humility than average? because there's this But well because there's this notion of tech as sort of the you know hot shot Egotistical jerk programmer and and it's definitely They exist. There's no doubt about that, but Maybe there's a silent majority of us. So that was a really that was just a novel idea to me the other reaction I had when you said that was like well, maybe maybe it's Maybe if that's true, it could also be that you know one of the One of the things about the business we're in is there's lots and lots and lots of opportunity to get To teach a group to get up in front and give a talk like there's a way in which it's very self-selecting But there are tons of opportunities and that those opportunities just don't exist in other businesses If you're a bank manager, do you go to conferences and give talks? Right if you sell car like and so there's there's one sense that we have this enormous You know opportunity to do that But then in order to do it very often it's self-selecting There's a way in which someone came and got me But that's a rare experience right mostly people have to choose to give choose to give a talk to choose to get on that path And then then you have to overcome both things right you have to overcome your natural reticence your natural humility and then the absolute You know it can be terrifying And so the end so that drag drag me back around to deep now that you've given some talks Are you do you think of yourself as somebody who gives talks? Are you give are you prepping your next talk? Are you submitting to conferences do both of you? I would like to hear the answer to that question I've been told that I should submit submit to some more conferences. I still am not there yet I think that this podcast is actually part of that I don't know. I was brought in by Alex and Justin after some time after they had had some time in the podcast So I think that that had something to do it that maybe But yeah, I Think in a lot of cases I'm waiting to like feel like I actually have like a pretty good handle on something before I can Just funny because I'm gonna do that I wrote that down here go on But Like are you a person do you think of you like now? Okay myself identity right for a million years? I would tell you I write code. That's what I do. But now I teach and I give talks And you know frankly, I don't write enough code All right, that's the sad. That's the only sad thing about my life I do really do miss that all day long every day writing code and it's easier and more fun really than almost anything but There's an identity switch if you become the kind of person who gives talks at conferences or become the kind of person who runs a podcast and it requires accepting that You have you things to say that are useful to at least to some category of others Mm-hmm, and that's a hurdle Accepting that as truth, right that it being okay with that right mr. To humble Alex Really it is and so town so Dallas would you answer that question for me here? I didn't I didn't turn I didn't mean to turn This into an interrogation, but it Is So I will say I don't I don't identify as somebody who gives talks I do like giving talks, but I don't like I'm not on the conference circuit or submitting, you know Proposals for presentations to every conference that comes across But I do have actually really funny story about the first talk that I ever gave the tears which was on many tests and like There's no video of it thankfully because I asked Justin if he had a video and there's not um, but I Get up and I had I used like I didn't use keynote or PowerPoint or anything I use deck.js and like a website so I had like that I had a Jekyll site serving some hand like serving just like I've done the slides and Hamel and had it running The code is actually on github for that for this talk but the CSS like I like modified the CSS at the last minute and the Resolution of the screen was 4 by 3 aspect ratio and my laptop is 16 by 10 so I Like the first thing that happens when I switch from the first slide where it's just as many tests across the front of it To the next slide is everything is off like the whole thing is off and I was just like oh Like what do I do? So I like went back and I tried to like I really quickly tried to like change something and it didn't work So I just like went back and I was like well We're gonna do this and I'll just scroll through the code and do this so like the slides were awful Completely in it on stage. Yeah and It was one of those things too where like I the first maybe 30 seconds or a minute I was dying inside because I was just like This is crap Yeah, like I don't know if it was visible to anybody like I imagine I had to be like the grossest shade of green But then afterwards like after I got into it and I just got into my spiel where I was like This is how many tests works. This is how all of it's like must syntax works This one method is everything you need to know about all of the magic that happens in this library Like once I got into that Like I started to feel a lot better and by the end I felt completely fine and despite the fact that the slide deck was Broken beyond belief I felt really good And so in a way it's kind of it was kind of liberating for me to do the next talk because In my mind the worst possible thing that could have happened already happened in the first talk and that was perfectly fine So like the next one was just gonna be better I Do have a talk that I'm kicking around Ideas for I don't know. I got to like figure out. I got to figure it out still. It's like um it's the it's basically I Have like a slug for it, which is just like make change easy But I don't I don't have anything other than that, but it's based like Basically, I think sometimes people back themselves into corners with code and It's basically when when you have to go and revisit code or look at code like Take a minute and look at it and do whatever whatever work you're doing like Just it's kind of inspired by Kent Beck's quote that he put on Twitter, which is like easy and then make the easy change Yeah, yeah, it's kind of based on that, but I got to figure out a good code example cuz the hardest thing right Like because now you're trying to make an example that everyone in the audience can understand in two minutes. Yeah. Yeah, right Good luck with that. Yeah, I mean it is possible. It's just hard. It's really hard to find in the thing the sketch that stands in for the you know, the large painting Yeah, that you can teach, you know Well, you can give people the idea and let them extrapolate from it out to the bigger picture in one. Yeah, yeah And Justin is really I'm gonna say encouraging As a as a euphemism for he's like, yeah, you got to do it. You got to do it Like he's he's really good about trying to get people to give talks. He's It's very good. I mean It's not for everybody first of all, right? So we want to be careful about not make people feel Like their lives aren't worth living if they don't want to give talks, but I mean, I think there's probably a lot of people out there who Would love to do it like what why don't why don't why isn't everybody lined up to give a talk? They don't feel qualified or they're afraid Yeah, right and there's probably a third category which is don't have time Right. Yeah, right and I feel completely respectful of the don't have time people have lives and Families and kids and dogs. I have a dog now. Oh my gosh. Talk about the time I That's my excuse for everything Yeah, so okay, so but so either you feel unqualified and we've just decided that that's not true because you know things that You know things now that you didn't used to know so all you have to do is tell the you used to be the thing You know now, right? That's a talk You don't have time well then that you just you know You don't you don't have time then then you don't do it, right? But then there's that big category of feel terrified yeah and You know and some people So, okay, so let me ask you so you see you got up on stage and your slides were a total disaster and you were Some shade of green But then right away it got better Yeah, say why tell people why what happened when you're on stage. What did you notice? Um, I think like the the change was that I was so Like I really like mini tests like I like that That I can read the whole thing in an hour and know how it's working I know every bit of magic in it and I can't even begin to open up our spec and like figured out so like really, right? Yeah, so I knew the subject matter really well and The second very well prepared right yeah, that was that helps when you're terrified. Yeah What else? And then two Like once I started talking and going through it like the thing that I was scared of which is like this is broken And nobody's gonna like it just didn't happen. It wasn't like I got booed off the stage or people started throwing, you know How did it feel that's the thing I'm trying I'm trying to get you to say it's very specific thing about the audience Right like what happened you looked out at them and they you thought they would hate you but instead What did what feeling did you get from the people who are at your talk? That they were just they wanted to hear what I was gonna say they're rooting for you Yeah, and you can feel it can't you like I like even before people even when people didn't know my name like like my talks You can almost see the difference in them from the day that putter got published Because I was giving talks before that and then I gave talks after that and after that. I'm very much You know, I go to I get up there on stage and I feel like everybody's like I feel buoyed up by the Friendly regard of the Ruby community and so when I get on stage, I feel like their favorite aunt, you know Like I feel like I can go there and poke fun at people and tell them to behave and shake my finger at them I feel very relaxed with our community now, but before when people had no idea who I was The but I would I still could go on stage and you go up there and you think You know that you're gonna throw up or you're gonna I have a whole list of fears, right? I'm gonna trip walking up the stairs to stage. I'm going to spill that water. They give you I'm gonna take a drink of that water and start choking start coughing on stage, right? The can't get the video hooked up like, you know, you've seen them You've seen speakers have all of these problems But the truth is when you get up there you look out at the audience. They just they're just rooting for you Yeah, and that was a real surprise to me. I thought they would want to eat me And so that I don't know I would tell people that right like everybody has something to say It's like despite the fact that it is terrifying and we don't want to discount that at least it was for me I was very afraid the first time I got on stage to give a talk it turns out that They they're not really waiting for you to stumble Right. They're trying to make it They're trying to make you they're trying to comfort you as long as you're well-prepared Yeah, anyway, I want more people to give talks. Can you tell? Yeah Yeah, yeah, you guys should give more I think you said something important It's just off-handedly in that whole thing Which is like, you know, you've seen all these things and it's like well Yeah, you probably have seen those things and then you're like, oh geez that sucks and then you you know It didn't matter and that's rest of the time is like, oh well, you know presenter trip and joked on water That's not what you remember. I mean you remember that happened at some point That's not what you remember about the content Yeah, it didn't it didn't make you hate them. It made you go For them, right? It made you like them more if anything Yeah, and so that whole series of tears. I'm like my night tears about I mean fortunately almost everything that can't go wrong Has gone wrong to me. So I got to practice all of them And now I just you know, I mean I was somewhere recently in the I had Google notifications on so I was in the wrong time zone I was in Europe and so it was some regular meeting I have like I was supposed to go to the gym or something and so it popped up and keynote ended keynote like like it toggled to the foreground and keynote somehow I Was still open, but it was somewhere else and I didn't know it Because I was standing in front of both my laptop and the screen was behind me So I'm like cabin on and on and on and they're looking at my desktop, right? I think it's up there They all seem a little distracted right you can tell when you're looking at a big audience All this and finally I look around and I realize it. Oh, that's not I don't even know what they're looking at We should something you know and and so then I'm like trying to alt tab and it's all tabbing on the other monitor Not my monitor So I can't even find like anything and finally I look around and I realize oh if I just alt tab to keynote It'll all be fine and I can remember telling him I did it and I could not I just walked over the front of the stage And I said wow whatever They left just like that right and they were just like yeah, whatever Good let that be a lesson to you turn all your notifications off. Yeah. Yeah We know that but I I don't know I never thought of my calendar Might screw me on stage. Yeah oops Yeah, I I Had a panic moment whenever I started my first talk that was like oh gosh I got a tab through all my tabs and find the Google Drive tab Oh geez everyone's seeing all my Twitter stuff and all my email and oops And I don't even think anybody else remembered that but I remember that because it's one of those things in the end I mean, I mean I have learned to Do everything like before I leave my house I have an extra monitor here, which is the same as the you know screen and so I set it all up Before I unhook everything to go I set my laptop up Just like it's gonna be so that I can plug in that extra monitor and it will be the right You know, it'll be the which one, you know The right slot the right place and you know in the direction. I expected because I learned to my You know, you you will find out to your peril when you get up there like like which what is the most painful thing? You have seen happiness speakers being unable to get their slides projected. Yeah, it's the most stressful part, right? It's right in your talk, right Alex Yeah Yes, yes So, you know, and I heard like I read a bunch of books about Stress and performance under pressure because I you know, I have a psychology degree And so I went and looked at like how I did research about how to deal with that because I was so afraid the first time I gave a talk and One of the things they talk about is practice and they and they want the practice to be under as realistic of circumstances as possible And so I do everything like I don't do so much anymore because I'm just more comfortable with it But at the beginning I would like come in I would walk into my office right here at this desk I'm sitting at with my laptop and I sit it down and I open it and I get my remote out and I hook the dongle up and I hook it up to the thing. I'm you know, I do it and and then I would rehearse the talk But the rehearsal starts with a closed laptop. That's not attached to those devices and that really helps a lot like even now when I get in situations where I Can't get my slides displayed on the monitor. I'm a lot more comfortable with it Yeah, I actually do the same thing I have a really long cable like HDMI cable that comes out from the back of my TV. So I will just set up like a Table with a stack of books and put my laptop on it plug the cable in and I'll like practice it staring at an empty couch Just like you know going through it because then it is It's exactly the same thing like I'm gonna be looking at the laptop screen the actual screen is gonna be behind me I have my phone in the remote mode and I'm doing that like I do the I do that Just to make sure that I know what it's gonna be like Well, and I'll tell you a situation in which that can be turns it will turn into real a real handy practice thing Someday like someday you're gonna be asked to give a talk online over a hangout. Oh Yeah, right, and then they have to turn everything off on there. Andrew. I should get that echo feedback. So basically You see nothing, but your slides You're just looking at your slides So you so then you have to like talk in a really animated way as if people are maybe laughing at your jokes in some distant land Right, it's really hard But if you do that if you practice it at home, then you can give it even you can give it to your the your imaginary audience Yeah, I think that another thing that would also work is people who are sort of afraid about the concept of doing a talk Something that I've been considering is also doing some some like screencasts or even just like you know like a talk to my webcam sort of thing about Whatever topic that I Want to talk about I Think that that would be really useful because also, I mean that's Sometimes it's just Something that you there's somebody's blog post out there breaks this thing down in some sort of way or whatever But there's not enough of that for some tech things I feel like and that's one of the things that I like for instance, I use that a lot for there's someone who had like lectures for like different parts of symbolic logic that I use whenever I was in in school some years ago and It was it was nice to be able to like watch this other person watch someone other than my teacher explain it first of all you know someone other than the book explain it and just Watch anybody explain it at all like for things that I didn't get or whatever here. I think that There should be a big push for that sort of thing and it's probably less stressful and I mean it's simultaneously more stressful It's less stressful because you don't have to work like you can record it again whenever your slides don't work and you took but you Also have the added pressure of now this thing is is out there and it's permanent in air quotes. We'll say so But it's an interesting Sure, yeah, you know much more Like that seems harder to me like it's a little intimidating to me to think about getting you know I Think it's about it's the perfection thing That's what it is because if you give it if you give a talk at a conference even if you screw it up They and they record it so it's as permanent as your screencast, right? All right, so for courted thing, but somehow it feels like well nobody thought it was I'm not asserting that it was perfect I was just on stage Yeah Whereas I Would say it would be good practice. They probably be good practice for me I should probably do it too now that you've said it now I feel some now I feel like because I'm afraid of it a little bit Yeah, so one of the things that I started doing recently is so I have a blog where I talk about just Anything and everything like whatever is on my mind. So it's not just code stuff It's like the climbing trip that I went on or whatever And I started I got a camera last year So part of that is I was like, oh, I'll try and shoot some video put some video on YouTube It's basically my blog but in video form And one of the things like there's a post that I was working on About like Dropbox can't like discontinuing mailbox and carousel and like all this stuff And I actually wrote it and tried to read it on camera and the video was awful It was really bad and I was like, okay. This is way too formulaic like it's scripted I can't actually read this thing on camera and then I just said well here are the three things that I want to talk about and I just put them on a whiteboard on the like behind the camera just three bullet points and winged it completely winged it and um The thing about like so for doing screencasts one of the things was before I edited it The raw video looked really bad like I was not happy with it And I was gonna do like a couple more shots. I was gonna try something else But I had a paused moment where I was like I don't really have time to Take a hundred takes of this thing So I'm just gonna use the one that I have and I'll just edit it And if it's really bad, I'll wait a week and I'll do it again you know and So the raw video there was a lot of stopping a lot of like like me pausing and like not like getting choked up on my own words And when I edited it, I was able to like edit all that stuff out. You seem smooth, huh after Eddie. Yeah. Yeah, so So that's that's the thing too like being able to do the screenshots. I I think at least for me I'm much better when I try and wing it scripted stuff doesn't I'm not good with scripts If have you seen any of my talks online if you're watching me give a talk online. Yes. Yeah, they're like Really completely screw. I mean here's the problem like oh, yes, there's so much stuff That if I go off script they go over time Yeah, okay makes sense or I'll have that thing where you put a slide up And you think this would be a great thing to say right now And then you realize it's like better three slides from now and it was it was on it's in the speaker Notes for three slides from now for a good reason. Yeah, you know, and so I I mean I do ad-lib a little but It's that thing that obsessive editing, which is why bookstay Because there's a there's like an almost perfect way to do it that will will compress the maximum amount of information into the smallest amount of space and If I don't you know, I mean if I didn't maybe if I quit making, you know 500 slide code That would be a little easier but So I will say this for the the talks that I've given I Do have like speaker notes that are basically paragraphs And then I just kind of read over them and I don't actually look at them during the thing But like I'm I'm like I've read over them and read them with the slides so much that I Can track it very well How many times is the right number of times to rehearse a talk before you give it in public? Uh So I will Rehearse while I'm actually making the deck so I'll make a few slides and I'll go back through and read it and make sure like oh This flows. Okay, when I get the slide deck done I'll do it maybe two times by myself and then maybe a third for another person and then I'll Not actually do a rehearsal, but just like like arrow key through the slides before like a few hours beforehand So so for me, I do it I'd say End to end probably four times, but I'm also doing it while putting the deck together as well. So And I want you to answer that question. How many times is the right number of times to rehearse a talk? I Think that sounds about right to me. I mean, I still have a woman in experience, but Yeah, I was gonna say like three and a half ish Including revisions during those times so I rather than that I just sort of rather than like Alex said I tended to Try to lay it all out like trying to try to make an outline and then make slides from that and then see how it actually goes In the thing and see if you know like oh this content should go before this content and see if that helps it be any better, but Yeah, so people should expect at least that right that would be the minimum. Yeah, right? I mean, I feel better like again. I'm a little obsessive over preparer. So I would do more But I don't I at one point I would tell people 10 10 is the right 10 is the right number of times to go through it front to back as if it were real in your office And and I don't do that anymore. I mean that was in the excess of paranoia but I for me, it's like I don't I feel good on stage if I And also it's important to sleep between the rehearsals. Yes. Yeah So you can't do it five times in one day like if I were gonna do it five times I would feel like I would have to do it once a day for five days Yeah, is and so I'm still probably in the five camp, but closer to you closer to your numbers then I used to be thank God Yeah, I also have a tendency to wing it and that may or may not be to my benefit so Important no, so some people were very good at that, right? I wish I were wish I were better at the wing in it Because then I could do less prep Yeah But either way like being better with prep or being better with I mean, I guess it's all about like Figuring out which way works best for you And the only way to do that is to give a talk at code and supply next month Filling out our form Yeah, I think you should I Like do you have any more things that you want to talk about? I feel like we're getting close to time Yeah, we were getting pretty close to time. I think Tiffany Had asked It was going so well looks like it looks like Alex might have dropped. Um, I think what he was gonna say was Was The Blog post the wrong abstraction about like here. He is duplication. Oh Did I cut out you cut out you were going on but now you're back, but you were setting the wrong abstraction. Oh Yeah, so basically what led to to writing the wrong the wrong abstraction and Cuz basically your assertion is duplication is cheaper than the wrong abstraction and so I guess What kind of led to to writing that post and and Okay, well first of all, okay, I mean because I could go on and on about that. I Want to go take a firm stance. I'm not saying that dryness is bad I'm not saying that we should should repeat ourselves. Okay, like everything. I'm about to say depends on people's ability to Apply this advice to their own situations But here's what I see like my job now is to travel and look at that code. That's what I do That's really it's what I do for a living, right? And I see a phenomenon all the time where people have Code bases maybe that other people wrote that have evolved over a period of years. They've gotten increasingly complex that they're having difficulty changing And very often it's because they have the wrong abstraction And so that you can see this the you know You can tell because they had one piece of code that used to be called from a different play a bunch of different places And that code has over time evolved To contain conditionals and multiple execution paths through it Okay, and then they want someone wants a new change in that change We're going to require like going in and change something has 47 if statements in it and so I Go and I look at their code. They and that that's always a code They want me to help them with right some something that even they don't understand it Like there's no way for me to understand it at that point and when I look at it I say do you understand this in there like no we don't understand This is not gonna work it but they feel obligated to and when I tell them it's like this is where it's really handy to be internet sandy Because I can give people advice and they think it's right And so I tell them just take it back Just take all that code and in line it back where it came from and delete all the stuff All the branches that don't go with the place where you're calling it from and then look at what you have and See if you know something if it's easier And they look at me like they've been saved It's clear that we just Think to do that like we don't there's some way in which we feel as if we are not allowed And so that advice has come from my own experience of doing that But also from the fact that I I give that advice to people and then I see him six months later to the conference And they're like oh my god you saved us And it's not like rocket science it's almost anti rocket science right it's the thing I do because I don't understand their problem Yeah, and it's easy to you know just in line at all like reintroduce a duplication and move off in a different direction And so that it's funny that has gotten a lot of press a lot of retweets like it's a sign of how Um much trouble this issue is causing us The amount of sort of buzz it has gotten on the internet Yeah And so it's like let's just do the simple thing You know let's not be trapped into going forward if it's wrong like it's okay We can and we can be really generous right we can say what was what it was right at one point in time and things have changed And now it's wrong so let's Rewind and think about it again. Yeah, he has to be bad or wrong You know no one has to be evil for this code not to be right anymore. Yeah Yeah, no, it's it's um really interesting I so I do embedded software now, so I write on like for microcontrollers And one of the things that I've noticed is that oftentimes when I'm trying to think through some logical problem The thing that I have to do is make a mess Like and then clean it up after the fact because I like just can't whatever I'm trying to do I can't fit into what already exists so I just have to kind of like Do what I was gonna do make a mess and then like look and see how I can clean it up later And I feel like that talk sort of spoke to that process or that blog post sort of spoke to that process that I do I thought it was it was really interesting and I know I know Tiffany was was curious about it as well Just write it down. Just make it work. Get the green right can't would say Kent says quick green excuses all sins Yeah To get to green then you can refactor under green like many good things happen if you get working code and Often that working code doesn't have lots of a level of indirection in it Like that it's often easier to get it working if you just write a couple of bad procedures Yeah, and I'm the old guy, but I'll give you permission to do that right like write some bad procedures and look at I'm get the green they can refactor under green. It's much easier Everything is easier if you act as if you don't understand the whole problem before right getting it all working Yeah All right, awesome. So I think we are kind of wrapping up on time Do you want to tell people where they can find you at on Twitter, etc, etc at Sandy Metz on Twitter. I say ndi METZ I have Really that's it. I'm kind of unresponsive on Twitter because you know, I confessed early on in this podcast about Not keeping up with the news, but I am there and I do pay a little attention Yeah, anyway, that's the best way to reach I have website I have blah blah blah blah blah. Yeah, Google knows me. Yeah Cool, and then people can also sign up for 99 bottles of oof, which is your upcoming book Yep, new book. I'm suffering with a new book right now, which has actually many of these ideas We're just talking about in it. So if you can Google that too, it's based on 99 bubbles We're you did not have to learn about bank term loans in order to order. Oh, no shipping containers All right, awesome. Thank you very much for for coming on the podcast This is a blast. You're gonna be at abstractions too. So people should buy tickets to come to Pittsburgh It's gonna be fun and come see Sandy. Yeah, and You can find me at Alex Shanoi and Emma Mdandrum Twitter Awesome. Thanks again, and we will see you guys and the audience next time