How to Stay Resilient in a Difficult Engineering Job
Seven strategies for staying intact when your engineering job drains you, adapted for developers dealing with on-call pressure, toxic environments, and ...
Bad engineering jobs drain you in specific ways.
On-call rotations that leave you dreading your phone buzzing at 2am. Code reviews where the feedback is about power, not quality. Managers who measure productivity in commits and story points. Teams where nobody has your back and everyone is protecting their own territory.
The standard advice is to quit. Good advice when you can take it. But leaving takes time. You need a job hunt strategy, savings, maybe a visa that ties you to the employer. In the meantime, you still have to show up every day without letting the environment hollow you out.
Andi Roberts, an executive coach who works with people in high-stress jobs, wrote a framework for staying intact in difficult work situations. His core reframe: resilience is not about toughing it out indefinitely. It is about staying flexible, preserving agency, and keeping the ability to decide what comes next while staying functional now.
Roberts lays out seven strategies. I have adapted them here for software engineers, because the damage a bad engineering job does is specific, and the survival tactics need to be too.
1. Frame the day before it begins
Roberts' first strategy is about what happens before you even open your laptop. If your brain has already decided the day will be terrible, it probably will be. Cognitive appraisal theory says your interpretation of a stressor shapes your physiological response to it. Dreading the day makes it worse.
The fix is not toxic positivity. You do not need to convince yourself the job is great. Roberts suggests choosing a grounded frame that is true but less catastrophic: "This will be demanding, and I will focus on getting through it steadily." The frame is accurate, and it gives you something to aim for that is inside your control.
For engineers, the specific dread is often predictable. You know the standup will be tense. You know the same person will nitpick your PR. You know the on-call handoff has three unresolved incidents. Naming what you are actually afraid of is more useful than a generic "today will be bad." Be specific. "I am worried the team lead will challenge my architecture decision again." Now you have a specific fear you can prepare for instead of a vague cloud of anxiety.
2. Stabilize the body first
The first 30 to 60 minutes after waking are the window where your cortisol levels are naturally highest. What you do in that window sets your stress baseline for the rest of the day. Roberts recommends light exposure, hydration, and gentle movement before any stressful input.
The engineering version of this is: do not check Slack or email or your phone until you have done something physical first. I have broken this rule more times than I have kept it, and every time I break it, I pay. A notification from a flaky CI pipeline at 7:15am hijacks the morning. The cortisol spike from a passive-aggressive Slack thread sticks around long after you close the app.
A five-minute walk, a shower, making coffee without looking at a screen. These are small things but they create a boundary between waking up and being at work. If you work remotely, that boundary is the only commute you have. Protect it.
3. Focus on what you can control today
Bad environments create learned helplessness. When effort seems disconnected from outcomes, when your careful work gets overruled by politics, when the same broken process produces the same predictable incident every sprint, you stop trying. Why bother?
Roberts frames this as narrowing your focus to 2 to 3 concrete commitments that are inside your control. Not outcomes (the deployment will go smoothly). Process (I will write a rollback plan before the deploy window).
For engineers, process is always inside your control. You can write the test even if nobody will review it properly. You can document the architecture decision even if the team ignores ADRs. You can refactor the gnarly function even if the rest of the codebase is a mess. The work itself is yours. The system around it is not, but what you produce inside that system still belongs to you.
This is not about lowering your standards. It is about separating what you do from how it is received. Those are different things, and in a bad environment, the second is largely out of your hands.
4. Maintain your own standards
Roberts calls this "maintain standards even if the system lacks them." The idea: separate work quality from environmental quality. Craftsmanship preserves pride and professionalism independent of the organization.
This one hits hard for engineers. If you work somewhere that ships bugs to production and nobody cares, or where architecture decisions are made in Slack DMs instead of design docs, or where technical debt is a punchline not a priority, you have two choices. Adopt the local standards, or keep your own.
Adopting the local standards is demoralizing. You know what good looks like, and you are choosing not to do it. That erodes your sense of what you are capable of, which follows you to the next job. Keeping your own standards is harder in the short term. You get asked why you are spending time on tests when nobody else does. Your PRs take longer because you actually review your own code before opening them.
I think Roberts is right. The standard you hold yourself to is one of the few things a bad job cannot take from you unless you let it. I have left jobs where the codebase was a disaster but I could point to the parts I owned and say: those parts are solid. That matters more than it probably should, but it matters.
5. Find one ally
Social connection is a protective buffer against stress. One trusted colleague matters more than a wide network. Roberts says: do not wait for the culture to improve. Initiate small connection yourself.
Engineering can be isolating even in open-plan offices. Remote engineering is worse. You can go days without a real conversation with someone who understands your work. The Slack channels are full of status updates and emoji reactions. None of it is connection.
Find one person you can talk to honestly. Someone who also sees the problems and is not just coasting. The goal is not to form a complaining club. Roberts warns against collective venting because it reinforces helplessness. The goal is to have one person who gets it, who you can check in with, who makes the place feel less hostile.
I have had this person at every job I stayed at for more than a year. Sometimes it was a peer engineer. Sometimes it was a product manager who also cared about quality. The role matters less than the trust. One ally changes the experience of showing up.
6. Protect emotional boundaries
Roberts asks a question worth carrying around: "Is this mine to carry?"
Chronic emotional strain from absorbing other people's stress is a major burnout contributor. Engineers absorb a lot. The PM is panicking about the deadline. The junior dev is anxious about their first big PR. The CTO is stressed about the board meeting. You are not responsible for fixing any of this, but you absorb it anyway because you are in the room.
The practical side of this strategy is creating separation rituals. Roberts mentions changing clothes after work and taking a decompression walk. The engineering equivalent might be closing all work tabs at the end of the day, muting Slack notifications after a certain hour, or having a physical transition (walk, gym, cooking) between work mode and the rest of your life.
The deeper work is the question itself. "Is this mine to carry?" Most of what stresses you out at work is not yours. The deadline is not yours. The architectural debt is not yours. The team dysfunction is not yours. You can care without carrying. That distinction takes practice, but it is the difference between a bad job being temporarily unpleasant and a bad job consuming your identity.
7. Keep sight of a better future
Roberts says hope is built on two things: believing a better future is possible, and having a pathway to it. Movement matters. Even small steps restore agency.
This one is the hardest to maintain when you are exhausted. After a bad week, the last thing you want to do is update your CV or work on a side project or apply for jobs. You want to lie on the couch and recover. That is fair.
But Roberts' point is that small steps compound. You do not need to job hunt every night. You need one small thing that moves you forward this week. Update your LinkedIn headline. Find three companies you might want to work for. Do one LeetCode problem. Write down what you want the next role to have that this one does not.
The reframe that helped me: this is not my life. It is my current chapter. The chapter will end. The question is whether you want to be ready when it does.
What this is really about
Roberts closes with a line that reframes the entire conversation: "The question is not, how do I stay positive in a bad situation? The question is: how do I stay intact?"
Staying positive is a high bar when your job is draining you. Staying intact is more achievable. It means preserving your sense of what good work looks like. It means protecting your energy so you have some left for the job hunt. It means not letting the environment convince you that this is what working life is.
None of these seven strategies fix the job. They fix your relationship to the job while you figure out your next move. And sometimes, that is exactly what you need.
Newsletter
A weekly newsletter on React, Next.js, AI-assisted development, and engineering. No spam, unsubscribe any time.