Software Engineering

Summarized using AI

Keynote: Meditations on Software

Vaidehi Joshi • May 17, 2022 • Portland, OR

In her keynote at RailsConf 2022, Vaidehi Joshi explores the theme of burnout in the tech industry and its impact on engineers. She uses her personal experience and reflections during a 67-mile hike on the Wildwood Trail in Portland, Oregon, to illustrate her journey. Joshi emphasizes the importance of curiosity and joy in a programmer's work, acknowledging how burnout often diminishes these feelings. Throughout her talk, she outlines several key points:

  • Career Development: Joshi narrates her journey from writing her first lines of Rails code to experiencing burnout in a leadership role, highlighting the evolution of her interests over the years.
  • Burnout Explanation: She provides a detailed account of her burnout experience, noting the signs she missed and the resulting emotional and physical toll. She describes burnout as a syndrome caused by chronic work-related stress, and emphasizes that it is not a temporary state but one that lingers.
  • Contributing Factors: Joshi discusses how her imposter syndrome contributed to her exhaustion and stress, explaining that her desire to prove herself often led to an unsustainable work ethic.
  • Recovery Process: After recognizing her burnout, she takes four months off, during which she reflects on her experiences, engages in joyful activities, and contemplates how to avoid future burnout.
  • Importance of Curiosity: The talk centers on the idea that curiosity is vital for a fulfilling career in technology. Joshi asserts that nurturing curiosity can help maintain joy in work amid challenges.
  • Strategies for Avoiding Burnout: She concludes with strategies for protecting curiosity and addressing burnout, including paying attention to personal well-being, maintaining work-life boundaries, and understanding the long-term nature of careers.

In essence, Joshi's keynote serves as both a personal narrative and a call to action for engineers to prioritize their mental health and stay curious about their work, which can help them navigate the complexities and challenges of their careers while fostering joy.

Keynote: Meditations on Software
Vaidehi Joshi • May 17, 2022 • Portland, OR

Keynote: Meditations on Software by Vaidehi Joshi

RailsConf 2022

00:00:00.900 foreign.
00:00:12.500 So, if I'd hate Yoshi and I first met years ago, we actually met at Ruby on Rails in 2016. I know this was mentioned the other night as well. Ruby on Rails, they're going to have to do a reunion at some point.
00:00:31.439 Vaidehi is an engineering manager at Vimeo. She's also the creator of BaseCS and BaseDS, two amazing writing series that dive into computer science and distributed systems fundamentals. Her content is always incredibly engaging and super accessible; I highly recommend it. So without further ado, help me welcome Vaidehi!
00:01:04.559 Hello, RailsConf! Okay, listen, they gave me the end of the day slot. I don't think I had a say in it, so I'm going to need your help. Hello, RailsConf!
00:01:22.979 Yeah, that's better. That's better. Okay, cool. Hi! My name is Vaidehi.
00:01:35.280 I'm so honored and really humbled to be here with all of you today. There have been so many wonderful talks over the last few days, and I'm really grateful that all of you stuck it out and made it to the end.
00:01:49.079 And you chose to be here, so thank you.
00:01:57.780 So, as Allison mentioned, I'm an engineering manager at Vimeo. Look at my amazing co-workers! It's lively here, supporting me. They're a wonderful group of folks to work with. We all work on Rails and love it; it's a great team.
00:02:20.819 I actually wanted to start today by saying that this talk is grounded in a very specific place: right here in Portland. On the west side of our city, there's this massive urban park called Forest Park.
00:02:39.000 It’s actually one of the largest urban forests in the country. It has around 80 miles of trails, and this talk is grounded on a very specific trail in that park, which is called the Wildwood Trail.
00:02:51.780 Now, something you should know is that this is not one of those trails that has a grand viewpoint at the end. It's more of an out-and-back trail; there's no destination you're walking toward.
00:03:12.780 The trail winds its way through the forest, making it a really long walk in the woods. Last summer, over the course of a few days, I hiked this trail from one end to the other and back again.
00:03:26.900 All told, I logged around 67 miles, and today I'd like to offer you the story of what brought me to this place and some of the things I learned along the way. But in order to do that, I need to rewind a bit to about eight years ago to 2014.
00:04:00.540 That was the year that I wrote my very first lines of Rails code. I attended a Rails Girls event in Athens, Georgia.
00:04:12.360 For those of you not familiar, Rails Girls is a global non-profit community that runs one-day workshops aimed at introducing women to technology, specifically through Rails. My memory of that day is a bit blurred; the entire experience was a whirlwind.
00:04:36.000 But there's this one moment that really stands out from that day: the moment I created an object in the Rails console, refreshed the page, and saw that data rendered in the browser. I was hooked.
00:04:55.620 Admittedly, I didn't know anything about web development at that time. I think I was just typing whatever the tutorial told me to type, but that moment when I got the data rendering on the page—it was a delightful feeling. That feeling had me hooked, and I wanted to keep on chasing it.
00:05:14.040 I wanted to know what else I could build with this framework and how to build those things. I signed up for a boot camp called the Flatiron School.
00:05:37.740 This was very exciting for me, and I jumped headfirst into learning Ruby on Rails. Since we're all friends here, I'll admit it: I learned a little JavaScript too.
00:05:49.500 By the end of that year, I had my first job in the industry. Within a couple of weeks of working, I was merging code into production, and I couldn't even believe I was getting paid to do this. I remember being so excited when one day, I got some JSON rendering in the browser; I was excited enough to yell it out into the depths of the internet and share my delight.
00:06:27.240 That feeling again—the Glee of getting something to work the way you wanted it—motived my early career. Over the next few years, I found that feeling in many places: every time I saw a feature I built go live, when I figured out a bug, optimized a SQL query, paired with a co-worker, and learned something new.
00:06:37.800 Or when I went to a tech conference to watch someone explain a new concept I had never heard of before.
00:06:47.100 There were certainly days that were hard, where I felt stumped and didn’t feel smart enough to understand something. But the days where I was having fun—debugging, pairing, and figuring out how to make something work—those days overwhelmingly outnumbered the bad days.
00:07:13.020 I was learning a lot every single day at work, and when I was having fun, time flew by. The best days were when I'd get into that flow state and really focus on solving a problem. Those were moments of pure joy for me.
00:07:32.400 Over the first few years of my career, I chased that feeling as much as I could. I was eager to deconstruct every new thing I learned about—how things worked under the hood. I wanted to pick things apart. It felt like my job was a puzzle. Every day, I'd go to work motivated to put the pieces together and try to solve it.
00:08:02.400 As I grew and evolved as a programmer, my interests evolved too. For a while, I was really interested in computer science, then I got kind of obsessed with Rails framework internals, and then I really wanted to learn about distributed systems.
00:08:29.039 I let my interests lead me and explore new things, which helped me cultivate a kind of joy in my work. About six years into my career, I found myself drawn to something completely new that I hadn't been interested in before.
00:08:56.640 At this point, I had worked at a handful of different companies, built plenty of features, and even led a couple of projects of my own, but I kept coming back to the socio-technical aspects of software development. I wanted to learn more about how to get multiple engineers to work together to build things.
00:09:19.320 What does it mean to grow a team of engineers, and how do you empower them to work effectively? So, I let my interests lead me again and ended up joining a growing startup that was hiring senior engineers who were interested in leadership roles.
00:09:41.000 I started off as an individual contributor on that team and eventually moved into a hybrid tech lead-manager role a few months later. The first few weeks of this new role were really energizing; there was so much to do and so many places where we as an organization could improve.
00:10:07.860 Because this company was growing and evolving quickly, there were also plenty of pain points in our processes and structure. I saw ways that we could definitely make things better, and perhaps most crucially, I felt that as someone in this leadership position, it was my job to try to fix it all.
00:10:35.040 I dove right in to help. I took on a ton of responsibilities: overhauling our product development process, writing tech specs, committing code, and figuring out what it meant to be a new manager. In hindsight, it's clear to me now that this was way too much for one person to do.
00:10:57.180 At that time, I was so consumed by the adrenaline of a new role and all of these new responsibilities and expectations that I couldn't see this. My self-awareness was clouded, and as a result, I missed the signs that something was wrong. I didn't see that what I was doing was a little unsustainable.
00:11:22.560 It started with me just working a few extra hours here and there. I told myself this was just a hectic week, and I would just get through this week, and it would all calm down. But it wasn't just that week; there was always something else to do.
00:11:54.540 I felt like I was carrying a stack of books, and with each week and each newly encountered problem and commitment I took on, more weight was added to my pile. I kept on thinking that it was okay for my workload to grow; I could handle this. I just had to get through this hectic month.
00:12:15.600 So, after a few months of doing this, my psychological, emotional, and physical state steadily deteriorated. I ended each day feeling exhausted and completely drained, and I had stress dreams about work. I'd wake up in the middle of the night agonizing over something I had tried to do the day before.
00:12:42.600 I dragged myself to work in the mornings. Taking days off didn't help much; a long weekend just ended with me on Sunday night dreading having to log on the next morning. And of course, a full year of pandemic life didn't help either.
00:13:03.840 But I ignored all the signs my body was giving me. I thought I could power through them, and eventually, I became really cynical and jaded. I was pretty unhappy and probably a little depressed. I was disillusioned with the direction the company was going in and the product we were building.
00:13:34.680 I felt ineffective, hopeless, and questioned what I was doing there and whether it meant anything. When I started that job, I was optimistic, thinking, 'Oh, I can do this,' and then that turned into 'I need to get through this.' When it got really bad, it evolved into 'I hate this.'
00:13:51.540 I was so optimistic and full of hope when I started, but as time went on, I devolved into an incredibly pessimistic person. That person might have been the worst version of myself. To be honest, the hardest part about writing this talk has been having to go back and put myself in her shoes and try to remember what it was like to be in that place. It was not a good place, and I would never wish it upon anyone.
00:14:17.760 Eventually, I picked up on what was going on. A couple of friends raised flags—thank God for good friends—and I did start to see what was happening. I began listening to these signs.
00:14:29.760 I asked to drop some of my leadership responsibilities, scoped down my role, and promised myself that I would only work 40 hours. I didn't want this to get out of hand.
00:14:46.580 But at that point, it was too late. Even with all those changes I tried to make, I didn't feel proud of my work anymore. I didn't feel optimistic about the impact I could make on the organization. Trying to power through all of that had irreversibly shaped my perspective, and in my case, at least, there was no coming back from that.
00:15:07.080 After a year and a half, I left that company with no job in hand and honestly no plan for what was next. That was something that was a privilege I was fortunate to be able to do.
00:15:30.480 Now, some of you might recognize this narrative arc for what it really is: burnout. Burnout is a term we've probably all heard a lot in the last two years. It’s officially defined as a syndrome that results from chronic work-related stress.
00:15:51.840 I used to think the definition meant that burnout was just a bad day, a bad week, or a rough couple of months. But after I experienced it myself, I realized this definition doesn't really convey how long burnout lingers and how long it'll continue to affect you.
00:16:14.700 Even after I quit my job, I didn't feel like my old self. That delightful feeling, that spark, that joy—it was gone.
00:16:22.980 In fact, it had been so many months since I had felt that, since I'd even felt truly excited about my work, that I wasn't even sure how, when, or if I would even get it back.
00:16:38.760 I was worried that if I didn't get myself out of that cynical and pessimistic mindset, I might not ever enjoy building software again, and that was a really scary thought.
00:17:00.360 So instead of jumping back into code, I took four months off, which again was such a privilege. I feel very fortunate that I could do that. During that time, I rode my bike, picked up painting again, cooked, read, sat in the sun, listened to the birds, and looked at the trees.
00:17:24.360 I recommend all those things. But mostly, I spent a lot of time by myself in quietude, with no code to write and no job to go to. I had the space and time to do things purely for the joy of doing them.
00:17:35.280 That is how I found myself on the Wildwood Trail last summer. I decided I'd walk the entirety of it for no other reason than for the fun of it. Walking those 67 miles became a kind of meditative practice for me.
00:17:53.880 I had a lot of time to try and reflect and answer two really important questions for myself: first, how did I burn out? Second, how could I make sure that I didn't end up in that place again?
00:18:15.600 As I tried to answer these questions, I found myself going back to that first year that I started programming, that same year that I wrote those first lines of Rails code.
00:18:42.540 You see, up until now, I've kind of painted this rosy picture of chasing joy, but there was also something else lurking beneath the surface. Let me introduce you to it: meet my imposter syndrome.
00:19:03.859 It's that little voice that tells me I don't actually know anything about programming and that it's just a matter of time until someone finds out. After all these years, I've dealt with my imposter syndrome by putting it in a little box and pushing it away. I learned to live with it, but I didn't confront it.
00:19:22.079 Even when I ignored my imposter syndrome and compartmentalized it, it was always there, simmering beneath the surface. In fact, it's actually here today, right here with me on stage as I give this talk.
00:19:44.040 So, as I walked that Wildwood Trail, I started to think about that imposter syndrome. I realized that even though I hadn't confronted it, it had been there the whole time.
00:19:54.040 I realized that no one had ever told me to work so hard at my job. No one had ever said that my role was at risk if I didn't finish that feature.
00:20:06.960 No one told me the company would collapse if I didn't write that text back. So what made me feel like I needed to do all of that? For someone who loves to deconstruct code and figure out how things work, I had never taken the time to deconstruct what was going on inside of me.
00:20:21.540 When I really pushed myself to ask how and why I ended up here, I realized that my imposter syndrome had been working behind the scenes the entire time.
00:20:46.320 It looks cute, but every hard and intimidating thing that I had done in my career was just a tiny bit fueled by this desire to prove myself, to prove that I belonged in this industry.
00:21:04.080 On one hand, my insecurities were responsible for motivating me to do the things I thought I couldn't do. It's neat to see a negative emotion lead to positive outcomes.
00:21:24.060 But the flip side is that my desire to prove myself led me to have a chip on my shoulder, and the side effects of that were decidedly less positive.
00:21:41.880 Those same insecurities were the emotions that pushed me to burn myself out too. My imposter syndrome convinced me that by pushing myself so hard and long, I could prove I could do the job I worked so hard to get.
00:22:01.560 Learning this about myself gave me the tools to address and untangle this way of thinking. Once I understood what led me to burnout, I started feeling more optimistic that I could avoid it a second time.
00:22:17.940 That's when I finally felt ready to dip my toes back into work again. About nine months ago, I started a new role.
00:22:36.300 But when I started this job, I wasn't hopeful and optimistic. I was cautious. Even after all this time away, the cloud of burnout still hung over my head.
00:22:56.900 And that cloud changed the type of engineer I was too. I was more hesitant to speak up in meetings, to lead projects, to voice my opinions.
00:23:16.920 I was worried that if I did those things, I'd get too invested and overcommitted and fall back into those same unhealthy patterns.
00:23:37.800 One day, I was struggling with a Rails API. I spent half an hour trying to understand how it worked with some nested React components, and then after struggling for a while—it happened.
00:23:55.680 I got some data rendering on the page! You guys know how I feel about this! There it was: that delightful feeling, oh, it was back.
00:24:10.380 It put a smile on my face. I was just sitting in my office, by myself, grinning. That was the moment I really started to come out of that burnout.
00:24:31.740 After that, I started to find that spark of joy in other places. After that, I started waking up in the morning thinking about the problem I was going to solve that day.
00:24:56.820 I felt more engaged at work. Pretty cool, right?
00:25:08.280 This led me to be more interested in what I was doing. I started speaking up in meetings, sharing my ideas, and eventually, when an engineering manager role opened up at our organization, I raised my hand.
00:25:24.180 With a lot of support and encouragement from my own manager, I said, "I think I can do that again."
00:25:40.680 In the last year or so, I've had so many conversations with friends in the industry about what it feels like to experience this thing. I've lost count of how many blog posts, tweets, and articles I've encountered in the last couple of years.
00:25:59.760 Everyone experiences burnout a little differently, but there are a few common threads through folks I've talked to and things I've read.
00:26:10.920 Burnout causes us to lose meaning and motivation in our work. We start to get disillusioned with what we do, and sometimes we even begin to loathe it.
00:26:29.100 In its worst form, burnout makes us question whether we even want to continue doing this work. I will be the first to say that burnout pervades across many different industries, but it certainly seems on the rise in tech.
00:26:51.900 Because burnout can manifest so differently for all of us and can be caused by a variety of factors, I don't think I can profess to tell you what contributes to burnout in tech. But I do think there are some truths about building software that are contributing factors.
00:27:10.560 Software engineers aren't like other engineers who can design and create something they can hold in their hands. There was a time when you could hold your software in your hands, but that definitely predates my time as a programmer.
00:27:31.380 We're also not like architects who design structures, oversee how they're built, and get to walk through their work and exist in the spaces they created. Software engineers' work is decidedly a little different; what we build is much more ephemeral.
00:27:52.440 In fact, there's no guarantee that the code we write will even be shipped. We implement features, architect solutions, and invest effort into tech specs with dreams of automating processes.
00:28:13.620 Sometimes we execute and see things through, but other times those projects get de-prioritized and die before being fully realized in production. Sometimes they get torn out of the codebase and tossed aside, often due to circumstances beyond our control.
00:28:29.040 When our code does survive, it's likely not going to last long. We either end up refactoring it, or someone else comes along and refactors it for us.
00:28:41.520 Of course, the exception is if any of you have written COBOL code in the last sixty years. I have good news for you; your code is alive and kicking, apparently.
00:28:59.160 But beyond the artifacts of what we build, the building itself can be hard. The tools we use keep changing, and the list of things to learn grows, especially if you do front-end development.
00:29:14.700 It can be hard to keep up with all of it, and it’s easy to doubt yourself and your ability to do the work.
00:29:35.880 The work is never really done, is it? There's always more to do, and we're all just trying to keep up with it. Studies show that overwork and long hours don't do us or the company any good, but many feel they need to put in more time and effort just to keep up.
00:29:51.160 If you're familiar with Agile or Scrum, you might have heard the term 'Sprints.' It's a phrase used to describe a fixed length of time that just repeats over and over.
00:30:05.400 I don't know; maybe this idea that we're all collectively and continuously sprinting towards something has something to do with why we feel overwhelmed by our work.
00:30:20.860 These are just some realities of what it means to build software today. When you couple those realities with dysfunctional workplaces, unclear job expectations, and a lack of social support, those realities become harder to accept and grapple with.
00:30:38.520 Ultimately, all human beings want and need to feel purpose and value in their work, and that brings me back to that delightful feeling.
00:30:50.700 I've been calling it joy, but perhaps an even better word for it is curiosity. I think it's this curiosity that counteracts some of the other realities of building software.
00:31:07.320 The good news is that we all have that spark of curiosity within us. It’s probably that spark that got many of us into this field.
00:31:24.540 Human beings have evolved to be curious; we're hardwired to seek out information and try to make sense of it. The science shows that when our curiosity is piqued, the part of our brain associated with rewards starts to get stimulated.
00:31:38.100 In that moment, our brains get this hit of dopamine, putting us in a state that improves our ability to learn. That spark of curiosity gives our work meaning.
00:31:53.460 It gets us through hard days when a piece of code just doesn't make sense. It motivates us to power through hard bugs. It's probably what compelled many of us to travel long distances to be here for three days of learning together. Curiosity is what keeps us going.
00:32:15.540 What sparks curiosity for me will be different than what sparks it for you. Over time, the things that spark your curiosity will change, and that’s okay.
00:32:38.160 Recently, the moments that have brought me joy and made me feel curious are when I see the engineers on my team flourish and grow. I feel that delightful feeling when I pair with an engineer on my team and see their eyes light up with understanding.
00:32:57.360 I feel joy when I'm helping figure out how to level up that engineer and find the perfect project that's going to help them get there. I get that feeling when I watch the quiet engineer on my team speak up and share their perspective in meetings.
00:33:15.540 Curiosity can keep us afloat through storms. When we're curious about what we do, it's easier not to get bogged down by the harder realities of our work.
00:33:34.320 You start doing things just for the joy of it, and that can help the more challenging issues fade away. We owe it to ourselves to try to protect that feeling of curiosity as much as we can and try not to lose it.
00:33:56.040 Because once we lose it, I can tell you from experience, it’s a long road to get it back. It’s possible, but it’s painful too.
00:34:10.620 How can we protect our curiosity? I'm sure there are many ways to go about it, but while meditating on my own experiences, I’ve realized there are a few things I’ve started doing that have helped me guard my curiosity.
00:34:19.560 First off, I'm trying to pay closer attention to my body and mind and the signs they send me. I think when we're consumed by our work, excited to do something, it's easy to lose ourselves in the adrenaline.
00:34:37.680 There's a slippery slope where we lose our self-awareness and push ourselves to produce and sprint through our never-ending lists and backlogs—but we're not machines; we're humans.
00:34:50.700 The signals our bodies send are the canaries in the coal mine; they're often the first sign something is wrong, and it's crucial not to ignore them.
00:35:10.320 I'm also trying to do a better job of remembering that I have agency over my life. It’s easy to blame every part of our burnout on companies, organizations, and managers.
00:35:25.800 And to be clear, that’s not to say there aren't toxic and unsupportive companies; there really are. Sometimes, the best way to protect your mental health and guard your curiosity is to leave those situations.
00:35:41.400 It's also essential to remember that quitting a job can be a patch—a hotfix for burnout. Yes, it helps put out the fire, but just like in software, there’s no guarantee that fire won’t come back.
00:35:57.240 I've learned that no company is perfect, and there are fires of different sizes everywhere. You can’t avoid it forever; it's critical to conduct a proper postmortem on what led you into those tough situations.
00:36:15.840 When I reflected on my burnout, I saw how my imposter syndrome contributed to it. I think once you can identify and name a thing, you have power over it.
00:36:30.540 Understanding how I burnt out is what gave me the confidence that I might be able to avoid it in the future. Introspection is a form of root cause analysis; it allows us to learn from painful experiences to do better in the future.
00:36:48.840 Finally, I'm trying to teach myself to decouple my sense of self from my work. I think this is probably the hardest thing to do, but I believe it's the most poignant.
00:37:09.000 Given the last two years, it's been easy to blur the lines between work and life. Work is one part of life, but it is not everything.
00:37:23.160 As programmers, we often pour ourselves into what we do. We get sucked into a specific problem we're solving or a feature we're building, and if we do that too much, we risk intertwining our sense of self with our work.
00:37:49.920 When that happens, our identity and work become dangerously intertwined. I'm reminding myself that careers are made up of different jobs, but careers themselves are bigger than these jobs.
00:38:06.240 Something that’s helped me reframe my perspective is a blog post from Kate Houston entitled being the DRI of your career. DRI stands for directly responsible individual. She explains that we should all expect less from our jobs and more from our careers.
00:38:27.660 I think this is a wonderful sentiment—perhaps the healthiest perspective on work I've ever come across. Jobs come and go; work evolves and changes, just like the things we're curious about. Careers, however, are bigger than all of that.
00:38:55.920 We think of careers as having peaks, but they’re often false peaks. Even when we get that dream job, build that amazing product, speak at a conference, write that blog post, or IPO that company, each of us will find ourselves on the other side of that goal, trying to figure out what comes next.
00:39:16.320 Careers continue well beyond those moments. If we can remember this, it becomes easier to cultivate detachment from these false peaks.
00:39:39.120 I've come to realize that careers are actually a lot like trails in that way. In fact, I'd say that a career might resemble the Wildwood Trail.
00:39:59.080 When you start on this trail, you don't exactly know what to expect. You can't always see where you're going. There are many curves, bends, ins, and outs, and there are unexpected surprises along the way.
00:40:17.360 There are moments that are steep and slippery—times you must dig deep to climb up something and overcome it. There are ups and downs, but also steady stretches without a view at the end.
00:40:36.000 Along the way, you see things that shape your perspective and inspire wonder. These days, I'm trying to think about my own path in tech a bit like that trail.
00:40:51.200 I like to think that staying curious about what lies around the next bend is a good enough reason for me to keep going. That’s my wish for all of you, too.
00:41:06.080 I hope that each of you can take the time to reflect and care for yourselves in whatever way you need. I hope you can find whatever sparks your curiosity and delight, and that you hold on to that feeling and keep it safe.
00:41:24.840 Most of all, I hope that whatever path you're on, every single one of you just keeps on walking. Thank you so much!
Explore all talks recorded at RailsConf 2022
+68