The team is pushing hard, sprinting towards a launch date. You've been staying late at the office for the past few weeks, submitting pull requests all hours of the night. So has everyone else. Feature creep seeps in, and more user stories and tasks and edge cases make their way onto the “must haves” list for launch. As the launch date approaches, people start to scramble and push hacky code — they'll clean it up after launch, they say. And then the launch date gets pushed back to accommodate the new must-haves, extending the sprint indefinitely.
You push back your plans to meet up with friends or spend time with your family — you tell them, I just have to get through these few weeks. And you believe it — you just need to get through this stretch, and then the stress will go away.
The launch date comes and goes, and then there are bugs to fix. Maybe a breather for people to get some rest, but then it's onwards to the next shiny new launch. The cycle begins again, and you find yourself right where you were before.
It's easy to see stress as external events that you're not in control of, but here's the thing about stress:
Stress is not something that happens to you — it's your reaction to challenges, and it can be managed.
Understanding this is important because as your career progresses, potential stressors won't go away (even if there is brief respite after a big launch) — rather, they will just build on top of each other. As a junior engineer, the potential stressor might be getting stuck fixing a bug. As a mid-level engineer, it might be juggling priorities and managing your time. As a senior engineer, it might be making critical technical choices that you're not sure about. As a tech lead, it might be getting other teams onboard with what your team has built. As a manager, it might be hearing about everyone's problems and not know how to fix them. As a director, it might be not knowing how best to support the managers reporting to you.
Here's another example of how potential stressors will only increase — a few years ago, I was part of a small group of engineering leaders who would often discuss people-related challenges and communication breakdowns. Someone pointed out that with a team of almost 60 engineers, if each engineer only had one week per year where they were in some sort of crisis mode, as an engineering leadership team, we would be dealing with someone's major crisis every week.
Recognizing that the general trend of potential stressors will only increase requires people to reframe how they handle stress. Often, we simply tolerate stress to get through it. Each crisis seems like its own exception, until you realize you are spending each and every day fighting fires.
Given the chaotic and ever-changing nature of our work, with potential stressors building on top of each other, how do we do our best work and take care of ourselves? Here are a few general tips I've found useful for myself and my coaching clients.
Metabolize stress
Instead of just tolerating stress and getting through it, reframe your mindset into metabolizing stress. If you simply tolerate it, your career becomes more and more painful as you tolerate more and more. Stress is not something that happens to you. Stress is your body's emotional response to challenges, and if you can metabolize stress, you can take the stressors, break them down, and use them as fuel for what you want. If your capacity to metabolize stress increases as your career progress, you grow stronger as an engineer and a leader.
To start to make this shift to thinking about metabolizing stress, consider some of the situations you're in that feel most stressful or difficult. To focus on what you are actually in control of, ask yourself these questions:
- What can you learn from the situation?
- What are you holding onto that you can let go of?
- Where are you making things more difficult for yourself?
- What is the best use of your time?
- What is actually in your control?
Take care of yourself
When managing new grads, I noticed that a lot of them struggled to plan for and take vacation. In school, your breaks are set, so you don't need to take any initiative to carve out time to take care of yourself. Similarly, it's perfectly normal to pull all-nighters to finish a project or problem set and then crash afterwards — once you hand it in, you'll never see it again.
Software unfortunately doesn't work the same way — pushing something to production is just the beginning, and I've seen engineers (not just junior ones) sprint hard to that finish line, only to realize there's no finish line at all.
You may get lucky and get a manager who notices you haven't taken any vacation in two years and tells you to take some time off, or a manager who coaches you through how best to manage your efforts so you don't burn out. But your manager has thirty other things on her mind — if it gets to that point, you've also gone two years without taking time off.
The most reliable way to not find yourself in that situation is to recognize that you're the person who can best advocate for yourself, set boundaries, and communicate them clearly.
That might look like deciding on a time to leave the office, communicating it clearly, and sticking to it. Or it might look like taking a day or two off if you worked late or on the weekend to hit a critical deadline. It might look like turning slack notifications off on your phone and letting people know alternative ways to contact you in an emergency.
Whatever taking care of yourself means to you, you're the one to do it.
Find an anchor through chaotic times
In the relentless chaos of production fires, ever-changing product strategy, and ambiguous communication, it can feel like you're in the middle of a storm, being flung around with no control over what's next.
Ask yourself,
“During this period of transition and change, what's most important to me in how I navigate this time?”
What's most important to you depends on a lot of things — your values, what you want to get out of your time at the company, your relationships with the people around you, etc. Having a simple statement of what's important to you will ground you in what you are in control of, regardless of what happens that you're not in control of.
Your anchor might look something like, “I learn as much as I can,” or “I do right by the people I work with,” or “I set and communicate priorities clearly,” or “I'm able to execute and build technical expertise,” or “I build relationships that I can take with me to my next role.” It's personal to you — but what's important about it is that it's something you're in control of, and that if, at the end of the day, you feel like you've done your best to live by it, you will be satisfied.
Having a statement like this is a fantastic way to metabolize stress, because it allows you to let go of the things you can't control. Rather than being a piece of driftwood thrown around by waves, you can become a boulder — aware of the crashing waves, but grounded in knowing what's important to you and what you want.