
Code with Jason
Code with Jason
263 - Gayle Laakmann McDowell, Author of Cracking the Coding Interview
In this episode I talk with Gayle Laakmann McDowell, author of Cracking the Coding Interview. We discuss coding interviews as well as the current state of the job market and economy.
Hey, it's Jason, host of the Code with Jason podcast. You're a developer. You like to listen to podcasts. You're listening to one right now. Maybe you like to read blogs and subscribe to email newsletters and stuff like that. Keep in touch.
Speaker 1:Email newsletters are a really nice way to keep on top of what's going on in the programming world, except they're actually not. I don't know about you, but the last thing that I want to do after a long day of staring at the screen is sit there and stare at the screen some more. That's why I started a different kind of newsletter. It's a snail mail programming newsletter. That's right. I send an actual envelope in the mail containing a paper newsletter that you can hold in your hands. You can read it on your living room couch, at your kitchen table, in your bed or in someone else's bed, and when they say what are you doing in my bed, you can say I'm reading Jason's newsletter. What does it look like? You might wonder what you might find in this snail mail programming newsletter. You can read about all kinds of programming topics, like object-oriented programming, testing, devops, ai. Most of it's pretty technology agnostic. You can also read about other non-programming topics like philosophy, evolutionary theory, business, marketing, economics, psychology, music, cooking, history, geology, language, culture, robotics and farming.
Speaker 1:The name of the newsletter is Nonsense Monthly. Here's what some of my readers are saying about it. Helmut Kobler, from Los Angeles, says thanks much for sending the newsletter. I got it about a week ago and read it on my sofa. It was a totally different experience than reading it on my computer or iPad. It felt more relaxed, more meaningful, something special and out of the ordinary. I'm sure that's what you were going for, so just wanted to let you know that you succeeded, looking forward to more. Drew Bragg, from Philadelphia, says Nonsense Monthly is the only newsletter I deliberately set aside time to read. I read a lot of great newsletters, but there's just something about receiving a piece of mail, physically opening it and sitting down to read it on paper.
Speaker 1:That is just so awesome, Feels like a lost luxury. Chris Sonnier from Dickinson, Texas, says just finished reading my first nonsense monthly snail mail newsletter and truly enjoyed it. Something about holding a physical piece of paper that just feels good. Thank you for this. Can't wait for the next one. Dear listener, if you would like to get letters in the mail from yours truly every month, you can go sign up at NonsenseMonthlycom. That's NonsenseMonthlycom. I'll say it one more time NonsenseMonthlycom. And now, without further ado, here is today's episode. Hey, today I'm here with Gail Lockman McDowell, author of Cracking the Coding. Interview Gail welcome.
Speaker 2:Thanks, glad to be here.
Speaker 1:Glad to have you here. I have your book right in front of me here. I bought it a couple years ago at this point I think. I bought it when I was interviewing at Amazon and it was very helpful. But why don't you tell us about your book and whatever you want to tell us about yourself?
Speaker 2:Yeah, so my background is kind of have an interesting background. I came here originally from a very much a software engineering background, was at Google for a while, but at Microsoft and Apple as well, and then started diving a lot deeper into the hiring process and really sort of working or looking at both sides of that. And so one piece of that is Crackin' the Coding Interview. I also have equivalent books for product managers Crackin' the PM Interview and Crackin' the PM Career and then just came out with Beyond Crackin' the Coding Interview, which is sort of a follow-up. It complements Cracking the Coding Interview really well and approaches things in a very different way, given that we do have so many more resources nowadays and given that interview questions have gotten harder, and so that's kind of one side. And then the other side I do is I work with companies, especially a lot of the large tech companies, on their hiring process and actually sort of thinking about taking some of the lessons from prepping candidates and saying, okay, what actually works well as an interview question, what doesn't?
Speaker 1:Okay, so it sounds like you get an opportunity to see things from both sides, both the candidate side and the employer side.
Speaker 2:Yeah, exactly, and it's you know. It's really interesting because when I can go to a candidate and say, okay, here is you know this one weird trick to do a lot better in interviews, that flips around to companies to say, hey, you know what's? What's guiding whether people do well in this question or not is actually just preparation and that's not a great question.
Speaker 1:Okay, and I personally come from a Ruby background and it's not the highest ranking language. You know, it's a relatively small community and Ruby and Rails it's used by a lot of startups, although bigger companies use it too. Um, but I feel like most, most rails developers work at startups and not big companies. Yeah, um, and I find that in in at least the rails community, maybe this is kind of universal, but a lot of people kind of don't get certain aspects of job interviews.
Speaker 1:Um, I hear a lot of griping about like whiteboard interviews and live coding exercise and stuff like that, and I can understand where people are coming from. I'm here. I'm sure you hear a lot of people saying similar things. Um, and I wish people would have a little bit more empathy for people on the other side and it's like well, they have to judge you somehow. They can't just take your word for it that you're good, um, and a lot of people probably get that, but maybe they don't feel like live coding is a good way to do that, especially, especially not leet code and stuff like that. I used to be of that opinion myself, but then my opinion changed. Before I share my opinion about that, I'm curious how do you view? You know, the leet code, exercises and stuff like that. Do you think it's justified or how do you look at that?
Speaker 2:You know, I think there's a lot of nuance here and you know, I'd say my simple answer is in the right place, use the right way. It's probably the least bad of the other options and I think it's really easy to look at it and say these interviews are broken in this, this, this and this and this way and a lot of the reasons people come up with. I'm like, yeah, you're right, that is a problem. And then there's some other things where it's like that's actually not the process, that's how people are implementing it and there is a difference between these things. But the reality is, all these other types of interview, questions, approaches we come up with, they all have their flaws because at the end of the day, we are trying to judge people, what people will be like over the next 6, 12, 18 months or more in a couple of hours. Um, and it's, it's all pretty broken, it turns out.
Speaker 1:Yeah, yeah, and that's a really good point. Um yeah, there's no perfect way to interview people and there's there's no option to do everything in the ideal way. You just have to choose among um options that all have their downsides. Um with with leet code, leet code interviews, or however you want to refer to them, the common complaint is that the kind of work that you're made to do in those interviews has very little relationship with the actual work that you would be doing in your job. But, to be fair, I don't think that that is always the point. My mind kind of got changed before I interviewed at Amazon, as I mentioned what I came to understand in those interviews, because it very much was like the algorithm alga algorithmic uh, kind of interview, um, but the.
Speaker 1:the idea is that you can't fake being um. You can't fake being a competent programmer If you can do these crazy um um exercises where you have to. I don't I don't remember the content of it, but sorting algorithms and stuff like that, if you can do that stuff, then there's no way to fake that, whereas you could memorize answers to other questions and stuff like that. It's like okay. Once I look at it from that perspective, I kind of get it.
Speaker 2:Yeah, you know, I think that's kind of right. You know, and I think the I always find the criticism of you know, these aren't like what you do in the real world. I really it's not wrong. It's actually, I think, a really interesting and actually incredibly nuanced point. Why don't you? I do a lot of interviewer trainings and that means I am training a lot of people who, some people who are totally bought in on this and some people who are, you know, totally against this process and a lot of people who are just kind of in the middle.
Speaker 2:And one of the analogies I bring up right in the beginning to kind of get this objection, kind of objection handle up front is I give this analogy of imagine, and I don't know anything about bricklaying, but let's say we're hiring a bricklayer, how would we interview them? Well, if we wanted to hire a bricklayer, we could make a really, really practical test. We could give them a bunch of bricks. Again, don't know anything about bricklaying, but we can give them a bunch of bricks and say, okay, go, go, make a path, and that would be incredibly, incredibly practical test. But does that make it a good test? Well, that depends. How hard is it to learn that skill. If it's a skill that someone can learn in a week or two, well that's not necessarily a good test. That may be, while it's incredibly like the real world, what we might be actually evaluating is have they gotten a short, short amount of training? And so that's not actually going to be very predictive. It's just going to predict who's gotten a tiny amount of training. So what we should be asking when we think how do we interview a bricklayer, is what are the deeper fundamental skills that really differentiate between someone who, after some training, after some, you know, ramp up time? What are the deeper fundamental skills that are really going to differentiate, if they're, you know that really differentiate the good, you know kind of the okay, from the great? Um, and so when we think about these interview the elite code style interviews and software engineers what are the skills that differentiate who is just kind of okay and who's great?
Speaker 2:And in my mind, I think actually one of the things that is really important is and people always get a little squirmy when you say this but is essentially intelligence. Another thing that's really important is being caring about quality, and then you know kind of how, how do you work with people and what I do think the lead code interviews are the least bad at is this sort of intelligence thing. Now, that's if executed well, you're asking the right kind of questions. A lot of companies do these and don't ask good questions, but if you're doing the right things, I think they are.
Speaker 2:I haven't found a better measure yet for the kind of sort of problem solving intelligence that's relevant to software engineer, particularly when complimented with, like a system design interview which is looking at different type. What it doesn't do well in is like does someone value writing? You know good code and the quality of code on a long term basis? You know this is certain things, but it gets other things and that's why we don't do just this interview. We do system design, we do behavioral, we do these other things as well. It's's not perfect, it's so far from perfect, but all all of these, all of these processes, are kind of broken yeah, you bring up a couple really interesting things there.
Speaker 1:Um, the intelligence factor it's interesting how it's kind of taboo to even talk about the concept of intelligence, yeah, um, and a lot of people like believe that it doesn't even exist.
Speaker 1:Um, which is really fascinating because it's one of those things where it's like it's a water is wet, kind of thing, like some people are smarter than others, like yeah, it's clearly true, um, um, but there's this kind of ideological political thing that's mixed into it, where people believe that humans are blank slates and anybody can learn anything and the the sad, unfortunate, ugly truth is that not everybody can learn everything. Um, some people are just not smart, and no amount of training or experience or whatever will turn a not smart person into a smart person.
Speaker 2:When I was, and I'd say, to be fair, there's so many different types of intelligence, right, and so I think one of the things that makes this a very thorny topic for companies to talk about is one there's some dangerous history in the us when it comes to iq tests and their history, right, and these are not iq tests, these are not measuring iq, they're measuring a type of intelligence, kind of sort of um, but there are, you know, there are different types of intelligence, and this is sort of a measure of one type and it's not the, it's not the full picture. But yeah, you know what? Like, look, some people are smarter than others, or smarter in certain ways, and that's, that's just the reality, and it's also reality that it sure does help to be smart, to be a software engineer.
Speaker 1:Right, yeah, and I learned it's interesting it's actually illegal to give an IQ test as part of a job interview process and a lot of places they try to kind of give a proxy IQ test or at least, like you said, to measure a certain kind of intelligence. And when I was managing a small team, when I would interview people, that's what I tried to do. I tried to give them kind of a proxy IQ test, because you might find somebody who's just out of college and they're brilliant, but they don't know anything yet. You don't want to pass those people over. And I've interviewed people with 20 years of experience who can't code their way out of a paper bag. And so I find that companies really overvalue experience and knowledge and undervalue intelligence and understanding.
Speaker 1:And the better interview processes that I've gone through they well. I'll contrast that with the worst interview processes that I've been through. The worst ones are kind of just like probes. They probe you for random trivia.
Speaker 1:I remember I got asked a question like single quoted strings or double quoted strings in PHP which is more performant. It's like, well, I don't know, it happens to be single quoted strings, but like that's never going to matter and like it doesn't, it's not meaningful whether I would happen to have stumbled upon that particular piece of trivia or not. Um, it's a lot more valuable to um to check somebody's like big picture understanding of a certain area, like tell me about object-oriented programming or something like that. So the better interviews that I've been in. Um, you talk in your book about system design, which I'd like to talk about a little bit. Um, I feel like that does a pretty decent job of not just probing for random trivia but, uh, showing you how a person thinks and approaches problems and stuff like that. Um, can we talk a little bit about the system design interview? That's something that I really didn't know about until I interviewed at a few different big companies and I still don't have like a super firm grasp on, like exactly what the idea is.
Speaker 2:Yeah, you know it's. I think system design interviews are, you know, again, they're, they're, they're broken and they're great, right it's, and we really have to understand you know what's working well and what isn't working well, whatever you know, for instance, I'd say that you know, if you're listening to this and you, you're like, no, I think that we should do everything with a work sample. We should do everything with this, Like you need to, under whatever process you're doing is broken in its own ways. You, no matter how much you believe in it, you need to understand what's broken about it.
Speaker 2:Um, you know, social design interviews. They're about um gosh, they're about so many different things. Um, they are about, um, part of it's about collaboration. They, as much as people rely on, you know, behavioral questions to figure out what it's like to work with somebody. And, like you know, system design interviews even coding interviews are often going to be better measures of what it's like to work with somebody. So they're about, you know what the kind of how they collaborate. They're about the person's knowledge, not in the sense of trivia, but in a sort of applied knowledge way, and they're about this sort of intelligence. They're about somebody's ability to handle ambiguity. So it's a lot of things that get thrown in there, and the way it's so multifaceted is one of the things that makes it great. It's also something that kind of throws a wrench into its reliability, because someone might be fundamentally great at this skill but have less knowledge and not do as well. Um, so they're, you know, they're great. They're great things to have as as a tool in the in the interview process yeah, there was a.
Speaker 1:I did an interview at instacart some years ago and I totally bombed a system design interview because they were asking me questions about how would you, how would you set up the load balancers and stuff like that? And I'm like I don't know. I've never been in a position where I've been responsible for that part of the system. I've just been an application developer and somebody else handles that stuff, and so I didn't do well in that. But but then more recently I've gained experience and then I've been able to do better at that.
Speaker 1:Yeah, it's really tough to get a feel for what somebody is going to be like to work with, and you mentioned the, the work sample type thing. I've heard of people doing like auditions. You kind of pair program with somebody, um, not to like scrutinize their coding style, um primarily, but just to kind of work together for half a day or something like that and see what it's like to work together, um. And then there's take-home exercises. The issue that I have with that is like I don't know if this took you 20 minutes or if it took you four hours to arrive at the same answer.
Speaker 1:So I think that's a really good point. You make that, like all these methods have weaknesses, um, and and people should have what you might call intellectual humility, where it's like we have to be humble about what we can tell about people and about how good our various methodologies can be.
Speaker 2:Yeah, yeah, you know work samples tests, you know the kind of take-home exercises. Yeah, you know work samples tests, you know the kind of take-home exercises. So sometimes I kind of lightly chuckle at the amount of controversy about you know kind of the elite co-style interviews. Not that I don't truly, truly sympathize with those people, because I do think they're broken. But you know, sometimes I imagine an alternate universe where you know everybody was doing take-home exercises and like how much gosh, people would be so upset If take-home exercises were the norm.
Speaker 2:People would be so upset because it would create a world in which people who have any life responsibilities are at huge disadvantages. It would create a world in which people who companies could sort of just like arbitrarily be like you get a take-home and you get a take-home and you and you get a take home and give them out to all these candidates who they weren't very serious about. You'd have companies using it or being appeared to having the appearance of using it to kind of get free labor. I mean it would be so controversial if it was the norm. But because it's not the norm, we're like, okay, they're doing a take home, that's great, and you get your niche of niche of people who love those, but they have so many flaws as well.
Speaker 1:That's a really interesting point. I've noticed that phenomenon in general, where it's kind of like, whatever the dominant thing is, everybody hates, and there's, there's something that is not the dominant thing and precisely because of that people are like we should do this other thing instead. Yeah, I personally would hate that if take-home exercises were the dominant thing Because, like, just no thanks To me applying to a job and interviewing at a job. It's kind of like buying a lottery ticket because you have to pay this cost and you have some chance of winning. And I don't want to pay a huge cost for this lottery ticket and I kind of want my investment in it to be proportionate to how likely it seems that it's going to pay off.
Speaker 2:Yeah, and the nice thing with live interviews is that it is, you know, the time that you are spending in the interview is matched one for one, more or less, with the company, and, and so a company has an incentive to not give out a bunch of interviews if they're not serious about you. And when you have take home exercises, these other things, their incentive is to give give out a bunch of interviews if they're not serious about you. And when you have take-home exercises, these other things, their incentive is to give them out. And sometimes they may even think they are doing a great service by being so open-minded about who they'll consider.
Speaker 2:But you know, I remember when I was graduating from college, I had a take-home exercise. I can't remember what it was, I can't remember what company it was. It was some small company and it was I can't remember what company was with some small company and it was to build a tetris game and I remember I spent so much time in it and like and I, you know, I don't I think I did a great job in it and I sent this in and didn't get an interview from that and I, looking back, I still am like I don't get it, like. I'm pretty sure I did at least a very solid job on it. I had a great prior experience. What happened here, and I think this is a experience a lot of people have with the take-home exercises and would have if it were widespread. I did this work and I don't know if the company is going to consider me seriously even after all of this and now with AI.
Speaker 1:Frankly, I don't know how you can do that anymore yeah, oh, wow, yeah, and that is a whole can of worms that I'm sure has had a big impact on your work. Um, and I think there's kind of an analogy here, like I've, you know, I've been out of school for a super long time at this point, but I hear about students using AI to cheat on tests and stuff like that, and job candidates using AI to cheat in the job interview process. Using AI then like that's not a good test anymore Because that work, you know in general, like both in the interview and in the job, that stuff that can be done by AI now, and so don't check that thing, check something else. That's like uniquely human.
Speaker 2:Yeah, I mean, I think that's an. It's an interesting point and I would go back to this idea of like well, what are we trying to measure here with our interviews? When we ask somebody to write code to select a random node with equal probability from a binary search tree, are we measuring their ability to do that, or is that a proxy for this other, deeper skill? And so I'd argue, with coding interviews, what they're supposed to be is proxies for this deeper intelligence, and so certainly, if somebody is using AI to do that thing, their work is not informing you about this skill that they didn't actually have to use. Is the process itself. Is that style of interview question now irrelevant?
Speaker 2:I wouldn't go that far. I'd say we have to figure out how do we make sure people aren't using AI? How do we, you know, how do we make AI not a tool that can be used to kind of crack the process? Or alternatively, like is there something we should be measuring with AI? Is there a unique skill about somebody's ability to use AI effectively? I don't know that there really is a unique skill there at this point in time.
Speaker 1:Yeah, interesting, I didn't think about it from that angle, so I therefore changed my mind about that. Yeah, I think I was at first. I was thinking about like grading essays and stuff like that, and it's like OK, if you have to like put your essays through a test to see if they were written by AI, like maybe you should change the criteria of your assignment and stuff like that. But you make a really good point about something being a proxy for something else, and if that's the case, then yeah, what we need is just to make sure people aren't using AI to game it.
Speaker 2:Yeah, and I think in the short term it's things are changing too fast right now and in the short term, I think the easiest thing for companies, for teachers et cetera to do is okay, we need to make sure people aren't using AI. And maybe in the law brand, we can think okay, like now, with AI, what are the skills? Does it matter if a student can write an essay? What are the skills we're really trying to measure here? But that's, I think, a longer-term thing and I don't know the answers. I certainly don't know the answers in terms of education, but I think that's a longer-term question. That is not the question that companies should be dealing with right now. The question companies should be dealing with right now is like, like, hey, let's make some really quick changes to make sure that we don't have unqualified people just passing through the process using ai yeah, um, zooming out a little bit to the big picture, um, the world has changed a lot in the last five years, 2020 to 2025.
Speaker 1:Yeah, um, the economy has changed a lot, technology has changed a lot, um, and there's some certain interesting phenomena that I've I've noticed. Um, you know, obviously 2020 was the start of the pandemic um, and it drove so many companies to go remote, um, and a kind of side effect of that is this big like flattening Um. Previously there was a big geographical constraint, um, like, if you wanted to work for um I don't know some, some company in Silicon Valley, you had to physically be there, um, but now a lot of those same companies hiring worldwide, or at least in the US, and so their, their candidate pool got multiplied by a bazillion, and so now all the candidates are competing with so many more people than they were competing with before. So that's one thing. And then another thing. I don't know where this factors in, but, like, tons of people have like moved. They've like moved out of the city because it's like okay, I don't need to be in the city to work anymore, now I can move to to somewhere else, um, and AI has made it so that the employers can. They're now getting spammed with all these applications, and it's both. You know, there's that geographical flattening, that constraint gets taken away, that multiplies the applications, and now there's AI spam in the applications, the applications. And now there's ai spam in the applications.
Speaker 1:And so when I was on my job hunt some months ago, it's like, well, I might as well just give up on applying the old-fashioned way like I applied to some jobs. But again, it's like buying a lottery ticket, and it's like I used to be able to buy a one dollar lottery ticket for a chance of winning a million dollars. Now it costs $100 for the same chance of winning a million dollars. It's like I'm not going to, I can't. You know that doesn't make sense to pay that higher price. And so I actually went back to the old fashioned way to just talking one-on-one with other people and being like, hey, who should I talk to about a job and stuff like that. Anyway, how have these changes in society and technology and all that affected your work and all that?
Speaker 2:Yeah. So you know we. I agree that with AI, we're getting, you know, automated ways of people applying to applying to jobs. So companies are overrun One, there's fewer jobs and it's just a messy world. We have fewer job opportunities right now. A lot of financial. The market's not in a great position. The amount of need for software engineers is, at least temporarily probably permanently, but at least temporarily dropping it's.
Speaker 2:At the same time, it is so much easier for a candidate to spam their resume to hundreds of companies, which is the result of that is that that becomes irrelevant. You know, online job applications were never a good way of going and now it's becoming even worse. And so what it means is you know the way that you apply is going to be, is going to getting. It's relying really heavily on personal connections, and you know. So we in my most recent book, beyond Cracking the Code in an Interview, we talk a ton about this. It's just like, look fine, you know here's, yeah, you can go apply online and we'll give you some resume tips. But like, let's just be honest and acknowledge that it's going to be networking, that's how you're going to get your next job. And so we give a whole bunch of advice about how to come up with lists of you know, how to make these connections in real ways that are really really practical about. Like, here are email templates you can use with talking to recruiters. So it's going to be a lot about that and so, yeah, so a lot of the applying is going to be, you know, fall back to personal intros and then you know, I suspect we're going to see it's sort of unfortunate timing that the pandemic and the not quite birth but I'm going to simplify it saying the birth of ai obviously not the actual birth, but the kind of mainstream, the power, the really really powerful stuff we're seeing nowadays that that sort of coincided with the pandemic because we have one forcing function that kind of came first to push all of our interviews to be remote and then this other forcing function that is actually really telling us right now we shouldn't be doing remote interviews anymore and it sucks.
Speaker 2:But, like if I were a company, I'd be saying you know we can do some initial screening interviews remote and people might cheat and you know that's where. But we need to be honest that right now we need to go back to doing in-person interviews and I don't like it because I think that's expensive and that's frustrating for everybody. But like that's that's kind of our answer right now. Or um, or we have testing centers. Uh, that's that's. Another option is um, and I wouldn't be shocked if that happens and becomes sort of the solution is you don't do your interview from home, you go to a testing center to do your remote interview and you see that. You know, if you look at education, you'll see that for homeschooling, from homeschools and other things, they can do some of the standardized testing If they go to a testing center they don't do it with their you know mom and dad at home, and that's another possibility that we could. That you know, wouldn't? I'm not sure it'd be a bad thing to have to move to that model either.
Speaker 1:Yeah, yet another thing for people to be grumpy about. If that happens Interesting?
Speaker 1:Yeah, um, uh, it's. It's interesting to hear you say that, um, cause it sounds like your thinking and observations, or whatever, are kind of consistent with mine where, like, okay, the the traditional model of I say traditional, but you apply online and then you go through the job interview process and stuff like that it's kind of spammed out at this point. Yeah, you know the demand has decreased and the supply has increased, and so let's see the demand decreased, the supply increased yeah, so the value of a candidate has gone way down, the supply increased yeah, so the value of a candidate has gone way down. You have this stack of a thousand applicants and it's like, how are you going to get through?
Speaker 2:that um, which, by the way, creates another sort of forcing function there, which is that companies don't have to care as much about their candidate experience, like there was a time in which they had to really, really, really prioritize it, the, you know, companies have the power right now, and so that's going to mean that their candidate experience is not going to be as critical.
Speaker 1:Yeah, yeah, I think developers are used to the industry being a seller's market and now it's a buyer's market and that's going to change a lot of things yeah it's a bit of a rude awakening um but.
Speaker 1:But that's reality, um and. And speaking of reality like um I. I feel like a lot of people try to live in the should be world instead of the is world, um and, and complain about the way things should be. And it's complain about the way things should be and it's like well, the way things should be is not the way things are or are going to be anytime soon. So the way to win is to learn how things actually are, whether you like it or not, and find out what to do. And you know, I didn't necessarily like that. The answer was that I can't really apply to jobs online anymore and expect to get a response. I just have to have a million personal networking calls. But that's what I did and ultimately that worked. That's how I ended up getting my job. It's funny I applied somewhere, got rejected, and then I went and visited somebody in person in San Francisco and got a referral in the same place that rejected me. That's where I work now.
Speaker 2:That's awesome.
Speaker 1:Yeah, and so that's kind of an illustration of the old way doesn't work anymore and you have to do the new way, which is ironically, kind of the very old way.
Speaker 2:Yeah, an interesting world we're moving to very quickly.
Speaker 1:Yeah. So what is a person to do? Because what I definitely don't want to do is there's a couple things. I would hate for people to have the mentality of well, I'll just wait it out, I'll wait until things go back to normal. Because I think we live in a world now where, like the genie's out of the bottle and like technology is moving so fast, like once things change, like they're never going to go. The world's never going to go back to the way it was in 2000 or something like that. It's different and it keeps getting different. So we so we can't just wait it out. What should people do to like prepare themselves for the future?
Speaker 2:I mean that's a good question. I definitely hear people saying you know what, I'm not gonna pursue software engineering because of the job market, because of the trends, and I think that some extent that kind of makes sense. We probably do have more software engineers than we need out there. That said, it's not just software engineers. So I kind of look at these people. I'm like where are you running to? Because this is happening kind of across the board. So I think it's what and I'm by no means an expert here but I think what we're looking at is software engineering moving to more specialized roles, more need, whereas you know there is a for a very, very, very long time there was no need for know there's, there's just there's so much need for even entry-level talent that there were a lot of opportunities.
Speaker 2:Um, and and even we're going to grad school for computer science didn't really make sense because it actually wasn't, you know, wasn't actually good roi. Um, I think we're gonna be moving to a world where it's your, these people. It's gonna rely more on people who have specialties, maybe very low level, maybe, uh, maybe you know, of course, specialties in ai, specialties, applying this to very civic industries. Um, I suspect we're going to move more towards that and a lot more of the um, the work that's currently entry level, is going to be not not 100 automated per se, but be so much more efficient. To do that we just don't need as many yeah, it's so interesting.
Speaker 1:Um, and you also said, uh, that you know you feel like the? Um, the demand for programmers has gone down. Do you have any insight into why this is?
Speaker 2:um, you know, I think it's um, I think there's a mix of things. You know. I think the you know the job mark in general just isn't great. It's not just engineering, it's kind of across the board. Right economy's not amazing right now and that's just kind of how it is, and that's a piece of it, and I think you know. Then, of course, there's the other piece of you can do the simple stuff so much faster that you just don't need as many engineers to to do it, to get you know, to get each job done, um. And but I think, even more than that, I think it's companies are looking to the future and they don't want to overhire and they're like it's not just that everything's automated right now, it's going to get more and more automated, um. And so it's companies kind of looking, looking at their current, looking at the current economic situation, looking at the future and saying you know what?
Speaker 1:like we don't need to have this many people. Yeah, and something interesting about software development is that it's fairly distant from the ultimate value that gets created, and so if you have a team of engineers, you can't really know whether you need 10 people or 20 people or whatever, and so maybe it's the case that you know previously, I have a team of 20 developers and I think that's probably about how many developers I need. Then, out of economic necessity or whatever, I cut it down to 10 and I realized, oh, I just let go half the team. But like, everything is still going fine, the site's not going down. And I wonder how much of an effect there was from, like you know, Elon Musk buying Twitter and then letting go a huge portion of the staff. And then you know there were prophecies of the site going down forever and stuff like that, and clearly that didn't happen. And I wonder how many other companies were like, oh, okay, well, like maybe we can do that too.
Speaker 1:And the AI thing I've mentioned before on the podcast that it doesn't even have to be real to have an effect. It can just be a placebo. You know if, if managers believe that AI makes their developers more efficient and they hold off on hiring because of that. It doesn't matter if they're actually right. Just the fact that they believe that AI makes it so they don't need more engineers will make it so that they don't hire more engineers, so I imagine that may well be a factor too.
Speaker 2:Yeah, I agree with that. I'm not. I suspect the impact we're seeing right now with AI is more a projection than the reality, and it's not that the reality isn't very much true, but I think it's more people looking to the. It's more heavily between the two, it's people more. It's more heavily weighted towards people looking to the future and saying I'm not going to need this many people down the road.
Speaker 2:And, you know, in a very near future down the road and with the economy not being great, it's like, well, why, you know, why do this? Now? You know there's a it's all very pessimistic and you know it does genuinely worry me, not just software engineering, but just the sort of general landscape of jobs. I have a tiny, tiny ray of hope that, you know, maybe it'll be like people saying that libraries will kill the book industry and it's like, well, actually it turns out it just, you know, gives birth to more stuff. Turns out it just, you know, gives birth to more stuff. Um, that maybe, maybe there'll be some chance that ai will give birth to so many more jobs and we just haven't quite fully seen that translated um yeah, yeah, it's going to be fascinating to be optimistic, yeah it's going to be fascinating to see what happens, because all I know is that there's absolutely no way I or anybody can predict what's going to happen.
Speaker 1:There's just too many factors involved and we don't know what developments are going to happen tomorrow and stuff like that. Um, I'm thinking about you know myself for the next 10, 20, 30 years. Um, what's the world going to be like and how can I position myself so that, no matter which way things go, I'm going to be okay? Um, because you know, we we kind of alluded to this. Um, it's not just programming, like I've heard about, just white collar jobs all across the board.
Speaker 1:Everybody's having a hard time, and I mentioned that I was on a job search recently. It was really tough for me and I'm, like you know, a very minor celebrity in my circles, and when I talked to my peers they were like really surprised that I was having a hard time. And I thought to myself, like, if I'm having this hard of a time with all my advantages, like what about people who are just you know, they don't have a mildly famous podcast and stuff like that? Yeah, and so what to do? I'm not sure.
Speaker 1:But one thing that I do know for sure is the personal connections thing. That's never not going to be a good idea, and so I make sure to keep my network warm and I have a list of all the people I know and I make sure to periodically reach out to people I know. I kind of cycle through the list and have calls with people and stuff like that. I do something highly unusual I have a snail mail newsletter that I send out every month and so people are like continually reminded of my existence and I get a lot of like calls and texts from people I didn't used to, because now they get my newsletter and they think of me and stuff like that. Now they get my newsletter and they think of me and stuff like that.
Speaker 1:And I'm sure that's something that you teach the people, you work with is keep your network warm, use that and stuff like that.
Speaker 2:Although, even that, I look at that and I think, okay, what is AI going to do to that? At what point do we start having some AI tool? I mean, someone can I'm sure someone's already whipped this up but that goes and does you know, a periodic check-in with you know, this group of people, and and then starts taking out the the meeting of checking in with people electronically, and then it does become you know, do we move back into? You know you're writing letters and it's a you know you're writing letters, and it's an interesting thing to think about is what are the areas that AI won't come in and automate to the point where you know, like you know, online job applications, to the point where it doesn't really have a meaning.
Speaker 1:Yeah, yeah, and that's you know, I take things back to meet space. Like I went to San Francisco. Like I mentioned, I went and I spoke at the San Francisco Ruby meetup and tried to meet with as many people as I could when I was there. This podcast is called the Code with Jason podcast and I did something I called the Code with Jason world tour and it's just kind of an ongoing thing where I I, when I happen to visit a town, I'll like meet with as many people as I can there, because there's nothing to replace that in-person interaction.
Speaker 1:And we live in a world now where, like, so much of our interaction only happens online and this is only tangentially related, but but it's definitely not not related. There's this social phenomenon which you know I'm 41, married with kids, so I'm like out of this world now but, like so many younger people, are like not dating People aren't having kids, not dating People aren't having kids, and so there's all these people who are like in their 30s, just single, living alone, working remotely, living in the outskirts of some city or something like that, having like no social interaction, and to me it's like okay.
Speaker 2:That makes the when we do have in-person interactions it's even more valuable than it was 10 or 20 years ago yeah, um, I mean, I definitely heard things and we're getting really off topic now, but you know about the rates of depression and this and that and just the lack of lack of connection, and I um saw one friend making a prediction that in the next 10 years, people will start having friends who are believing that we have friends who are AI, and at first it sounds kind of crazy, maybe, and people start relying on AI for social connection, which is really scary if that actually ends up happening.
Speaker 1:Yeah, yeah, I don't even know what to think about that. Ok, coming back on topic, I wonder if you get this question very much. You know, I've been aware of you for some years. At this point I don't know when did you first um start writing on this topic and and all that stuff uh, it so depends on how you measure it.
Speaker 2:Um, I would say I first kind of became, you know, entered the space sort of, uh, summer, between 2005, 2009, ish, um, but I'd say, you know, crack the coding of. But I'd say, you know, crack the Encoding of you. I'd say really came out in like 2011 to 2013-ish.
Speaker 1:Okay, so not a small amount of time Over 10 years, any way you slice it. I wonder if people ever ask you like don't you ever get tired of this topic, and whether people ask you that or not. Um, I'm curious like how does this topic hold your interest over the years?
Speaker 2:oh, but now it's actually changing up. Um, uh, you know, at some extent, sure, um, I think anybody who is focused on one thing, you, you know it's. There is some exhaustion there. With that said, like I think, there, what I do has changed over time. So, you know, these days I don't spend much time doing like one-on-one prep with a candidate and I spend more time working strategically with companies on hiring process, and so, you know, yes, I've, you know, stayed in the same industry for quite a few years now, but, like what, the civic aspects of what I'm doing has changed over time.
Speaker 1:Okay, that reminds me of a totally different thing. I wanted to ask you and I know we only have a few minutes left um, but something that just frustrates me to no end is like every company ever is. Like we want to hire the best people, um, but like that's, you know, a mathematical impossibility. Not everybody can hire the best people because, uh, that just doesn't, that's not, doesn't work, and people say this, but then they don't actually do anything to make themselves attractive to the best people and they advertise superficialities.
Speaker 1:It used to be a foosball table and kegerator and stuff like that back in person, and now it's things like unlimited PTO and stuff like that in in person, and now it's things like, uh, unlimited pto and stuff like that, but it's like anybody can offer those things. Those aren't unique at all, and so if everybody's offering those things, it doesn't set you apart, um, and so that's something that I've tried, with not much success to. To preach to people is like if you want to attract good people, you have to like I know it's like if a guy wants to get a girlfriend, like, uh, work out some and like, lose some weight and dress nice and stuff like that, um, you have to do your end of the deal in order to get something? Um, have you seen that phenomenon where people want good employees but they're not putting in the work to attract those employees?
Speaker 2:Yeah, you know, I think what makes this space complex is that you have to have engineers and recruiters work together and the reality is they have such different skill sets, such different mindsets, that, and different passions, frankly. So you know, you have recruiters who are passionate about recruiting but they don't really understand the engineering side well enough to make the process work really well just by themselves. And you have engineers who, for the most part, aren't particularly passionate about recruiting, and so it makes it really hard for companies to figure out how to do this whole thing right. And then, and at the end of the day, what attracts people to the companies is this is pay and reputation and opportunities.
Speaker 2:So you know your foosball table, your, you know this and that, like people want to go to Google because it's Google, because of the reputation, and the people who don't want to go to Google it's because it's Google and this reputation and it's the things that are really driving, driving people to come to a company and to stay at a company are not, are not things that we can just do overnight. It's, you know, we can change our pay, but there's financial, you know limitations at some point of that and we can, you know. But then it's like growing the prestige of the company, the culture of the company. That's something that is, yes, companies obviously decide, but it's not something you can jump in and say our culture is this now. And so you know the best things that companies can do in the sort of short term in terms of attracting the right people to the extent companies, you know, care that much about it and again, you know the market's on the side of the companies now but is the best things people can do in the short term a company can do in terms of the short term of improving sort of their attractability, is really scrutinizing not just their process but their interviewers as well?
Speaker 2:I think a lot of companies have a mindset of well, you know, we're all in this together. Everybody needs to be interviewing, everybody needs to be part of the hiring process. It's like nope, you know what, some people kind of suck at this, some people kind of suck at interviewing, and maybe you don't need to have every single engineer as part of the interview process. Maybe you don't even need to have every single manager as part of the process, or maybe you can really scrutinize and say you know what? This manager is not actually great at hiring and we're going to limit their, their role, because people candidates are judging companies by the people who interview them, which is problematic. I think. I don't think it's not the best measure, but companies should be aware that who you put, who you put forth as interviewers, is going to make a big difference in in whether or not a candidate wants to join you.
Speaker 1:Join you, yeah, I'll share really quick that I was part of an interview once where we were interviewing candidates and one of the people from the company where I worked was just really like rude and off-putting to the candidate. And I'm like, bro, like these people are evaluating us too.
Speaker 2:It's not just a one-way thing yeah, there's uh, when I do tradings I will not infrequently take notes for companies that like add, I would pull this, this and this person from from the interview process because you just look at the way they're interacting with me and I'm like I don't think that they will put they may be really great people deep down, but at the end of the day in the interview process it is better to have somebody who is kind of a jerk deep down but comes off friendly, you know, than than somebody who comes off unfriendly but it's a really deep, good person deep down, like it's. It's that superficial, the superficial personality that people are going to judge.
Speaker 1:Yeah, interesting. Um, well, I appreciate about you that you're not somebody who's you're not afraid to tell things like they are, even if the reality is not the most pleasant thing in the world, because, again, reality is the thing that we have to work with and you can't pretend that, for example, everybody is equally good at interviewing, because that's just not the way it works. Um, okay, wow, well, we, we covered a lot of stuff and there's a lot that I that I still would love to to dive into, but but we're out of time. Um, do you want to tell people about your books and where they can find you online and all that stuff?
Speaker 2:yeah, um, I'm findable on well most of social networks, usually under the name just most of the time it's just the name gail and just came out with a, you know, crack the coding interview.
Speaker 2:Of course, it's been around for quite a while and it's been called sort of the Bible of software engineering interviews and just came out with a new one Beyond Cracking the Coding Interview, which is approaches from a different lens. It has interview questions in it, but it's less focused on questions and more focused on you know, let's teach you some of the concepts, framework strategies for doing well in coding interviews, with a huge amount of topic content on just getting a job, getting noticed by companies as well. You know, how do you actually get somebody to give you an interview when you know the state of the job market is what it is? So we have a lot of stuff on that as well. Um, and you can. If you go to amazon, um and you buy it there or in any other service, you can actually forward us your email receipt and we will give you a sneak peek of um the some a few chapters as well oh, and do I remember correctly that you own the domain gailcom?
Speaker 1:I?
Speaker 2:do yes.
Speaker 1:That's pretty impressive.
Speaker 2:No clever strategy here. Just bought it for not a small but not a ludicrous amount of money either, maybe 15 years ago.
Speaker 1:Yeah, well, when I saw that I was like wow, that's impressive. But I really enjoyed this conversation and thanks so much for coming on the show.
Speaker 2:All right. Thank you so much for having me. Thank you.