 This is April April and I are gonna yeah fireside barstool barstool chat here and try not to like I will try not to swing back and forth I think the fly has left me alone the first five minutes I thought I was going crazy during Kerry's talk buzzing around my head but here we are so couple weeks ago a two three weeks ago I was on Twitter as I as I am and April had sparked some conversation and we had some good talk like all Twitter conversations that then like fractured into like 40 different sub-conversations and I was like hey let's get together and like talk about some of these things in person and April was able to join us today can you give like quick background on like who you are what you do what you know about sure yeah so I will say just to be clear from the start I'm not an HR and I'm not a recruiter I am an engineer and I have been for the past 10 years professionally and 15 years total and been an engineering manager and whatnot worked at all kinds of startups up in Silicon Valley recently relocated to San Diego but I now mostly doing Ruby on Rails type development but I've done all kinds really I'm more of a generalist and most recently I started compassionate coding which is my company and my goal is to bring emotional intelligence to the software development community across the board so this includes hiring practices but also just how we communicate on teams and really starting to value the human element of software development in the way that it should be valid I would guess that pretty often when you like start a conversation with a team you walk into an office and then people are like oh here's the lady that's gonna like tell us to be nice to each other is that pretty much how it goes no because usually I do like the background ahead of time so I get buy-in from leadership and we talk about how important this stuff is and I will say a misconception is that compassion is just the same as being nice and I actually don't even I'm not sure I would consider myself a nice person I'm not always very polite I've been called abrasive but I still consider myself compassionate why because compassion for me really is an optimization problem the goal is to minimize suffering so compassion means being able to recognize suffering and others and does not actively desiring to minimize that suffering so for me it's a very logical a logical thing Sara and I were chatting earlier and I was saying to her like I've been starting to wonder if like software is actually very easy in the idea that like we have software and the people that build the software are like inextricably linked but the software part might be easy it's just that like people are really complicated is that was that like your experience when you're you know doing full-time dev like how do you go from being kind of like individual contributor writing code to now like working with teams and so forth yeah I think that's that's spot on I think a lot of the problems that I would see on teams would be people problems communication issues like we want to introduce a new tool but so-and-so won't get on board right that's a human problem you may be talking about technology but convincing somebody to adopt a new tool that's totally a human problem there I was reading the study from the application developer alliance on why software projects fail and the top reason was changing or poorly documented requirements and not you know and then like 17% said immature dev tools and yet a lot of our engineering energy is focused on let's you know build a new JavaScript framework or whatever it's like that's not necessarily where the failure is happening it's more about communicating both among engineers and with the product people with the design people with the customer an old friend in the industry who is like a consulting team lead and organizational lead would always say I've never seen a project fail for technical reasons you know and I think when you look at the hoarding analogy that Sarah was painfully bringing us through like whatever just I don't know I imagine some of you were like me just looking at those photos I was like full of anxiety and it's not because of the shape of the house that it like ends up in that situation right when I worry sometimes with like people teams and people problems software problems are generally easy to fix like you can measure them you can set like a goal you can do some work and then you can prove that you met the goal or you didn't when somebody reaches out to you it's unlikely it reminds me a little bit of like therapy like we should do it when we're slightly off track but it's probably like oh we have people leaving the team and our softwares garbage and like help is that is it usually like on everything's on fire and you're coming in to like temperate yeah it kind of is which is why I don't always openly talk about the companies I work with because sometimes they're in a state where it's a little bit embarrassing like they didn't they wouldn't want to you know admit that publicly that's not always the case sometimes it is just you know an isolated incident and they want help you know kind of dealing with it but the therapy comparison is actually pretty valid because that's sometimes that's it feels like what I'm doing it's kind of group therapy except without a license so I would never call it that but but you know just helping people talk and communicate and just really build empathy because that's you're right it's hard to have a metric where what's the empathy level on this team right but you can look for certain signifiers of it like retention rate is one how many times does somebody have a blow up on slack or something how many times you know will somebody just throw a tantrum which happens a surprising amount among adult software engineers more so than in the kids I teach to code to be honest but yeah so like you can look for these things to see like okay if we do this and I also incorporate surveys so and that's again not a perfect measurement but it's better than nothing where you measure attitudes about do people feel psychologically safe at work do they feel comfortable sharing their ideas they feel supported and before and after and kind of see how that evolves over time I thought it was funny yesterday you mentioned like a lot of engagements beginning with a slack log of like check out this shit it's true those of me screenshots and I'll be just like oh my gosh but but it's also funny because they think it's like the worst they think that they're the worst but they're never the worst there's always somebody that you know a team that's in like a worse position and it's so common and it's like it's not it doesn't mean that your your whole company is broken or your whole team is broken it just means you know it's like you know the agile retrospective we're all doing the best we can given the circumstances and I truly believe that in life in general we're doing the best we can given the circumstances and when you hire people you know speaking hiring when you hire people without kind of giving much weight to their ability to communicate to their ability to disagree in a productive way that's what leads to these problems and it's okay because we can help them grow those skills but you have to recognize that your hiring practices have led you to this team that can't get along I think there's nothing that builds your confidence more as a developer and perhaps as a person than to go visit other companies and when I used to do technical training I would go into companies and I had mostly worked by myself and like didn't consider myself super expert software developer and then went in and was like wow you all like really don't know what you're doing now I feel really good about myself it do you like see that phenomenon when you walk in the door is it like does the typical team like look functional and need some tune up or is it like we need to tear it down and like start over no I mean it's kind of like with Cody you know it's rarely the rarely the solution is tear it down you know you don't really necessarily want to clean house completely or something but incremental improvement I think is important but I think too it's um it's more like people when I come in that people they feel very self conscious about these things like yeah like before they show me the log it'll be like yeah you know just to warn you this is a little bit you know and I'm just like I've seen it I've seen it all before like you know so I try to be reassuring because it really does happen to everyone and you know and I mean that not just team-wise but like human-wise like as much as I've tried to learn self-awareness and self-management of my emotions as part of emotional intelligence I'll still have moments where I flip out and just you know lose lose lose it so I think it's something where growth mindset you know like the agile retrospective get better over time that's the goal. Hofton do you have the conversation where it's like my team is awesome and really cool except there's one dude he's a real asshole and pretty much everything would be cool and rainbows and we'd be cranking releases except for that guy. So the funny thing about that is I always get along best with the assholes on the team because they're usually the ones who have like the most potential to grow because a lot of times you really break down why somebody behaves like in this destructive way on a team it's that they're really passionate about something something really matters to them probably a lot of things like maybe they really care about you know certain elements of code quality and it's so important to them to the exclusion of the emotions of the people on their team so they would happily have a tantrum blow up at you because you violate this value that is so important to them so what I try to do is help them unpack that like why is this person such a problem on the team and usually it's just because they're really passionate so once you get them to understand that they're better able to communicate in an empathetic way and say here's what I care about you know this is why I'm so upset and then the other person's like oh that's why this always triggers that person and you understand these emotional triggers and it really you know really helps with communication that said if you have somebody who's like openly racist or sexist on the team that kind of asshole there's very little you can do to fix that if it's like extreme and then you should just get rid of them of course bounce how do other than the last case how do I know if I am that person the fact that you're asking is a good sign so you know I'm asking on their behalf there's a little bit of nervousness like wait I thought my team kind of are a little bit jerks maybe it's me yeah well I would say we all have a little bit in us we all have a little bit of jerk in us you know like I said I get the feedback I'm abrasive which one women get more than men but at the same time I am kind of abrasive and so it's a little bit valid and sometimes that comes across as being a jerk like you know I would sometimes I used to be terrible at code reviews because I would just be really really harsh really judgmental really mean really you know go for the go for the ego there and insult people and that's not what it was a look like to be like really mean in a code review is it like this code is bad and you're also a bad person that's the implication yeah like how could you do this and I think it's just like an absence of understanding like not giving the benefit of the doubt kind of like being really condescending that was kind of like my go-to way of being before I got into this compassion and emotional intelligence so you're like a recovered bad person yes that is why and like people don't get that they're like oh you must just be a really nice person no talk to my previous co-workers from early in my career they would not agree some of these would be great testimonials for the website or it's like let me tell you April knows about being a jerk on the team it's true and that's why I have hope though because if I can change like anybody can what are like when when you go into a situation and you're kind of like just trying to get the lay of the land what are the first things you're looking for to figure out like does this team have hope or is it hopeless like what are the signs of things that are working right and going wrong well I never think anyone's hopeless I think there's always hope to be did say the racist they need to go they need to be removed from the team but as human beings I think they can be rehabilitated but that's that's true but as a team I think what I look for I really just try to understand what the problems are because even when it's pitch to me as a technical problem I can look beneath that and see why it's really a people problem like you know people are complaining about our video conferencing software and it's like well that's because so and so is like really attached to this one video conferencing software for some reason this is a real example and so they feel it is a personal threat that someone's trying to get everyone to use Zoom instead and it's like you know it's clearly more of a communication and like emotional issue and so I look for the problems on the team and then kind of diagnose those like a little go a little deeper and like where the people where's the people problem there and then kind of get an understanding of how communication happens and it's always a bad sign when it's one of the teams where you know people do just go off and code on their own for like days at a time and don't talk to anyone on the team like that's that makes it a little bit trickier but I've done work too on remote teams and usually it's best when they come together like once a year for an all hands or something like that and then I can come when they're everyone's on site together because that you know face to face interaction is so important that's something that we cover in the workshops and emotional intelligence is like part of the reason blow up to happen on Slack and on Twitter and you know in email and in code reviews for sure is that a lot of communication happens via tone and body language and you get none of that when you're dealing with text communication so if it's I always tell people it's starting to get a little bit emotional either make it face to face make a phone call like do something human because you're just going to get yourself deeper and deeper into this whole of just like aggression and hostility through text. I'm not familiar with that the way it was phrased to me once was to think about like the bandwidth of a conversation and that the more important or the more valuable the topic the wider you need the bandwidth right and it's like if it's not that important then like a text is okay or a quick Slack message or whatever and then like if it's slightly more important getting into an email and if it's slightly more important like a video chat and if it's like really fucking critical like get on an airplane and go like talk with the person and get that like full bandwidth interaction. Yeah the interesting thing there is sometimes what seems like a small issue has underneath it like you know if you're just debating like a video conferencing tool which one should we use but like beneath it is like all this cultural issues and like you know politics and all this stuff so sometimes it's hard to tell like that it's actually important and then you quickly find that out and then it's like okay now we need to switch to the next bandwidth thing I guess because it's actually more important. So then as you try and make like incremental improvement to the team you have and then teams are always changing right I think all of us have the experience of being in software teams and it's not impossible but pretty rare that you have the same group of folks together for multiple years much less like three four five years kind of thing as a team says like hey we know we have some challenges maybe we want to like revise how we're doing hiring what are what are you seeing like the best teams do in hiring and what are the mistakes that people are subconsciously making or not paying attention to and like shooting themselves in the foot. Yeah so I think the best teams have some kind of rubric in place it's not what's a rubric? What's a rubric? So a rubric is kind of like a form you can picture like a form with different fields in it I don't know why I'm describing implementation but this is what it looks like to me and you rate people in certain categories so you have a it's a standardized way of measuring performance and what if we have a rubric that's like yeah no that's I don't know if that counts as a rubric that's not a rubric that's shitty yeah yeah no but a lot of teams do that but the key is that you're striving for it to be objective but knowing that it's never gonna be objective because and here's something that you know everyone just needs to make peace with we are all biased I'm biased you're biased we're all biased I have a bias for people who talk fast because I talk fast I know that and so I actively you know in favor of or you don't want to do battle with them. No I like it I talk fast and so if I meet someone who talks fast I think I need more coffee I got sorry no no no you're good you're good so you know we all have these biases like we psychologically we like people who are like us this is just true this is why Kara Swisher points out that tech is not a meritocracy right now but more of a meritocracy if you will because people you know that's why you know a lot of rooms like this are filled with people who look very similar to each other and part of that comes down to not recognizing our own biases because we don't want to admit that we're biased because we think that makes us a bad person but the thing is it doesn't everyone's biased you just have to be aware of it and then these tools like rubric rubrics and whatnot are to try to counteract the bias knowing that you'll never get rid of the bias. What kinds of things do people put on a good rubric is it like you know I feel like people's nightmare scenario would be like oh we went from just deciding who was cool and not cool to now we have a 86 question form and like I just click yes yes yes yes yes yes yes. Yeah those are pretty bad but yeah this whole cool or not thing is pretty common you know you might have heard of like what I have a beer with this person right which sounds like yeah that seems reasonable like you know it's like actually that's terrible because you know you're not hiring somebody to have a beer with them that that may be part of what happens but you're hiring somebody who will balance out the team and you know create productive software and create software productively and that kind of thing. But again, yeah, you don't want to make it so. Engineers already hate doing interviews for the most part because, in general, because even though, as Sarah pointed out, the people we work with are so important to our happiness, for some reason we'd rather just deal with the code. So I know every team I've been on, people complain, oh, I have two interviews to do today, I have three interviews to do today. And so that's something that needs to change. We have to recognize how important it is when we are changing our teams. But I think, you know, Medium has a blog post about this, their engineering team, what they do. Did you just say Medium has a blog post? Medium has a Medium post? They do. Believe it or not, at least one. And it's about their hiring process. And I don't agree with everything in it, but that's just because I rarely agree with everything in anything. But they do talk about really good stuff, like looking for introspection, somebody's ability to analyze their own thoughts, looking for empathy. And what I like about it is they give clear examples for people doing interviews to look for of what indicates empathy, you know, when they talk about their past co-workers, or the way that they try to understand the interviewer, and they show like clear signals of what you can look for. And I think that that's really great because engineers haven't been trained like with psychology background for the most part. And yet we're having them do this very complex social task of building teams to work together, which is, you know, non-trivial. And so that's why it's so bad. I'm of the opinion that tech hiring is fundamentally broken. And so that's why, you know, I'm always happy to talk about it because I think a lot needs to change. And a lot of it is valuing these communication skills that are right now pretty neglected. A friend of mine who's CTO of a company, he shared one of his, like, Zinger interview questions, which is, if I ask people at your old job to tell me something, to tell me about you, what's something they would say that's not true. And then his hypothesis is that whatever they say it is true, they just haven't accepted it yet. You know, it is like, well, I've tried it on a couple of people and I'm like, yeah, I think it's plausible. It's difficult. As you said, like a lot of interviewers, and I interact with a lot of people who are job hunting, see the other side of a lot of interviews. It's exceptionally haphazard. And often it's like, oh, I forgot to have this interview in, like, a minute. Hey, you're a person, like, tell me about yourself. And they don't know anything. There's no prep. There's no practice. There's no rubric, whatever. It's interesting to think about, I think often for the engineer, the interview feels like a significant inconvenience, right? Like, does not help me check off a story for today. But there's probably no more high leverage work that a person can possibly do than to find a high quality, a good augmentation to the team, right? When you talk with teams, I think there's hesitation, discomfort around talking about culture fit. And does that mean that we're creating a mirror autocracy? Because culture fit can be used to mean identicalness, more or less. How do you agitate that conversation, push it towards the way? Because culture fit's not irrelevant, right? You have to be able to work together and get along in some ways. But how do you find the right middle path in there? Yeah, so that's a really good question. So the one alternative that I've heard is culture add. So instead of looking for culture fit, look for culture add. Look for gaps in your culture and how somebody can come in and augment your culture. And I think that's important, especially for increasing diversity, because we don't need people who all think exactly the same. But that said, you do need some kind of cohesion. You all have to, to a certain extent, share certain things in common. And so the way media actually talks about it is value alignment. So they have a clear set of values. And what they look for is indicators in the interview that the person's values are aligned, or at least that the person can get on board with the company's values. And I think values are so important. I think everybody should take time to really enumerate their values and allow those to drive their life. And so I think for companies, it's similar. Like, don't just have the poster on the wall that is just cheesy and nobody cares what it says, but really live it every day. Like, really believe that the values that you list out for yourself are that important that that's what you look for in the interview. And again, giving examples of how somebody would demonstrate these values in an interview. And a lot of times it is talking about their past work, which I think is a great way to do it. It's interesting talking to both hiring companies and interviewees after interviews and to see how there's often either misses or misperceptions on one side or the other. Something that always surprises me is when I talk to interviewer and if they say about the candidate, like, oh, I wasn't convinced they're passionate about programming or that they really care about programming. And the way they assess that was like, they asked the question, how do you like programming? And then the person was like, it's cool. And then they're like, X. Like, you didn't rant for 12 minutes about frameworks and languages and so forth. How do you work with folks on improving the kind of connection between what you're looking to figure out and what you ask and how you structure the processes? Yeah, and I think examples really works well with that. So I have at least somebody on the team, hopefully in a leadership position, who really understands how important interviewing is, who can help train people in this skill because it is a skill and you can learn it and you can get better. But in terms of passion for programming, I mean, I don't know if I'm passionate about programming. I'm passionate about helping people through software. I kind of hate programming. Yeah, right. I mean, I think it's a useful tool. And it can be fun sometimes. It feels like a game to me sometimes and I enjoy it. But I don't know if I'd say I'm passionate about it. I'm passionate about helping people. I'm passionate about the art of creation, things like that. So I think looking for passion in an interview is fine, but it shouldn't be about one specific thing. I'm passionate about JavaScript. I mean, that's fine, good for you. It's a nice hobby, a nice thing to be good at. But look for something deeper, I would say. Because when your team is struggling with something, what's going to motivate them is not how passionate they are about this framework or this language or technology in general, what's going to motivate them when things are really tough, when times are tough is some kind of higher purpose. And I don't mean like religious, I mean like serving people in some way. Such as the CEO. Not that kind of service. Yeah, so something like God, like CEO. Let's say that I'm a software developer, I'm not a team lead, I'm not in position to like re-architect or interviewing process, but like I know we can do better. What can I do from like the bottom up? How can I like manage up to improve some of these like practices around hiring, interviewing, functioning as a team? Yeah, so your power is somewhat limited. If you're in an environment that currently doesn't value hiring as much as it should and you are not in a position like with much leverage, then it's going to be difficult. So you should consider whether or not it's worth your time and maybe you should just quit the company and go somewhere better. But two, if you do want to stay for whatever reason, you don't want to be a job hopper, which I am and I don't think it's a horrible thing, but if you do want to stay at the company, then I think what you can do is you need to find somebody with that leverage. So you need to have conversations. You need to talk to the team lead, talk to the managers, try to find somebody high up in the organization. Most times if you're in an organization that does have some kind of hierarchy where there is a VP of engineering or CTO or whatever, they're usually pretty approachable. And if you feel like you're a lowly individual contributor, if you ping somebody for lunch, more often than not, they will take it, I find. And so tell them, present the problem and then present some of the solutions you have and then you're going to be seen as a change maker and it will probably help you advance through the ranks of the company as well. I always push people when you're trying to advocate, there's a perception that managers like to say no and the reality is like managers love to say yes and the more you can make it easy for them to say yes, the more likely the change you want is to happen. And so I think as that person, if you get the lunch, you get the coffee conversation and you say like, hey, I've been thinking about how we might, I did this interview and I felt like I was under a lot of pressure because I just gave a yes or no and I wanted to break it down a little bit in more detail and I took this rubric that I found from this place and customize it and like, do you think we can have a rubric like this and then they'll be like, yep, that's the rubric, done, let's go. And then also it's like, oh, by the way now, this lady is the boss of hiring developers and then you're like, no, it's not me, I don't know. Yeah, no, I've actually seen somebody who came in, she was actually a graduate of a boot camp and we hired her and she did a Google Doc survey of everybody and their impressions of interviewing. She presented the data to the VP and she's like, look, here's some of the complaints people have about her interviewing process and here are some of my suggestions for how we fix it and now I just heard from her and she's being converted to team lead. So I mean, you know, these things, and this is like within like a year or something of being hired out of a boot camp. So I think they can, it's definitely good growth opportunity for you to start caring about these things. There's something like, it's interesting I think over the last like 10 years or so we started to see more companies like HP, I think was kind of an innovator in creating a career path that was very like code centric, like to stay as an individual contributor and not have to go into a management tier. But when I often get like asked the question, like what's really the difference between a mid-level developer and a junior developer and a senior developer and so forth. What do you see as the difference? Like, yeah, I'll leave my own thoughts for a minute, but like how if I am like low in the hierarchy, how do I use this kind of like thinking about people to be a part of my progression? Yeah, so I think most of it is arbitrary. I think both the division between junior and mid-level, all that, I think it's very arbitrary and it varies from place to place and it's not very meaningful to me. I think also this is a false dichotomy between the management track and the technical track. And it's something that I was ingrained in me when I first started my career. And so anything that was like leadership at all, I was like, no, no, I'm gonna be a coder because I'm technical and I don't wanna fall into the management trap. And I'm just like, I'm kicking myself now because the thing is we're all leaders of our own life and we also have to participate and engage with people even as an individual contributor. So all of these skills, like emotional intelligence is often only taught to like leaders or people who wanna become leaders. And I think that's silly because we're all humans who are all interacting in a human way. And so we all need to build leadership skills because if nothing else we're leading our own life and then we also may lead a project or even lead the implementation of a feature or lead a meeting or whatever it may be. And so I think those skills are useful across the board. I was thinking about it in the context of like one of the quotes Sarah had this morning and talk over the years about like the 10X engineer and so forth. And if there's a 10X engineer, I think it's only because X is so low. Like there are some people in development jobs that don't belong there and like their productivity is so technically, yes, someone gets 10X more done than them but even with experience, like your ability to write code, write features, do it correctly the first time, it seems like it turns up like gradually but the only way that you can actually have this like really outsized impact to have that 10X, 100X, 1000X kind of impact is to cultivate like a team of people around you whether you're like elbow to elbow as a contributor or you're the team lead or you're the department lead or whatever. It seems to be the only way we figured out so far to like get more high quality work done fast. Yeah, yeah, I talked with a CTO of a startup in San Francisco and she said she doesn't look for 10X engineer, she wants to build a 10X team and that's kind of her goal. I wanna make a little bit of time for questions from you all. What is like, if there's one like unconscious mistake that you see people making as you like go in and work with and talk with teams that just was like happening over and over, it's not directly intentional but you could do better. Yeah, so I think with hiring, the biggest thing would be kind of assuming that your definition of what is smart is right, you know a lot of times it's like, oh, we wanna hire smart people and you know, what does that mean? Are you really talking about their IQ because IQ tests are also biased so that's not a good measurement. Are you talking about their performance on some specific like standardized tests because those are also biased, it's been shown. So understanding that you don't know what smart is and it's like something that you've constructed in your head based on your own biases and so I think that's the biggest one is like recognizing that people from all kinds of backgrounds and with all kinds of experiences can be smart in that they can make contributions to the team. Good questions. The question is about when we're talking about emotional intelligence, like what if some of the emotional problems are not due to an individual but more to the culture of the company? And I would say that's why I find it useful to talk with leadership because they're in a position to change culture from the top too. So if it is a cultural issue, which it often is to be honest, then what I can teach to the individual is how to manage the situation that's happening. So like how to manage your emotions given the culture. And then what we always do at the end of my workshops is make a action plan for how to improve as an individual and as the organization. So we actually do like a culture retrospective sometimes depending which means we talk about like what are some ways, how would you describe culture at your company right now? How would you like it to be? What are we gonna do to get there? And so we really do approach it from an organizational level and because leadership is usually present or at least engaged somehow, that's why we can actually make these changes because it's not just the individuals there. Yeah, so the question, I love the question. It's about vulnerability and the role of vulnerability in what we've been talking about. Especially given that in the tech culture, I mean, ego is probably the biggest problem in tech to be honest. Like I think every other problem resulting like lack of adversity, toxic cultures like Uber, all of that all stems from being driven by the ego. Not being willing to admit when we're wrong, not looking deeper into like how we can improve ourselves, not admitting mistakes, not being vulnerable. So I think vulnerability is really important and I think that teams with a healthy culture will value the fact that you're making yourself vulnerable. And so you may say, well, that doesn't sound like a lot of companies because at every interview I've done, vulnerability has not been valued and that's kind of the point. That's why I think like we need to have this full scale culture shift because most tech companies don't value vulnerability, don't value egoless programming, which they should. And so I think when you have the privilege to be able to work where you want to, which a lot of engineers do get to that point, I would say select for the companies where you can be your authentic self fully. You can admit your vulnerabilities, your weaknesses and you're still gonna be welcomed in because you're humble and that's valued on the team. And they appreciate the growth mindset, which is that whatever weakness you have, you can improve on it over time. Thanks, April. Thank you.