00:00:14.880
Good afternoon, everybody! This is the last talk before we adjourn to the lightning talks. Is there anybody here who is giving a lightning talk? Awesome! I'm excited to see your lightning talks; they're better because they require less intense preparation.
00:00:25.500
Today, I would like to talk to you about your careers. Who here has one career? You may have more than one, and that's okay, too. We’re actually not going to define career today, so thank you for the suggestion, but I feel it's a terrible idea to delve into definitions right now. Apropos of nothing, I have an eight-year-old boy at home. I was struggling to come up with a theme for my slides, and then one night, heading up these stairs to bed, I stumbled directly onto an idea.
00:01:07.689
But I should probably note that five years ago, I basically told the me of today not to do this. So let’s try to get this together and see how it goes. I very nearly retitled this talk 'The Five Existential Crises of a Senior Developer,' but recent world events have left my heart a little busted up, so I want you to know that this is actually a very hopeful talk before I start playing on your fears.
00:01:30.909
Alright, let’s talk a little about me first. I'm Brandon Hays. Here’s a conference speaker pro tip: you have to start by establishing your bona fides! So, I'm here to talk to you about career stuff. The thing I need to do is dazzle you with my flashy job title, but I want to thank The Frontside. Before I left, they graciously paid for my trip here—they’re an amazing front-end consultancy specializing in JavaScript-heavy, client-side applications like Ember.js, React, and React Native.
00:01:49.479
I’m not quite sure if I was good or bad at my last job; I loved The Frontside, but one day I realized that I literally couldn't do my job anymore. The thing is, running a company doesn’t mean you have one job; it means you have like a hundred jobs. Leaving a CEO position is bittersweet, but the good news is that I get to write an incredible journey about my time there. While I look forward to sharing that with you, it doesn’t tell the whole story. I haven’t just had one career—I’ve had a series of them.
00:02:21.570
So let me show you my impressive job history. Super awesome, right? I had a friend correct me and say, 'What you refer to as a career is actually a collection of careers.' And I was like, 'Okay, name that for me.' I mean, if there's a name for that, I would love to hear it. I actually think maybe language is failing us a little bit here because this is such a modern concept that many people navigate through their work lives like this now.
00:02:51.240
We’re going to talk about five existential crises today. An existential crisis is basically a situation where you wonder about the point of your present circumstances, right down to the level of your very existence. If you've never felt one of these, I’m so happy for you! But I'm scared for you—because it’s going to happen sooner or later, and it’s likely to happen at a stupid time.
00:03:15.540
Before I dive in, I want you to know that we, as an industry and as individuals, have some seriously broken assumptions that influence how we calculate our value and purpose as software developers. I’m going to discuss a lot of these existential crises and how they are caused by our broken calculators, giving us a distorted picture of what our careers should look like. But before we get into the reasons this happens, let’s explore each crisis chronologically.
00:03:49.320
I recently spent a week teaching at Horry School about a month ago, and my friend Tom dialed in at the week’s end to speak to the students about software in front-end development. During the Q&A, one student asked, 'What recommendations do you have for people trying to break into the industry?' and Tom was momentarily taken aback. His response was simply, 'It sucks, and I’m sorry.' And that’s been my advice to many people for a while—getting that first programming job isn’t much fun.
00:04:28.330
There are very few job postings looking for junior-level developers. Job postings often require 10 years of React experience and a Ph.D. in computer science just to even apply for a junior-level position! The natural response of a rational person is to think, 'That’s ridiculous; I don’t qualify for that,' and they move on. But the hyper-confident people who aren’t rational push on that door a bit more and realize it just can’t open for them under certain circumstances, which we’ll delve into later.
00:05:07.350
Then, when something does look good to you, you apply, and maybe you get that interview. For me, this was a remote pairing session with a VP at Pivotal Labs while trying to get my first developer job. I spent about 40 minutes trying to build a Set class in Java, which felt like attempting to build a house with chopsticks. In the end, the interviewer said, 'That’s going to be a no for us,' and I kept saying, 'Okay, keep at it.' But in my head, I imagined that the guy was really quite irritated with me for wasting his time.
00:05:34.630
So I went home and cried my eyes out. I talked to my friend Dave Brady about it, and he laughed, which made me really mad. I was like, 'Why are you laughing?' He clarified that this rejection was a normal and even critical part of the horrible process of becoming a software developer. While I don’t have a ton of tips for securing that first job, I guess confidence is key. So if you can borrow some confidence from a future version of yourself who knows how to do the job, you can get through this.
00:06:05.290
If you survive this and hustle hard, you finally land your first job. Congratulations! It’s going to be amazing—right up until you hit that next existential crisis. If you come from a coding boot camp or college, it’s a pretty jarring realization to discover you were basically left stranded in the woods with a pocket knife, expected to deliver in production without any support. You might wonder, 'Am I truly on my own?'
00:06:21.070
Why is your most senior developer only a few years ahead of you? Where are all the 20- and 30-year veterans? It’s just one of life’s mysteries, like where do socks go in the laundry? But there’s no time to dwell on that because we’ve got code to write! Then you run headlong into your next existential crisis. You begin participating in these communities and see these amazing, accomplished people, thinking, 'That person has a podcast, this one’s running a conference, and that one’s a world-class speaker! What am I doing with my life?'
00:07:02.740
How am I ever supposed to catch up to these people? How many people here are familiar with Why the Lucky Stiff? I hope it's a majority! If you’re not familiar, he was a very early proponent of Ruby, a mad artist and developer. In 2006, I actually used a snippet of a talk from him in my RailsConf talk this year. I’m taking a different snippet from the same presentation this year.
00:08:01.990
So here's a quick break, if anybody has felt like: 'Am I a real programmer?' It doesn’t help that there isn't a concrete definition of what a senior developer is supposed to be. We just slap on the term 'culture fit' to cover up the spaces where we’re unsure. I'm going to take a big detour into this later, but the problem remains that we don’t know what we’re trying to accomplish. We're unsure of how long it should take, and we have no idea when we can tell we’ve achieved something. These vague definitions are specifically formulated to fuel our imposter syndrome.
00:12:21.430
The reasons for this are, again, part of that broken calculator I mentioned, which we'll return to. So we keep coding, solving problems, learning new technology, and eventually, we find ourselves with a title that includes 'senior,' thinking, 'Mission accomplished, right?' For a while, it feels great. You’ve taken on the job, leveled up with technology, but after about 18 months or so, you start noticing the pace of learning is slowing down. This often kicks off a job cycle.
00:12:51.910
Let’s check in on your job tenure. How many people here have been in their job for over 15 years? It looks like nobody. Okay, what about 10 years? A few hands. Okay, how about five years? A few more hands come up. For anyone who’s been in their job for less than 18 months, that’s obviously a vast majority. The reasons for this vary, but from my conversations with developers, the cycle of diminishing returns is a significant contributor to burnout in both individual jobs and between jobs.
00:13:11.650
After a few trips on this merry-go-round, it becomes harder to derive satisfaction from your job. The last existential crisis should not really be happening at all; it’s the one that leads to a cumulative meltdown. It's the result of facing the earlier crises repeatedly, compounded by additional factors. This is the moment where a person gets so fed up with this cycle, along with the devaluation of their experience, that they bail out to move to a farm. Those of you who are newer to programming might chuckle at that, but those of you with years of experience probably resonate with that struggle.
00:16:42.490
You reach a point where your spirit is crushed and your soul fatigued—while you joined this industry because programming for a living was your dream job. So what the hell happened here? I mentioned earlier that our calculators are broken, calculating our purpose and value in this industry improperly. These broken tools stem from fundamental assumptions that skew our understandings of where our value lies.
00:17:06.720
Let’s look at some of those assumptions. The first problematic calculation is the compressed time frame we use to measure ourselves. There are countless reasons behind this, but it creates an extreme urgency to accomplish things quickly. It starts with a thought: 'I don’t see any role models here. There don't appear to be many people who have been in this industry for 15 to 30 years. Maybe the industry only lasts for 10 or 15 years, and since I’ve only been in it for 15 years, I better get good fast!'