Resilience for Software Engineers


Bounce back from setbacks and sustain performance across a long career.

Engineering careers are marked by constant challenge: production outages at 3 AM, failed projects, rejected proposals, harsh feedback, shifting priorities, deprecated technologies, and the ever-present imposter syndrome. The question isn't whether you'll face setbacks - it's whether you'll be crushed by them or grow through them.

Resilience isn't about being invulnerable. It's about recovering - bouncing back from difficulties, maintaining effectiveness under pressure, and sustaining wellbeing across a long career. The most impactful engineers aren't those who never fail; they're those who extract maximum learning from failure and keep moving forward.

This matters more in engineering than in many fields because failure is built into the process, the pace of change is relentless, visibility is high, and careers are long.


The Science of Resilience

Resilience isn't a fixed trait you either have or don't. Research consistently shows that resilience is a skill - a set of learnable behaviors, thought patterns, and practices that can be developed over time.

The Growth Mindset Foundation

Carol Dweck's research on mindset provides the psychological foundation for engineering resilience:

Fixed Mindset: Belief that intelligence, talent, and personality are static traits you're born with.

If you have only a certain amount of intelligence, a certain personality, and a certain moral character - well, then you'd better prove that you have a healthy dose of them. Every situation calls for a confirmation of their intelligence, personality, or character.

Growth Mindset: Belief that basic qualities can be cultivated through effort.

The hand you're dealt is just the starting point for development. This growth mindset is based on the belief that your basic qualities are things you can cultivate through your efforts.

The implications for engineers:

SituationFixed Mindset ResponseGrowth Mindset Response
Difficult bug"I'm not smart enough for this""I haven't figured this out yet"
Code review criticism"They think I'm incompetent""Here's an opportunity to improve"
Failed project"I'm a failure""What can I learn from this?"
New technology"I'm too old/inexperienced for this""Time to stretch my skills"
Rejected proposal"My ideas aren't good enough""I need to understand their concerns better"

The Power of "Yet"

Dweck's research highlights a simple reframe with profound impact:

If you get a failing grade, you think, I'm nothing, I'm nowhere. But if you get the grade 'Not Yet' you understand that you're on a learning curve. It gives you a path into the future.

For engineers:

  • "I don't understand distributed systems" → "I don't understand distributed systems yet"
  • "I can't lead a team" → "I haven't learned to lead a team yet"
  • "I'm not good at public speaking" → "I'm not good at public speaking yet"

The word "yet" transforms a verdict into a journey.

How Mindset Affects Learning

Students who were not taught this growth mindset continued to show declining grades over this difficult school transition, but those who were taught this lesson showed a sharp rebound in their grades.

When engineers believe skills are developable:

  • They seek challenging problems rather than avoiding them
  • They persist longer when facing difficulties
  • They see effort as the path to mastery
  • They learn from criticism rather than becoming defensive
  • They're inspired by others' success rather than threatened by it

Failure as Data: The Blameless Postmortem

The Philosophy

From Google's SRE book on postmortem culture:

Writing a postmortem is not punishment - it is a learning opportunity for the entire company.

The postmortem represents a fundamental shift in how organizations relate to failure: from punishment to learning, from blame to improvement, from hiding mistakes to surfacing them.

For a postmortem to be truly blameless, it must focus on identifying the contributing causes of the incident without indicting any individual or team for bad or inappropriate behavior.

Why Blamelessness Matters

If a culture of finger pointing and shaming individuals or teams for doing the 'wrong' thing prevails, people will not bring issues to light for fear of punishment.

Blame creates:

  • Hidden incidents (until they become catastrophic)
  • Defensive behavior (covering tracks instead of learning)
  • Reduced innovation (fear of trying new things)
  • Burnout (constant anxiety about making mistakes)

Blamelessness creates:

  • Early escalation (problems surface before they cascade)
  • Honest analysis (what really happened, not just what sounds good)
  • Systematic improvement (fixing systems, not punishing people)
  • Psychological safety (freedom to experiment and learn)

The Critical Insight

You can't 'fix' people, but you can fix systems and processes to better support people making the right choices when designing and maintaining complex systems.

When something goes wrong, the question isn't "Who screwed up?" but:

  • What information was missing or incorrect?
  • What systems failed to prevent this?
  • What processes could be improved?
  • How do we make this failure impossible in the future?

From Blame to Learning: Examples

Pointing fingers (from Google's SRE book):

We need to rewrite the entire complicated backend system! It's been breaking weekly for the last three quarters and I'm sure we're all tired of fixing things onesy-twosy. Seriously, if I get paged one more time I'll rewrite it myself…

Blameless:

An action item to rewrite the entire backend system might actually prevent these annoying pages from continuing to happen, and the maintenance manual for this version is quite long and really difficult to be fully trained up on. I'm sure our future on-callers will thank us!

The same conclusion - rewrite the system - but framed constructively rather than punitively.

Celebrating Failure Done Well

Not only did this engineer receive two peer bonuses immediately afterward in recognition of his quick and level-headed handling of the incident, but he also received a huge round of applause from the TGIF audience, which included the company's founders.

The engineer who caused a four-minute outage but rolled back quickly was celebrated - not for the outage, but for the response. This public recognition sends a powerful message: we value learning and quick recovery, not perfect avoidance of all mistakes.


The Resilience Practices

1. Separate Self-Worth from Code Quality

Your code is not you. A bug in your code is not a flaw in your character. A rejected PR is not a rejected person.

This separation is harder than it sounds because:

  • You invest significant mental effort in code
  • Code feels like an expression of your thinking
  • Criticism of code feels like criticism of your mind

Practice:

  • When receiving feedback, pause before reacting
  • Translate "your code" to "the code" in your mind
  • Ask clarifying questions before defending
  • Remember: the reviewer wants the code to improve, not you to feel bad

2. Extract Lessons, Not Just Fixes

Every failure contains information. The question is whether you extract it.

After a bug:

  • What assumption was wrong?
  • What test would have caught this?
  • What documentation would have prevented this?
  • What system change would make this impossible?

After a rejected proposal:

  • What concerns weren't addressed?
  • What context was the audience missing?
  • What political factors were at play?
  • How could the framing have been different?

After a failed project:

  • What would you do differently at the start?
  • What warning signs were ignored?
  • What was learned that will help next time?
  • What relationships were built that still have value?

After a failed interview:

  • What questions caught you off guard?
  • What technical areas need more study?
  • What would you explain differently next time?
  • Was this company/role actually a good fit?

Note: Interview rejection isn't always about your abilities. Companies have specific needs, interviewers have biases, and timing matters. Extract what you can learn, then apply again or move on.

3. Build Recovery Routines

Intense periods are inevitable - launches, incidents, crunch times. Recovery afterward is not optional.

Post-incident recovery:

  • Schedule deliberate downtime after major incidents
  • Take the comp time you're offered
  • Do something completely non-technical
  • Talk to someone about the experience

Post-project recovery:

  • Acknowledge the transition (don't just move to the next thing)
  • Do a personal retrospective
  • Take accumulated time off
  • Reconnect with activities you neglected

Daily recovery:

  • Establish clear work/life boundaries
  • Have activities that reliably restore energy
  • Know your warning signs of overextension
  • Practice saying no to protect recovery time

4. Manage Energy, Not Just Time

Different activities drain and restore different types of energy:

Energy TypeDraining ActivitiesRestoring Activities
CognitiveComplex debugging, architecture decisions, learning new systemsRoutine tasks, walks, sleep
EmotionalDifficult conversations, conflict, uncertaintySupportive relationships, accomplishment, play
PhysicalLong hours, poor sleep, no exerciseMovement, rest, nutrition
CreativeGenerating ideas on demand, brainstormingIncubation time, diverse input, rest

Practice:

  • Identify your personal energy patterns
  • Schedule demanding work when energy is high
  • Protect time for energy restoration
  • Notice early warning signs of depletion

5. Cultivate Support Networks

Resilience isn't solo. The research is clear: social support is one of the strongest predictors of resilience.

Types of support:

  • Mentors: People who've navigated similar challenges
  • Peers: People facing similar challenges now
  • Friends outside work: Perspective beyond the industry
  • Professional support: Coaches, therapists when needed

Building support:

  • Join communities (local meetups, online groups)
  • Maintain relationships across job changes
  • Be willing to be vulnerable about struggles
  • Offer support to others (reciprocity builds bonds)

7. Navigate Psychological Safety Challenges

Even in supportive teams, certain situations feel risky. Building resilience means developing skills to handle these moments.

Asking questions when you're confused: The fear: "I'll look stupid if I ask this." The reality: Others are probably confused too. Someone has to ask.

Strategies:

  • Frame as clarification: "I want to make sure I understand correctly..."
  • Own the confusion: "This might be obvious, but I'm not following X"
  • Ask offline if the group setting feels too risky
  • Remember: Asking is a sign of engagement, not weakness

Sharing incomplete ideas: The fear: "My idea isn't fully formed - they'll tear it apart." The reality: Many great ideas start rough. Early feedback improves them.

Strategies:

  • Label the stage: "This is just a half-baked thought, but..."
  • Use "Yes, and...": Build on others' partial ideas to normalize imperfection
  • In brainstorms, separate idea generation from idea evaluation
  • Remember: The goal is exploration, not performance

Speaking up when someone is interrupted: The fear: "It's not my place to intervene." The reality: Allies who redirect conversations help create inclusive environments.

Strategies:

  • Simple redirect: "I'd like to hear the rest of what Jamie was saying"
  • After the meeting: "I noticed you got cut off - what were you going to say?"
  • Address patterns: "I've noticed some voices get more airtime. Can we be intentional about hearing everyone?"

Responding to "basic" questions: When someone asks you a question you think they should know: The fear: "If I'm impatient, I'll discourage questions." The resilient response: Remember when you didn't know this either.

Strategies:

  • Answer warmly: Everyone was new once
  • Share resources: "Great question - here's where I learned about this"
  • Normalize curiosity: "I wondered the same thing when I started"
  • If you're time-pressed: "Quick answer is X. Happy to go deeper later"

6. Take the Long View

A bad sprint is not a bad career. A failed project is not a failed life. A difficult year is a small part of a long journey.

Perspective practices:

  • When catastrophizing, ask: "Will this matter in 5 years?"
  • Maintain a "wins" file documenting accomplishments
  • Review past challenges you've overcome
  • Remember that careers are marathons, not sprints

The Paradox of Resilience

There's a tension in resilience: between accepting current reality and maintaining motivation to change it.

Too much acceptance leads to passivity - tolerating dysfunctional systems, accepting preventable failures, not pushing for improvement.

Too much resistance leads to exhaustion - fighting every battle, refusing to accept any setback, burning out against unchangeable realities.

Healthy resilience navigates this tension:

  1. Accept what is - This happened. These are the current constraints. This is the situation.
  2. Choose your response - What can I do? What will I do? What will I let go?
  3. Take action - Move forward with what's within your control.
  4. Learn and adapt - Extract lessons, adjust approach, continue.

The Stoic formulation: "Grant me the serenity to accept the things I cannot change, the courage to change the things I can, and the wisdom to know the difference."


Resilience by Level

Junior Engineers

Common Challenges:

  • Imposter syndrome (everyone seems to know more)
  • Bug shame (feeling stupid when code doesn't work)
  • Feedback sensitivity (criticism feels personal)
  • Uncertainty (not knowing if you're "good enough")

Focus Areas:

  • Recognize that confusion is a normal part of learning
  • Learn that bugs are inevitable, not evidence of incompetence
  • Practice receiving feedback as help, not judgment
  • Connect with other juniors facing similar challenges

Key Practices:

  • Keep a "things I've learned" log to see progress over time
  • Ask seniors about their early-career struggles
  • Celebrate small wins
  • Set realistic expectations for learning curves

Common Misconception: "Seniors don't struggle with things." They do - just different things. Everyone is learning at every level.

Mid-Level Engineers

Common Challenges:

  • Plateau frustration (feeling stuck at the same level)
  • Comparison (peers getting promoted while you're not)
  • Increased responsibility without increased authority
  • Balancing depth vs. breadth

Focus Areas:

  • Develop systematic approaches to learning from failure
  • Build resilience for increased visibility of your work
  • Learn to recover from bigger failures gracefully
  • Navigate the ambiguity of "what comes next"

Key Practices:

  • Conduct personal retrospectives on failed initiatives
  • Find peers to share challenges with honestly
  • Define your own success metrics beyond promotion
  • Build habits that sustain long-term performance

Common Misconception: "If I were really good, I wouldn't be struggling." Struggle is the mechanism of growth, not evidence of inadequacy.

Senior Engineers

Common Challenges:

  • Responsibility for team failures
  • Higher-stakes decisions with less clear answers
  • Mentoring others through their failures
  • Maintaining relevance as technology evolves

Focus Areas:

  • Model healthy responses to failure publicly
  • Create psychologically safe environments for teams
  • Balance pushing hard with sustainable pace
  • Build systems that make failure less likely and recovery faster

Key Practices:

  • Share your own failures openly to normalize struggle
  • Advocate for blameless postmortem culture
  • Protect team from burnout even during crunch
  • Take visible recovery time to model sustainable practices

Common Misconception: "At my level, I should have it figured out." Each level brings new challenges. The learning never stops.

Staff+ Engineers

Common Challenges:

  • Ambiguity about impact (is this making a difference?)
  • Political setbacks (initiatives killed for non-technical reasons)
  • Long timelines (projects spanning years, not sprints)
  • Influence without control

Focus Areas:

  • Maintain motivation across multi-year initiatives
  • Build resilience to organizational dysfunction
  • Develop capacity to absorb and redirect team stress
  • Stay technically grounded while expanding leadership scope

Key Practices:

  • Document wins to maintain perspective across long timelines
  • Build diverse network for support outside your organization
  • Develop practices for detachment from work outcomes
  • Create clear boundaries between work identity and personal identity

Common Misconception: "I should be able to fix the organizational problems." Some problems are above your pay grade. Resilience includes accepting that.

Architects

Common Challenges:

  • Decisions that age poorly as context changes
  • Systems outliving their design assumptions
  • Criticism of architectural choices years later
  • Responsibility without direct control

Focus Areas:

  • Accept that all architectures eventually need replacement
  • Document reasoning so future critics understand context
  • Build systems that are resilient (like yourself)
  • Maintain perspective across industry cycles

Key Practices:

  • Write decision records that capture constraints and tradeoffs
  • Stay connected to implementation reality
  • Build relationships across organizational boundaries
  • Maintain technical skills so relevance doesn't depend on past decisions

Common Misconception: "A good architecture should last forever." Nothing lasts forever. The goal is appropriate longevity, not permanence.


Warning Signs and Recovery

Early Warning Signs of Resilience Depletion

SignalWhat It Looks LikeWhat It Means
Cynicism"Nothing will ever change"Depletion of hope and agency
ExhaustionTired even after restEnergy expenditure exceeding recovery
Detachment"I don't care anymore"Protective mechanism against further drain
Inefficacy"Nothing I do matters"Disconnect between effort and outcome
IrritabilitySmall things trigger big reactionsEmotional reserves depleted

When to Seek Help

These signs suggest need for professional support:

  • Sustained inability to function
  • Thoughts of self-harm
  • Inability to sleep or eat normally
  • Overwhelming anxiety or depression
  • Substance use to cope

There's no shame in therapy, coaching, or medication when needed. These are tools, not weaknesses.

Recovery Strategies

Immediate:

  • Take time off (even a day)
  • Talk to someone trusted
  • Reduce commitments temporarily
  • Focus on basic needs (sleep, food, movement)

Short-term:

  • Identify and address specific stressors
  • Establish or re-establish boundaries
  • Reconnect with activities that restore energy
  • Seek support from appropriate sources

Long-term:

  • Build sustainable work patterns
  • Develop stronger support networks
  • Address recurring sources of stress
  • Create systems that prevent future depletion

Building Organizational Resilience

Individual resilience matters, but it's not sufficient. Organizations need to build systems that support resilience.

What Organizations Should Do

Normalize failure:

  • Implement blameless postmortems
  • Share failure stories from leadership
  • Celebrate learning, not just success
  • Remove punishment for honest mistakes

Protect recovery:

  • Enforce sustainable hours
  • Provide adequate vacation and ensure it's taken
  • Build slack into timelines
  • Model recovery from the top

Build support:

  • Fund mentorship programs
  • Create psychological safety
  • Provide access to mental health resources
  • Build communities of practice

What You Can Do Without Organizational Support

Even in organizations that don't prioritize resilience, you can:

  • Practice blameless postmortems in your own retrospectives
  • Build support networks outside the company
  • Set personal boundaries even if they're not enforced
  • Model sustainable practices for your team
  • Leave if the environment is truly destructive

TL;DR

  • Add "yet" to transform verdicts into journeys - "I don't understand distributed systems yet" opens possibility where "I don't understand" closes it
  • Treat failure as data, not identity - after every setback, ask "What assumption was wrong? What would I do differently?" then move forward without shame
  • Blameless postmortems work because you can't fix people - focus on what enabled the failure, not who to punish; blame drives problems underground
  • Build recovery routines deliberately - post-incident downtime, post-project retrospectives, daily boundaries; burnout comes from constant change without recovery
  • Manage energy, not just time - know which activities drain cognitive/emotional/physical reserves and schedule demanding work when energy peaks

References

On Growth Mindset

  • Dweck, Carol. Mindset: The New Psychology of Success
  • Farnam Street. "Carol Dweck: A Summary of Growth and Fixed Mindsets"
  • Dweck, Carol. "What Having a Growth Mindset Actually Means." Harvard Business Review

On Blameless Postmortems

  • Google SRE Book. "Chapter 15: Postmortem Culture: Learning from Failure"
  • Etsy. "Debriefing Facilitation Guide"
  • Allspaw, John. "Blameless PostMortems and a Just Culture"

On Burnout and Sustainable Pace

  • Extreme Programming. "Sustainable Pace"
  • Maslach, Christina. Burnout: The Cost of Caring
  • Nagoski, Emily & Amelia. Burnout: The Secret to Unlocking the Stress Cycle

On Career Resilience

  • McKenzie, Patrick. "Don't Call Yourself a Programmer, And Other Career Advice"
  • Newport, Cal. So Good They Can't Ignore You

Ready to test your knowledge?

Put what you've learned into practice with our assessment.