 Well good morning everyone. I'm sad to be standing between you at lunch but hopefully we'll get through this in the right amount of time. I'm here to talk about emotions and how they affect you as a developer or an operations person or a technology person. My name is John Sowers. I've been writing code for over 20 years and in addition to being a founder, CTO and developer I've spent the last seven years working with people and learning a ton about how emotions work and helping others as they do the same sort of thing. And so I wanted to bring some of what I've learned into the technical context because I think it can be really helpful. So I'm gonna start with a quote. I think it's pretty funny and I think a lot of us can relate to that but I also want to ask like why is that something that we can all relate to? Why do so few of us feel like we actually understand our emotions? And I think it's because of how we're raised. When I think about that I see this. We got a lot of instruction about what not to do with our feelings when we grow up. Don't run, don't yell, don't make a scene, don't don't don't. Right? But what we've never been given is a list of things that we should be doing to stay emotionally healthy like instruction on ways to appropriately handle our emotions. And our parents probably didn't tell us this probably because they didn't really know themselves. And school doesn't tell us this because, well, they'll punish you for inappropriately expressing yourself. They're not gonna give you any sort of information on what you should be doing. So basically each of us is on our own to figure out a good way to be emotionally healthy. And so we each of us have varying levels of success as we go through life. So this talk is built from my own experiences. And it's one way of approaching understanding how our feelings work. But it's not the only one. So if this model doesn't work for you, I hope you can find one that does. So the first unpleasant thing I'm gonna have to say here is that no matter how hard you try or how much you want to, you can't actually avoid your feelings. Studies of people as they tried to suppress negative emotions actually showed that it didn't work. That while the people themselves thought they were doing a really good job of not being affected by the emotion, if we looked into their nervous system, we can see that they're actually either as aroused or even more aroused by trying to suppress that negative emotion than if they hadn't. Right. So you can't actually avoid your feelings. So what can we do about that? In the subtitle of this talk, I mentioned being a better developer and actually I mentioned being a better human. And what I mean by that is that because of this information, but the fact that we can't actually just completely ignore that parts of our lives as part of being human, we need to get better at that because that's being better at being a human. And we can see from the research that this is unavoidable. So let's find ways that we can get better at it. And that's what this talk is about. And as part of this work with emotions, I actually ended up becoming a better developer. It wasn't something I was expecting, but it's something that happened. And so I built this framework for understanding and processing your feelings by modeling our emotional system as an API. And I found it actually works pretty well. And I feel like this is a particularly effective model because it breaks down this sort of big blobby, ill-defined, messy system into sort of smaller chunks that let us work with it a little bit more easily, just like when you have a big blobby, uncontrolled system, it's much easier to break it down into chunks and work on those individually. So this is what I came up with. These are our core emotional API endpoints. And they handle all of our basic emotions. And they're hardwired in. And you've probably noticed if you're paying attention that these aren't strictly restful endpoints. And that's because it's really hard to implement a spec in wetware. So mostly the point, these endpoints don't actually get called directly. There are aliases that redirect to those endpoints. And these aliases are built up over our lifetimes as things happen to us. And sometimes it's not just a simple right redirect. Sometimes there's an entire method body there that can send massive traffic into that core API. This is what one of those methods might look like. This code is really gonna send a lot of traffic into that API. And it can be really problematic. And there's some bad news. Anybody in this situation can call these endpoints at any time. And there's nothing you can do about it. But it's okay. Because by practicing some of the tools I'm going to talk about today, allow you to refactor this code into much more productive responses. So now you may be thinking that it's kind of a cute metaphor, but you know, whatever, I don't really don't really want to do it. What's the point? Well, I can't blame you for that because working with your emotions, learning how to get better at them is difficult work. It's not a comfortable process. And unfortunately, I can't change that. But I want to illustrate a little bit why it's worth going through that discomfort to get better at these things. Because I think there are a lot of benefits for getting good at them. So I'll start with things that, you know, affect you as you're just sitting down by yourself, you know, in front of an editor or in front of a command line, unprocessed feelings make us feel powerless. And feeling powerless actually affects our cognition. The powerlessness I'm talking about is that sense of being in control of your life or your career, not just like being powerful over people or whatever. It's feeling like you can't handle whatever comes at you. And so think about the last time you had a big emotional upheaval in your life, like maybe you feel lost a job or something. Like at that time, did you feel really in control of your life? Probably not. That's one of the things that sort of happens to us. But by building up some of these skills, we can regain that power. And studies that looked at the impact of powerlessness on cognition, they've highlighted specific deficits in executive function that arise in these situations. So executive function is our ability to control our attention, to focus deeply in on things. And to reason about and solve problems. So this is very important cognitive machinery that we need in our jobs every day. And if it's impeded, we lose that ability to think deeply about our system, focus deep on the details that are just slightly wrong that are leading to the bugs that we're trying to solve. And the same studies show effects on short term memory. So think about how much of the system, how much of that code, how much of that method you can hold in your mind as you're trying to relate to two parts that are interacting in a funky way. That's going to be pretty important. And it also impacts our ability to handle stress. We just cannot handle it as well. So think about the last production outage you're a part of or a demo with executives, or just crunch time before a big release. These are all very stressful situations. And being able to handle this much stress or this much stress can have a big impact on your job performance. Conversely, when you feel powerful, when you feel like you have a good handle on things in your life, you reverse all of those deficits. And you get back that sense of control. When children were trained with the techniques of emotional hygiene, we saw obviously their behavior get better. But we also saw their grades improve, which you might not have expected. And similar training in adults actually showed improvements in long term physical health. So think about that. Your body actually works better when your emotions work better. So being good developer isn't just about slinging code. It's being part of a community. And in many ways, the non-coding aspects of developer life are becoming more important than the coding aspects. And there are more of them, certainly. So whether it's an open source project or a large corporate team or even a two person startup, thriving in a diverse community requires us to develop to develop skills and communication, empathy, understanding. And that starts with being able to understand, communicate, empathize with yourself. So now let's look at how feelings impact how you work with others. That feeling of powerlessness I talked about, it makes us self-centered. They've actually measured this. And I think that's inherently problematic, but even if you don't, your teammates probably do. Nobody wants to work with someone like that. And interestingly, when you develop an understanding of your own emotions that work automatically translates into being able to understand what other people are going through. It makes it just easier to know what people are dealing with. And when you can do that, you can not only support your team in whatever ways they need as they're going through their lives, but you can make your workplace less stressful. If everyone feels like they can trust each other, then that's going to be a more productive, more fun, more interesting workplace. And your ability to empathize is enhanced, as I said. Just knowing yourself allows you to know what other people are going through and allows you to put yourself in their place. So you can think about negative things you might do where you're not thinking too much about other people. You just dash off a quick code review comment, like, this doesn't work. It'll never go. This is crap. Or just a terse email, like, yeah, that's fine. If you have that empathy, you might be able to take a few extra seconds with those messages. Think about how they're going to come across, what the context of that communication is, and say, well, maybe if I say this is great, but if you remember we had this other situation that might affect how this is going to work instead of just saying it won't work, you can make things come across a lot better, have much better communication with your team members. And in his book, Emotional Intelligence, Daniel Goldman talked about the data he's collected showing that emotional intelligence is highly correlated with career advancement. You will get better jobs and you'll get promoted faster if you have these Emotional Intelligence skills. The benefits are really myriad. So let's get into some detailed scenarios that illustrate how this might play out. From my perspective, you're a better developer, better ops person if your cognition isn't being affected by your emotional state. If you have the confidence to express your ideas and advocate for them rather than staying silent because you're uncertain and unconfident that someone's going to actually want to listen to you. If your comments and your code reviews are full of empathy and understanding and don't make your teammates dread getting your input. If you're not distracted by difficult situations outside of work, if you have the tools to be able to handle those situations so they don't bleed over and take over everything that's going on with you. And if you can deal with coworkers that push your buttons, like you don't want your job performance affected by someone else who doesn't have their act together, you want to be able to handle that. And if you can fight imposter syndrome or even more importantly, if you can have the clarity of thought to realize when a situation actually is treating you unfairly and that it's not just you being insecure and feeling like an imposter. And if you can keep your cool during a job interview or if you can be fired without doing something you're going to regret later. And of course these skills are critical in leadership. They help you manage and mentor a team of developers who are in fact, you know, humans with their own emotional needs. And so a while back there's a website called frontside.io that posted an article about what they look for in a senior developer. And this is the sort of quick breakdown that they gave in the article. And notice that every aspect of that diagram has a huge emotional intelligence component to it. Even the technical capability circle talks about behavior and not about whether someone has 10 years of Java or not. Curiosity, discipline, fearlessness, these are all things that you learn along with your good emotional hygiene. Since forever, these types of skills have been called soft skills and I just think that's completely wrong because it takes a lot of time in work to build up skills in this area. A lot more time than it takes to learn C or Java or Docker or anything like that. And that's why I'm here speaking because I'm hoping that this framework will help you get better with that faster. So I'm going to tell you about my emotional toolkit. The idea is that you have a range of tools available to you that you can use in different situations depending on what your needs are. And I've broken it down into four levels of difficulty. So the first level are new ways to think about your emotions. Different conceptual ideas that can help put the context in there. Level two are techniques you can use by yourself to start building up some fluency. Level three are applying those level two concepts but with another person. And these involve being honest and vulnerable with that person right in front of you. And level four is the master level which is taking those level three tools and doing it in a group of people. It's the most powerful and it's the most scary for sure. So let's start with level one. Sometimes changing the way you think about your feelings can have a huge impact because there are a lot of misconceptions about how they work, what they mean and what you should do with them that can really interfere with being able to handle them well. Then we have no formal education with this. So everyone sort of just comes up with their owner. They just happen to read a little article about something and that's how things work from then on. So I'm going to shoot down some misconceptions and explain how things work. So the first thing to realize is that your emotional reactions are not set in stone. They're legacy code that's built up over your lifetime and it can be rewritten and we get to decide where and when we process our emotional state. We have this great background job queue that's available to us so that we can find a time and a place where it makes sense to express and process our feelings if now isn't a good time. And this is the system we're taught to use as children. You know where it's always about no we don't have that feeling right now have it later right. We're continuously pushing you know new feelings onto that queue. And as you know a queue isn't very useful if you never pop jobs back off of it and run them. So that's what I'm talking about today is how you can start taking those things that have been building up since since you were born and clear them out of there. So people really get caught up a lot in what it means about them when they have a certain feeling. But and I want to say this really clearly having a feeling doesn't mean anything about you. Feelings can be very personal and they can mean a lot to you but they don't define you in any way. You know if you're feeling angry about something it doesn't mean that you are an angry person. It doesn't mean that you can't control yourself. It doesn't mean that you're a monster. But so many people get caught up in that meaning that they feel like they can't actually have that anger and strong emotions can be scary because they can feel like you're going to lose control. Anger especially does this because it can be the most energetic. And so notice what I just described there. You have a feeling about a feeling and that's one of the reasons why it can be so hard to deal with these things is because they you know the feelings can trigger feelings about the feelings and they're all sort of mixed together. So part of the techniques in here are helping to sort those out so you can deal with each one one at a time. And you can have multiple conflicting feelings about the same situation at the same time. And people always want to know which one is the real one. Like how do you really feel. And the answer is all of them. They're all real. You have to treat them as valid emotions even if they don't actually make sense in the situation. So separate them out focus on each feeling at a time even if again as I said even if it doesn't make sense for you to feel X in the situation. If you are in fact feeling it you still have to express that feeling. And as I said they don't have to make sense. So think about that losing your job example from earlier. Like you could react to that with relief anger fear guilt or all of those things. And they don't all actually have to like make sense. And there's no single feeling that's the one valid one and the others are just sort of around. They're all valid. They're all there. They all have to be dealt with. For example you could think of a situation where like something feels incredibly unfair and you have that feeling of this is really unfair. You know poor me. And then maybe you think about it a little bit and sort of mentally you realize that no no it's actually fine. That's it's a fair situation. And sometimes that'll make that feeling go away. But sometimes it won't. Maybe you'll still have that feeling. You still have to treat that as a feeling that needs processing because it's still there. It just because you decided that it's not valid doesn't mean it goes away. So level two are the things that you can do on your own both to learn more about your your own emotional responses. And to start having direct experience of some of those initial concepts I just talked about. Some of you may have heard about rubber duck debugging. In case you haven't I'll go over it. It's a quick thing. So have you ever had the experience which you probably have or you're banging your head against a problem. An hour like an hour goes by and you still cannot figure what the heck's going on. Finally you give up. You walk over to your co-workers desk and you say here's my problem. Help me fix it. Bop up up up. And even before you're done explaining the problem. Boom you've got the solution just pops into your head. The other person hasn't even said anything. This happens frequently enough that people built up a hack to shortcut this process. Have a cat or a dog or rubber ducky on your desk and start explaining like even before you get up and go talk to anyone else just to explain the problem to them as if they're going to give you some advice and chances are you'll trigger that same burst of insight. And so that can be really handy. I mentioned the rubber duck because that same hack actually works with talking about your emotions. Of course it can be really helpful to talk to another person about them. But that other person doesn't actually have to exist. You just speaking out loud about what you're exploring can be enough to get you a lot of insight into what your feelings are and help you express them. Think of it as like verbally exploring the problem space of trying to figure out which words make sense which words resonate and actually see you know what feelings are going on and sometimes you won't know what the feeling is until you say the word for it and then it's like oh there we go that's it. So this feel wheel super handy that can help you find good words to describe your feelings because we don't have a lot of experience with this so we don't necessarily have a great vocabulary for describing all the nuances of our feeling. And so this can help you pick some good words to describe and you don't have to pick the one right one you can use 10 words to describe what's going on. And this is sort of a limited number of words and you might not even agree necessarily with how they break them down with the various feelings but it's a great way to get you started in coming up with words for these things. I have a whole stack of these printed out so come up after the talk and I'll give you a copy. So when you're when you're out talking about feelings whether it's alone or with someone else the language you use is actually really important habitually most people describe a feeling by saying something like I am angry but I want to change that into saying I feel angry. It's one word different but the meaning is actually very different if you sort of take the extreme versions of the definition I feel angry says I'm currently experiencing emotion and it will pass. If you say I am angry you're saying anger defines my existence and it's a little bit hyperbolic but there's also some truth to it and so changing that language around can actually help jar the definition of how you're describing the feeling. So talking through feelings is basically the first step towards calling those API endpoints that we've identified earlier. It's basically exercising that code so you see what responses are happening what's going on and it's a good way to just get a sense of what's going on with their emotional state because it's not always obvious. One of the ways you could do that is by like a weekly emotional retro like a sprint retro you just go into the week say all right what did I feel this day this situation that thing and it can be as brief as just naming what happened and what you felt or you can spend the time to really dive into the details and what root causes and this because of this because of this and then you get to the point of like knowing what those feelings are and being able to feel and taking the time to practice this every day or every week is actually great experience because you learn what your responses are with the everyday emotions with the little things that happened here and there going on and what that does is it gives you a lot more confidence when something big happens because you have that experience of processing and emotion and you get much better at knowing the things you can do to help deal with it and feelings all begin in your physical body not a lot of people realize this they're actually physical things that happen to you it's not a mental process it's like and their only goal is just move through you and out that's all they ever want it doesn't matter what feeling it is that's what it wants and it's like when you have too much coffee your body just has to move like that's what's trying to happen and sometimes in fact a physical sensation is actually the first sign that you're having an emotional reaction to something maybe it starts down here in the pit of your stomach or your shoulders get all tensed up these things can be clues that there might be something better going on and any sort of movement is going to help those things get going and get moving dancing, running, exercise any of these things can be great but to make real progress you have to acknowledge the feeling you have to do that retro you have to think about it you have to feel the feeling you can't just go for a run and hope it goes away and you can develop a lot of skills and a lot of understanding working on your own as I've described here but things get much more powerful when there's another person involved so in addition to helping you process your feelings with another person you strengthen the relationship that you're with whoever you're talking to you make them feel like they're trusted and included and actually increases their trust in you can be as simple as sharing your weekly emotional retro with someone at whichever level of detail you're comfortable with that can just be sort of on the friend significant other level and emotional sharing isn't helpful in all situations so especially work situations it's not always best to lead with what your emotional state is you can end up in situations for example imagine that you're angry that one of your coworkers got credit for an idea that you proposed like your first option could be just to get really angry about it and just go charging in and start yelling at people but that means those other people are just going to have an emotional reaction and there's going to be more yelling and defensiveness and it's not actually going to solve any problems so what you want to do in that situation is work with that feeling on your own first you want to figure out what you're actually angry about or who you're angry at is it the co-worker is it the boss is it just the situation and then once you know that you can figure out well what's a proper resolution do you want to talk to the co-worker and say yeah don't you hate when this happens you want to talk to the boss and say no give me credit like you can figure out what that is and then when you go talk with that person you know what your goals are do you want X resolution Y resolution and so you can talk you can say this situation made me feel really angry but you don't have to be angry when you do it because that's probably going to be an impedance so there continues to be this judgment that therapy going to therapy means that you can't handle your life that it's only for big psychiatric you know diagnosis type issues where you need medication but I want you to change the way people think about therapy to think about bringing in a consultant who's an expert on your next integration or an emotional mentor someone who can look knows more about it than you and can help you look at your whole process can spot your blind spots can point out difficulties that you're not seeing and help you come up with solutions that are actually going to be helpful so think about getting an emotional mentor can be really handy and if you're interested in how mental health is handled in the workplace open sourcing mental illnesses and organization that's put together a large amount of resources on this very thing like how to make use of your mental health benefits in the workplace how to talk about them they sponsor a lot of conference talks from people dealing with on how to deal with these sorts of issues at a lot of conferences so they have a lot of great resources on that site okay level four for most people the thought of burying their emotions in a group of people is terrifying and it certainly was for me and I didn't realize how powerful it could be until I actually did it so with the urging of someone I trusted I went to a workshop called Purpose Passion Peace P3 and I had literally no idea what was going to be in there they just said this will be good for you and I said okay I trust you I'll go do it and there I was able to find an amazingly safe space and face all the big emotions that I'd held on to for my entire life and I went back to volunteer every weekend that that workshop ran for years and eventually I started supervising and organizing the workshops and helping people as they came into the workshop and worked through the same issues that I had worked through and I don't have any psychology training but having so much direct experience with my own process and watching other people go through that same process taught me a great deal about how things work so I'm going to tell you about my experience with anger and I'm going to do it for several reasons first it's vivid and I want to illustrate some of the level three and four tools that I talked about and secondly vulnerability breeds more vulnerability and connection and I think we need more of that and thirdly and more important and most importantly I want to model this behavior I want you all to see what it looks like for someone to stand up in front of a group and talk about something like this and have it be okay this is me as a child through my entire youth I wasn't allowed to get angry other people used up all of the anger points and there weren't any left for me so I had to be pleasant and agreeable the entire time and I did it for 30 years and it wasn't until I was in my late 20s that I even started realizing how much anger had been building up for my whole life just regular things but they were never expressed so this is what my life was like there's a little API it's something small it doesn't even matter what it was it'll make me kind of angry like more so than you would think from whatever little thing it was and maybe I'll be in a crappy mood for the day maybe I'll just punch my desk and walk out or maybe I'll snap at someone and I'll think, man why did I react like that that doesn't really make a lot of sense oh well whatever it's over I'm fine but then it'll happen again and again and again and at this point in my life my playbook for dealing with anger is this nothing there my therapist at the time actually tried to get me to let some of this anger out because we were talking about it and she had this tiny little office and I was convinced because I didn't know any of these things at the time that if I let even just a little bit of anger out then it would just all come charging out and it would never stop and I would never be able to control it and it would destroy all the furniture in that room so I was trapped like there was no option for me at that point and it wasn't until I got to P3 that they created a space that was safe enough for me to do that and it's surprising that in a group you would feel actually safer than not small one-on-one thing but it actually works really well and so I just let my anger out I just I raged and I screamed and it just flowed out of me and nobody got hurt nothing broke and nobody was upset with me it was amazing and I did it again and again not every time I went but every time I feel like I needed to and over the years I cleared out these massive amounts of old feelings and every time I felt like I'd lost 50 pounds so throwing a fit is actually one of the great techniques for getting rid of anger and you know what it looks like you've seen a toddler just complete meltdown on the floor kicking and screaming in fact you've probably all done it so that's the sort of template for what this needs to look like but there it's actually a little hard to do it as an adult because we've spent the last X number of years preventing ourselves from actually doing that thing so there are a couple of hacks to get in there first of all you need a soft place to do it like a big mattress or an air mattress or something like that in a big room and you'd need to actually start doing the physical motion like I was saying either it's a physical feeling it's tied to your physical motion so you wanna start kicking and screaming and making the sound of just yelling as much as you can and you're gonna feel like a complete idiot when you first start that because you're doing the action but you're not feeling the feeling but that action makes your body realize its anger time and will start flowing so after just a minute or two you're gonna start feeling the feeling and you can use all of that energy to get it all out and if you feel like it's gonna take forever but it's exhausting and so it's really gonna be like five, 10 maybe 15 minutes of that and then you're gonna be down for the day but it's an amazing feeling and you get rid of a lot of old feelings that way so you can do this on your own you can do it with a trusted friend to keep an eye on you or you can find a group like P3 where you can do it with a bunch of people who know what you're going through and can help you do it and I've done this a lot these days I still get angry of course things will always make me angry I'm still human but the anger that I expressed today is not the anger from when I was 12 years old and I don't always have my act together enough to do this I have a lot of effort to make myself go do something like this even though I know how good it is for me so when I've got my act together when I feel energetic enough I go in and I throw a fit so we're gonna move from anger into sadness now so this simple series of API calls describes the first third of my life each one of these hits was devastating and they all multiplied together you'll see there are different versions of the API at different ages and I'll talk about that in just a bit when I was five my parents divorced and so many different feelings happened fear and sadness and rejection and blame the five-year-old mind assumes that it's pretty much controlling the universe and so no matter how many people told me it wasn't my fault I knew that it was and when I was eight I found out my father had cancer and of course it triggered the same sorts of feelings of fear and loss and sadness and it also triggered those old feelings from years ago which are older and more primal they're harder to access and they just started getting mixed in with the newer feelings and when I was 17 my father died and those same feelings came in again even stronger and stronger and then they mixed in with the feelings from when I was eight from when I was five and they're all sort of roiling around and I just sort of held on for dear life and hoped it would blow over but of course it didn't blow over I was barely holding it together here's an example situation from 10, 15 years after that it's a regular Thursday release and I let a few bugs slip through and of course nobody wants to release bugs to production but maybe it's not a disaster if the CSS is a little wonky at the bottom of the FAQ right but for me panic this is the end of the world holy crap and so this is what that feels like if you look at these two lines in there this is code that I wrote when I was five for how to react to this situation now how many of you have written code when you were five? Some of you? Was it really really good code? No probably not so I was reacting to something happening to my adult self I'm 30, 35 with code written by a child and that's what these old unresolved feelings do for us they trap a part of ourselves at the developmental age we were at when the trauma happened and so when anything comes any feelings come in related to that trauma they're handled by the most primitive and damaged parts of ourselves so eventually when I got to P3 I did what you do with sadness I cried, I cried into my stomach muscles hurt over and over again and once the grief and sadness were gone I worked on other feelings and the anger and shame and fear and all of that so if you remember this slide there are so many feelings happening and I worked through each one in turn and when I was finished I'd refactored that endpoint here's the diff now if my father died now of course I'd experience a lot of grief it would be very sad but it wouldn't cripple me it wouldn't ripple through affecting every relationship for the rest of my life I'm not running that outdated code anymore and you like this too you can sometimes rewrite an entire method if you remember that bug you released from earlier it's basically a no op now so that was some of my baggage and how it was affecting my work life and I want you to think about what sort of baggage you might be bringing to your work and your personal relationships and are there parts of you that are reacting to things like a 10 year old and that's my toolbox so I'm gonna wrap up now just it was been wonderful talking to you thank you so much and everyone take a deep breath thank you so much it's been wonderful talking to you today