Talks

SW Engineering and Mental Health are Not Mutually Exclusive

Ancient City Ruby 2019

00:00:12.519 Thanks, everybody! I’m so happy to be here. Thank you for having me; I feel honored to be part of your Ruby community.
00:00:22.160 So, let’s take it from there. I see we have the post-lunch crew here.
00:00:28.430 About two years ago, I was working as a back-end engineer at one of the fastest growing startups in New York City. I was living in Queens at the time, and my office was in Manhattan—shout-out to any New York folks! It was a distance of about four miles, which took a little over an hour to commute by train. So, it was an hour to get to work and then an hour to get back home.
00:01:01.370 One very uneventful morning, I got myself ready for work and jammed myself into this tiny packed train with hundreds of my fellow New Yorkers as we began our long journey into the city. A few minutes into the ride, I started feeling my heart race. I was shaking uncontrollably and felt absolutely ice-cold. I began hyperventilating; I couldn't breathe at all, and I started gasping for breath. I tried not to draw any attention to myself, but it was a little hard being on a jam-packed train. Suddenly, I got so dizzy that I was seeing stars, and I felt like I was about to faint. I was also about to wet myself.
00:01:40.009 Eventually, I couldn't see anything out of my left eye, which was probably not a good sign. I became absolutely nauseous and started uncontrollably dry heaving—very audibly—on the train. I felt trapped. We were in between stations at the time and I thought I might throw up. In that moment, I thought I was going to die on this train in front of all these strangers, all alone at the ripe young age of 26. That was my first panic attack.
00:02:02.920 As time went on, these attacks only increased in intensity and frequency. I was hoping that they would just eventually go away, but they never did. It was becoming part of my everyday experience. I was having multiple panic attacks a week, always triggered by the subway rides. Sometimes, I would even have multiple panic attacks a day. I really didn't want this to be part of my new personality—it wasn’t very flattering. So, I started reflecting. Why was this happening? How did I get to this point so quickly? What aspects of my everyday life were triggering this?
00:03:07.300 After some reflection, I realized that I felt anxious in meetings. I often felt like I had nothing to contribute to the group. As an API engineer in a team of mostly men, I didn’t see my perspective as valid. I felt extreme pressure to meet aggressive deadlines and didn't push back when they felt overwhelming, thinking it was because I wasn't good enough. I thought, obviously no one else was saying anything, so it must be me. I began working at my desk during lunch and stopped taking breaks at work. I was petrified of being the cause of downtime or of releasing bugs.
00:03:35.210 So, every time we went to deploy something, I would have a full-on panic attack. I started using my weekends to catch up on work I felt behind on, working late to catch up. I kept my computer and Slack open all the time because I felt it was expected of me to always be available. I didn't want to miss a Slack message, an email, or a call. The sight of my computer was making me increasingly anxious, and eventually, I reached a point where I just didn’t want to code anymore. This was something I had really enjoyed and was passionate about, yet I found myself not wanting anything to do with it. I didn't even want to look at my phone or screens for fear of what messages would be waiting for me.
00:05:17.550 I started isolating myself from my friends and family. I canceled plans all the time to do work and to catch up. I kept getting physically sick, starting to experience migraines, which were a new thing for me. The anxiety had me throwing up sometimes at work and at home. I dealt with heightened anxiety every time I had to look at code or any type of work. It got to the point where I was just really ashamed. I thought it had to be me—no one else feels this way, right?
00:06:02.670 I felt like I couldn’t handle the fast-paced environments that the coding world presented. I was having a physical reaction to anxiety, telling myself that I definitely wasn't good enough to be there. I felt useless, burnt out, stressed, and incredibly alone. But slowly, I began to change my perception and started digging myself out.
00:06:36.250 I sought out a therapist and began meeting with them weekly. I still do. I learned about panic attacks, anxiety, depression, and imposter syndrome. Eventually, I began taking antidepressants, and they helped me start feeling better. I was able to get my blood pressure down to normal levels.
00:06:47.500 I began to talk more openly about my anxiety with my friends, family, and team. To my surprise, I discovered I was not alone. Many of my peers, even people I looked up to at work, were experiencing similar feelings and pressures. I then started evaluating why it's so common for us to overlook our health and wellness. Why are we, as developers, sometimes afraid to push back for the sake of our own well-being and self-preservation?
00:07:25.360 I discovered it could be stressful to write software, and discussing it can be difficult. I dug deeper and came up with a couple of hypotheses. I attributed stress in software to two main things: the portrayal of software developers in modern media, and the startup and software engineering cultures that are becoming more prevalent.
00:08:13.000 If we start with the portrayal of our fellow computer professionals in media and film, there are two main characters we often see: the anti-hacker human type hybrid who is an extension of the machine itself, and then there's the socially awkward geek type. The first character is always coding, robotic in nature, possessing genius-level intelligence. They usually have stimulant addictions and are portrayed as antisocial. A good example is Mr. Robot, where the character essentially loses their human characteristics and becomes more machine-like.
00:08:53.730 On the other hand, the geek type is highly intelligent but struggles with social skills. In works like 'The IT Crowd,' we see characters that fit this stereotype. These caricatures can act as barriers to inclusion in our community; as the industry diversifies, it’s important to consider how these images shape perceptions in technology.
00:10:15.350 It's also very rare to have depictions of women in these fields, which can have a significant impact on the under-representation of women in technology. In a study at the University of Washington and Stanford, participants were asked to describe what a computer scientist looks like. The responses reflected media portrayals and reinforced that obsession with computers is a common stereotype.
00:10:46.750 One female participant pointed out, 'I'm not obsessed with computers. I don't dream of coding like they do. Why would I want to pursue a career in computer science or technology? I don’t see myself there.' These responses mirror the stereotype. In another phase of the same study, participants read an article with a stereotype, which found that computer science continues to be associated with geek types, while those who read a non-stereotyped article, which showcased more diversity, rated their interest in computer science higher.
00:12:09.740 Lack of representation in media limits diversity in software engineering, and these types of images can stigmatize us within our community and professional environments. One piece I found during research asked if programmers have feelings. The implication of these depictions suggests a lack of emotion in the stereotype of programmers, implying they're not truly human.
00:12:43.380 In the industry, there’s a narrative that programmers are expected to work long hours and that they do it out of sheer joy. This cultural expectation can also be alienating, as though programmers are machines themselves, always on, and never needing rest.
00:13:27.020 I’ve experienced the pressure of companies who promote a "move fast and break things" culture. Coming from the Facebook revolution, these ideas encourage shipping software quickly, often resulting in lots of technical debt and systems breaking down. Some companies prioritize rapid development over proper system improvements, which can lead to unnecessary and dangerous consequences.
00:14:03.180 As a developer, it’s essential to ask ourselves: are we really breaking the right things? Stress in our everyday lives can be tied back to the unrealistic expectations set by such cultures. We need to evaluate what it means to work in tech and address the pressure we feel from the narrative that emphasizes quantity over quality.
00:15:11.710 As a community, we can work together to promote healthier work-life boundaries. We should encourage safe environments where developers can thrive, a space where we can prop each other up instead of tearing each other down. Mentorship can be a key aspect of this process—showing newer developers a healthier vision of what it means to be an engineer.
00:16:35.360 As we move towards more positive representation in media, we can see the emergence of stories showcasing individuals of color and women in coding roles. We’re starting to see more friendly, approachable narratives that aren’t solely about the stigmatized ‘hacker’ image, nor showcasing people in dark environments coding alone.
00:17:14.590 We can support ourselves by pursuing self-care practices like journaling, meditating, yoga, and ensuring we get enough rest. Even if deadlines loom and work pressures threaten, prioritizing self-care is crucial.
00:18:08.730 In the workplace, I encourage us to automate tools and streamline processes. Implementing efficient systems can significantly reduce stress, making deployments safer and happier. Building robust testing suites can also be beneficial, and utilizing feature flags lets us decouple releases from deployments.
00:19:23.380 As developers, we should advocate for good practices and procedures. Holding retrospectives that focus on improvement over blame creates healthy environments where we can constructively address issues.
00:20:05.690 Let's embrace the idea that it's okay to say no sometimes. We don’t have to overwork ourselves or prioritize every single request we receive. If something truly is an emergency, being treated as such will help us manage our time and energy better.
00:21:09.020 A supportive community is critical—a place where we can lean on one another when needed. Mental health can be a concern that we address openly, creating a more inclusive environment for all.
00:22:00.230 Let’s aim for a healthier work/life balance, advocating for mental wellness and self-care, and reminding ourselves that it’s perfectly fine to take days off and recharge. The need for balance is vital in today’s tech landscape.
00:23:22.670 We must foster conversations around mental health in our workplaces and promote healthier behaviors among colleagues. Engage with your team; invite those who may seem withdrawn to share lunch or a walk. Little gestures can go a long way in making someone feel valued and included.
00:24:39.400 At the end of the day, remember we are all in this together. I encourage everyone to reach out, talk to one another, and seek help if you need it. Let's support each other through the ups and downs that come with the world of software development. Thank you for your time, and remember to take care of yourselves and each other.