 Good morning everybody. I'm so excited to be here opening a conference dedicated to the human side of software. I think because computers are built with advanced physics and chemistry people like to clothe the work of software in a suit of science to think that it can be reduced solely to bits and registers. And this leads to myriad problems from dubious ethics to the failings of meritocracy. And I think the way to counter this reductionism is to do what we're doing here today, talking about our humanity, re-centering that experience in the industry. And it seems to me that most of the speakers here are talking about really one thing. And that's kindness and ways that we can make ourselves and each other better. And I can't wait. This is going to be amazing. I'm going to talk about the complexities of our emotional system and I'm going to use some software metaphors to do that. And it's going to focus a little bit on the way they affect my life and the lives of other developers, but the principles apply outside of technology just as easily. And I'm going to be using a couple of software metaphors in this talk, but there's only really two that you need to understand for it to make sense. The first is an API, which is just a contract between two software systems about how they're going to communicate with each other. So it could be two servers at different companies on the internet or two different systems within your computer exchanging information. The second bit of, second concept is of what's called a middleware, which is a layer of software that translates from one system to another. So commands will come in one side, they'll get transformed and then sent out the other side, sort of like a software adapter. And that's really it. That's all you're going to need to know. Also a quick content warning. I'm going to talk about divorce and the death of a loved one. And if you need to step out for any reason, please do so. My name is John Sowers. I've been coding professionally for more than 20 years. And in addition to being a CTO founder and developer, I've also spent many years working with people as they delved into their deepest and most intense emotions. And from that work, I developed this API, this metaphor to explain how emotions work because people don't really understand that very well. And so I'll walk you through the metaphor. I'll talk about why that work is important. And then I'll also dive into a number of techniques that you can use to level up your skills in this area. But first, I will start with a quote. It's pretty funny. And I think we can all relate to it. And I started wondering, well, how come we all feel this way that we don't really understand what's going on here? And I think a lot of it comes down to how we're raised. I think even as children, we're given a lot of instruction about what not to do. Don't run, don't yell, don't make a scene, lots of not, not, nots. But what we're never given is a list of things that we should do to stay emotionally healthy to process our feelings in appropriate ways. Our parents probably didn't give us this info, probably because they themselves didn't know. Schools don't do this. They'll punish you for doing it improperly, but they don't have any classes on how to get good. So each of us is on our own to figure out how this thing works on our own. And because of that, success is uneven. So I've put this talk together because I want to help everyone improve in this area to help everyone populate the list on that previous slide with a big number of things that they can do whenever they need. And this talk is built from my own experiences. It's one way to think about how feelings work, but it's not the only one. So if this doesn't work for you, that's completely fine. I hope that you can find a model that does work. So let's talk about our emotional API. These are our core emotional endpoints. They panel all the basic emotions and they're hardwired in. But these endpoints don't get called directly. We have this layer of emotional middleware that takes events happening to us and translates into feeling reactions. And these mappings are created over the course of our lives. We start out with none, but we end up with a lot. And they're very flexible and they vary between people. We see in this diagram one event triggering one feeling. And that can sometimes be the case, but often there can be a lot of complexity in this middleware. There can be large chunks of code that actually send a lot of traffic into that core API. So let's look at an example of what that might be. We'll start at the top. That's sort of losing your job example. The code for that might look like this. That's 100 calls to your fear API, 20 calls to your sadness API. That's going to be a very intense experience for someone. There's also some bad news. It's a public API. Anybody, anywhere, any event can call any of those endpoints at any time. But it's okay because by practicing some of the tools I'm going to tell you about today, you can rewrite that middleware. You can refactor the code so that you get to choose what responses you send when those events happen to you. And that's my metaphor. It's a framework for understanding and processing your feelings. What I like about this model is that it takes as big sort of ill-defined, messy thing called feelings, breaks it down into some smaller ideas that are easier to talk about, easier to explain and understand. And I'll segue into the next section with another quote. I don't like working with emotions. You probably don't either. And unfortunately there's nothing I can do about that. So what I'm going to do now is try and explain why it's worth going through that work to get through that discomfort and make things better. And I'll talk about some of the surprising and not so surprising ways that emotions are impacting our life. So I'll start with one unpleasant truth, and that is that you can't actually avoid your feelings. In studies where they ask people to suppress a negative emotional response, we see them fail. Well, the participants thought that they were doing fine. They're like, yeah, I got this. Nobody can tell. When we peer into their nervous system, we can see the effect is still there or it's intensified. So pretending that you're not feeling something can make it worse. So emotions are unavoidable. Let's look at how they affect us when we're sitting alone just writing some code. So unprocessed feelings make us feel powerless. And the powerless as I'm talking about is that feeling of not being in control of your life or your career or not being able to handle whatever comes at you. And so think about the last time some vague emotional event happened to you, like losing your job, for example, in that situation, you probably didn't feel powerful. But even in less intense situations, that same effect can be what happened to us. And in studies that looked at this effect of powerlessness on people, they saw a specific deficit in what's called the executive function. Now executive function is our ability to control our attention, to focus in deeply on things, organize and keep details in track. And I think that sounds like what most of us do all day. So when that's impacted, we lose our ability to focus deeply in on code, to find bugs and to design new complicated systems. It also affects our short-term memory. So think about how much of a system you can hold in your head, what you're tracing through and trying to find the source of a bug. It also affects our ability to handle stress. So think about the last production outage you are a part of, or a demo before executives, or even just crunch time before a release. Do you want that stress to affect you this much or this much? Conversely, when you have a good framework for handling your feelings, you get back that sense of control of power. You reverse all the problems I just mentioned. When children were trained in these techniques of what they call emotional hygiene, their behavior improved, as you would expect, but their grades also improved. It was a measurable increase in academic achievement. And when adults were trained in these same skills, we also saw a measurable increase in long-term health outcomes. Think about that. You actually, your body works better when your feelings work better. So being a developer isn't just about slinging code though. We're part of a community and in many ways the non-coding aspects of software are becoming more important than the coding ones and they're more of them. So whether it's an open-source project, a large corporate team, or a two-person startup, thriving in a diverse community requires us to develop skills in communication, empathy, and understanding. So let's look at how feelings impact how we work with others. Interestingly, when you develop an understanding of your own emotions, that work automatically translates into ability to understand and empathize with other people. And in his book Emotional Intelligence, Daniel Goldman talks about the correlation he's found between career progress and emotional skills. Basically, you get better jobs and you get promoted faster when you have these skills. And when we regain that power, we are less self-centered and we increase our ability to empathize. We rarely intend to cause harm with our words, but empathy helps us keep an eye out for how they're going to come across to other people so that we can avoid accidentally doing things that are going to hurt people. I got a chance to see Laura's talk earlier this week that's a Harry the Hedgehog talk. It's at 1 p.m. today and it really delves into a lot of practical ways of keeping track of this in your communication. It's really great. So let's go into some detailed scenarios that illustrate how this can play out in day-to-day life. From my perspective, you're a better developer if your emotional state isn't impacting your ability to think clearly. If you have the confidence to express your ideas and advocate for them without thinking incorrectly that nobody wants to hear from you. If your comments are full of empathy and understanding and don't make your team dread getting your input. If you're not distracted by difficult emotional situations outside of work, you can deal with coworkers that push your buttons so that your work performance isn't impacted by someone else who doesn't have their act together. If you can fight an imposter syndrome and more importantly, if you can realize when you're being gaslighted, when you can see a situation clearly enough to realize that actually is unfair. If you can keep your cool during job interviews or if you can be fired without saying or doing something you'll regret. And let's talk about leadership for a moment. These skills are critical for managing and mentoring a team of developers. You know, they're actually people and they have emotional needs and understanding those are going to make you far, far more effective. A while back, frontside.io ran an article about what they look for in a senior developer and talks a lot about these issues. You'll notice pretty much everything in all of those circles has a huge emotional intelligence component to it. Even the technical capability circle talks about behavior, not whether you've got 10 years of job or not. Curiosity, discipline, fearlessness. These are emotional skills. So those are some of the reasons why I think it's important to do this work. I think it has a huge benefit on us. Now I'm going to talk about my toolkit for dealing with emotions so that you can get better at handling them. I've broken it down into four levels of difficulty. Level one are new ways to think about emotions. Level two are techniques that you can use by yourself to practice and get some more fluency with how your own emotions work. Level three skills are applying those level two techniques but with somebody else. This is a little bit harder because it involves being open and vulnerable with another person. And level four skills are the most powerful and also the most difficult because they involve being open and vulnerable in a group of people. Let's start with easy stuff in level one. So changing the way you think about emotions can actually have a huge impact. Because we get no formal training in this, a lot of us have misconceptions about how feelings work. So I'm going to clear those up and explain it all. The first thing to realize is that our emotional reactions are not set in stone. They're legacy code that's built up over our lifetime and it can be rewritten. And we get to decide when and where we process our emotions. We have this great background job queue available. It lets us find the best time and place to process our feelings so if now isn't a good time, we can place that feeling on a queue and come back to it later. And this queue is actually the same thing we've been using since we were children. We were told not to do things and we learned how to not have an outburst in the middle of denies. But the problem is we have never been given those skills for bringing jobs back off that queue and running them. So this queue has probably been just building up our entire lives. And people get really caught up in what it means about them when they have feelings. But I want to tell you, having a feeling does not mean anything about you. Now feelings are very personal and they can mean a lot to you but they don't define you in any way. If you're feeling angry, it doesn't mean that you're an angry person. It doesn't mean you can't control yourself or that you're a monster. It's just a feeling. But strong emotions can be kind of scary because they feel like you might lose control. Anger in particular does this because it's a very energetic emotion. And notice what I just described there. You're now feeling afraid of feeling angry. And that's pretty complicated but it can go deeper than that. Imagine for example you're angry at your mother but the way you were raised that wasn't something you were really allowed to do. So you now feel ashamed about feeling angry about your mother. Further, imagine that you're now aware of this cycle, this reaction that you have but you haven't quite broken out of it. So maybe you feel discussed about the shame that you feel about the anger. And maybe that makes you angry. So you can have these multiple conflicting feelings about a situation and people always want to know which is the real one. The answer is all of them. They're all real feelings. There's no such thing as how you really feel. And the feelings that arrive in a situation don't have to make sense. Think of that losing your job example from earlier. You can react to that with relief, with anger, with guilt, with sadness are all four of those mixed together. There's no one thing you should feel in that situation. And even if the feeling doesn't make sense in the situation, it still has to be treated as valid. For example, you can feel like a situation is unfair. Then think about it some more and realize, no, it's probably fine. And sometimes that will remove the feeling. You're like, oh yeah, sorry, it's fine. But sometimes it doesn't. Sometimes that feeling is still there. And even though it doesn't mesh with reality, it's still a feeling that needs to be handled on its own. You still have to feel it and process it. When you do it, it'll go away. And then you'll be all right. Also one last piece. Many of us have had the experience of feeling like a feeling is so big that if we let even a little bit of it out, that it's never going to stop. If I express this anger, I will never stop yelling. If I express this sadness, I will never stop crying. But that will not happen. Experts tell me that feelings really only last about 20 minutes. And this matches my experience over and over again, that they just will not go on forever. It feels like they will, but they won't. So that's level one. Level two actions are things that you can do on your own to start building an understanding of yourself and your emotional reactions and to start having some experience of understanding the concepts level one. Now feelings begin in your physical body. They're not just mental processes and all they want to do is move through you and out. It's like when you've had too much coffee, your body really wants to move. And so actually doing the movement can help those feelings come out and be expressed. So you can dance, run, sing, exercise, any of these things will help. In fact, sometimes the first thing you notice about a feeling is actually just a physical sensation. You don't actually know what the feeling itself is and doing these, you know, moving your body can help that come out and then you can realize what's actually going on. But to make real progress, you have to feel the feeling. You can't just go for a run and hope it goes away. So I'll do a quick aside here about rubber duct debugging. And if you haven't heard about that, I'll do a quick summary for you. So if you ever have this experience where you're banging your head against the problem for a long time and eventually get frustrated enough that you're going to go ask a co-worker to help you figure out what's going on. So you get it from your desk, you walk over there and you start explaining the problem. And as you say the words, boom, a flash of insight happens. And this is such a common experience that a hack has been developed to short circuit this process. Keep a rubber duck on your desk. Works with a cat or a dog too. And before you get frustrated enough to go talk to someone else, you explain the problem to them as if they were a person. And you know, sometimes they are. And that's often enough to trigger that same burst of insight. So being aware of your emotions, talking about them, naming them is really helpful. So I'm going to give you some tips about talking about feelings. Now you may have noticed that we're currently in the section about things that you do alone. Let me explain. This is where the duck comes in. The same trick works when talking about feelings. You can talk to nobody. And it still has a lot of the same impact. So sometimes talking through a feeling is all that's really required to process it. Just by exploring it verbally, you can feel it enough that it will be fully handled. So think of it as a process of like verbally exploring a feeling space. Like you're trying to find the right word for it. So you try on a bunch of different ones. And sometimes you'll even discover that you don't know what the feeling was until you hit upon that one word for it that describes it. And then you actually know what it is you're feeling. And it can be fine to hard to find the right word because we don't have a lot of practice in this. So this feel wheel will help you pick a good word. It was developed by Dr. Gloria Wilcox back in the 80s. And it's not exhaustive and you might not even agree with some of the ways that things are set up in the hierarchy there. But it's a great way to start talking about feelings and trying to find precise words to describe what you're feeling. Come up to me after the talk. I can give you a copy of this if you'd like. So the language we use when we talk about feelings is really important. Typically you say I'm angry. But I would suggest that instead you say I feel angry. It's a small change in words but the meaning is actually drastically different. When you say I feel angry you're saying I'm currently feeling angry. And because we have that earlier slide we know it's not going to last very long. When you say I am angry you're saying anger defines me. And that's a little bit hyperbolic but the truth is really in there. And so I suggest making that switch in even in casual conversation. So talking through a feeling is basically just calling your own emotional API endpoints over and over again. And like anything you practice you get better at it. You start getting a sense of what it feels like to feel that feeling. And so I suggest doing this at a regular cadence like a weekly emotional retrospective like a sprint retro where you can just look back on your week and like catalog the feelings that you felt and you can do it as simply as just naming them and just having a list there where you can spend more time and delve really into them. What was the underlying feeling? What was the cause? Maybe where that came from deeper into your past but even just writing down a list of names is really helpful. And taking time to practice this on the day-to-day feelings of things that are just here and there and little things can make it a lot more helpful when you have some big intense emotional experience in your process because you've already started knowing what it feels like to do this. So you can develop a lot of skills on your own doing this. Things get a lot more powerful when you've got another person there. In addition to helping you process your feelings to help you give you back input and feedback in what you're talking about it strengthens relationships to talk about feelings with people. It makes them feel trusted and included increases their trust in you. And it can be as simple as sharing your emotional retro with someone just a quick catch up or just a simple share here and there maybe answer honestly when they ask you how you're doing but emotional sharing isn't helpful in all situations. Imagine at work a co-worker gets credit for an idea that you proposed and that makes you really angry. What you want to do is figure out what you're angry about. Are you angry at your boss or at the co-worker at the situation and then you want to feel that anger you want to express it alone or with someone unrelated to the situation. Once you've done that once that feeling is mostly gone then you can start thinking about resolution about what would make that situation better. You can decide well I don't feel angry anymore maybe there's nothing I want to do now about this right now or you can decide I want to go talk to this person and you can say to them this thing made me angry but you don't want to be angry when you're doing it. That's often very counterproductive it puts the other person on the defensive makes the discussion about everybody's feelings right then and there and not about the resolution that will make everybody feel better in the end and sometimes need to bring in a consultant. There continues to be this judgment that therapy is only for people that have big emotional psychological problems or that they who can't handle their life but working with a therapist should have no more stigma than bringing in a consultant to architect your next integration. Having a subject matter expert on call to help you spot the pitfalls that are coming up to be a resource to ask questions for or to see your blind spots can be really really helpful. For most people the thought of burying their deepest and most intense emotions in a group is completely terrifying and it was for me and until I did it I had no idea how powerful it could be. At the urging of someone I trusted I went to a workshop called purpose passion peace p3 for short. I had literally no idea what was going to happen to me for the next two days but I just trusted that it was going to be good and there I found an amazingly safe space a space that was safe enough for me to face all the big intense feelings that I've been avoiding my entire life and I don't have any and I had such an amazing experience that I went back every time they did the workshop to help other people go through it so and I well eventually we started supervising and organizing the weekends because it was so valuable to me and so gratifying to help other people go through that same intense process and I don't have any psychology training but I learned so much from that direct experience both in digging through my deepest feelings and seeing other people go through that same process and seeing the commonalities so I'm going to tell you about my experience with anger I do this for several reasons first it's a vivid example and it illustrates some of the level three and four tools that I'm talking about but secondly and more importantly I want to model the behavior I want to show you what it looks like for someone to talk about these things and a room full of people as a child I was not allowed to get angry other people used up all the anger points and there were none left for me so my only option was to just be pleasant all the time and I did that for 30 years once I was into my late 20s I started realizing how much anger had been building up over my lifetime and I was deathly afraid of it at the time this is my this instruction list for dealing with anger there's nothing there I was working with a therapist at the time and she was trying to get me to get in touch with it but she had this tiny little office and I was convinced the moment I really started to let it out the furniture would be broken the books scattered around like it would just be a disaster so I was stuck I had no way to deal with that anger and it wasn't until I was in that room with p3 that I finally felt safe enough to express it and so I did I raged I screamed and I threw the biggest fit of my entire life and it was amazing and nobody died and nothing broke and nobody was upset with me it was so cool and I did it again and again like multiple times not every time I went back but every time I felt like I needed to and every time I did it I felt like I lost 50 pounds it was so great so throwing a fit is actually a really great way to express your anger and I'm pretty sure most of you have already done it a few times in your life but the trick is getting back to doing it because we spent so long repressing that urge so there are a couple of tricks that you can do to get there first of all you need to set aside time and space make something really comfortable like a big mattress or an air mattress and then just lay down and start kicking punching and yelling as loud as you can but the trick is that it's hard to do that because because we don't really aren't in touch with that feeling from deep long ago so once you start moving your body in that sort of anger motion it'll start letting the feeling come up it you will start feeling the anger even if you didn't when you started and but the trick is that until you start feeling it you feel like a complete idiot because you're sitting there doing this thing that's like a toddler thing and it's really uncomfortable but that feeling will come and when it comes it'll bring so much energy with it and you'll just be able to put all your effort in and you're only going to go for five ten maybe 15 minutes before you're completely exhausted and then don't make any plans for the rest of the day so you can do this alone you can do it with a trusted friend or you can find a group like p3 and do it with 20 people you've just met supporting you in the most amazing way and i've done this a lot and things still make me angry today it's not like i've stopped being angry about things that's never going to happen but the anger i expressed today is not the anger from when i was 12 or five that's all gone so when i do have a big angry anger thing that i need to work on and i don't always have my act together enough to do this it's it's hard work takes a lot of effort to get myself there even when i know it's so good for me but when i do when i when i can really put it together i set aside some time and throw a fit so let's move on to sadness this simple series of api calls describes a huge part of my life each one of these api heads was devastating and each one multiplied upon the others you see the different versions here these are the different ages i was at and i'll show how that plays out in just a minute so when i was five my parents got divorced i felt so many different feelings fear and sadness and blame and grief and all these things and the five-year-old mind is very self-centered so even though everyone 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 it triggered those same there's a bunch of new feelings about loss and grief and those triggered those same older feelings from before and they all got sort of mixed in together and those older feelings are more primal they're harder to process and of course i was only eight so i didn't really have any tools for this and then when i was 17 my father died and again those same feelings came back again and again and they started multiplying together into this huge mass i was faced with all of it and i had no no idea what to do i just held on for dear life and hoped that it would blow over but it didn't blow over 15 years after this it's a regular thursday afternoon i'm releasing some code to production and a couple of bugs slip through now we don't like releasing bugs to production but maybe it's not the end of the world if there's css is a little wonky at the bottom of the FAQ but to me it felt like panic i was thinking my boss daddy is going to leave me this is all these feelings all over again this is a stack trace of what that feeling might look like if we see these highlighted lines those are code i wrote when i was five have any of you written code when you were five was a really good code so i was reacting to something happening to my adult self with a script written by a child and that's what these old unprocessed feelings do to us they trap a part of us at the developmental age we're at when the trauma happens so that those feelings are processed by the most primitive and damaged parts of ourselves so i did what you do with sadness in the safe space of p3 i cried and i cried until my muscles hurt and i did it again and again over the years and eventually i got it all out if you remember this slide there's so many feelings stacked on top of one another so i worked through each one in turn first the sadness then the grief and the anger the machine if we look at a diff of what that code might look like now it's been refactored now of course if my father died today i would still feel a great amount of grief but it wouldn't ripple out with massive problematic effects for the next 20 years i'm not running that outdated code anymore and you like this sometimes you can completely rewrite the method if you look at that release from earlier this is what it looks like now it's basically a no op so that's some of my baggage and you can see some of the effects it had on my life so i'd like you to think a little bit about what baggage you might have that you could be bringing to your relationships at work or at home are there parts of you that are reacting to things like a five-year-old or a 10-year-old or 15-year-old and that's my toolbox the ultimate goal of all of these tools is to get you to a single place feeling a feeling not denying it not analyzing it not stopping it not indulging it just feeling it now since forever these skills have been called soft skills and i really hate that it's so incorrect it takes a lot of time and effort to build up your skills in this area far longer than it takes to learn singing or ruby or docker or whatever and that's why i'm here speaking because i'm hoping that this framework will help you get there faster so as we start wrapping up let's talk about best practices and next steps so you know how you read that one blog post about best practices for whatever your framework or language is you get really excited because oh this is going to make my code so much better so you run down your editor and you pull it up and you think yes i will do the thing at about five or ten minutes later you completely give up because you realize that the inertia of your code base is going to resist any sort of big architectural changes on any short timeframe that's how it's going to go with your feelings so don't try doing everything in all the levels all at once pick just one thing that resonates you from this talk and try and incorporate it into your daily life just keep in the back of your mind think about how it's applying to your interactions once you feel like that's well integrated into your thinking watch your video you can find it on my website and pick the next thing and then integrate that one and then the next and that's how we build up these skills also a note of warning as you start leveling up in this area it's tempting to judge other people that don't have the same skills to think that you're better than they are that you're more advanced and i want you to fight that feeling fight the part over your ego that says you're better than they are because you're not you just have a few more tools and if you can use those tools to help that other person help them go through what they're going through and then teach them the tools so that they can get better at going through things in the future and that's how we make ourselves in our lives in our world better okay everyone let's take a big deep breath thank you so much it's been absolutely wonderful talking today come up get a feeling wheel i have them for you you can see the slides here videos at emotionalapi.com you can sign up for my mailing list follow me on twitter and if you're curious about references to the studies i talked about there's this you can take a picture or just pull it off of the slide deck it's been wonderful talking to you