There is a pattern I have noticed across the software industry, and I have seen it at every stage — junior engineer, senior engineer, team lead.
Someone gets let go. A job ends poorly. A promotion doesn't come through. A team fractures. And in the days that follow, the entire narrative gets constructed around everything external: the company didn't appreciate their work, the manager was incompetent, the team was dysfunctional, the industry is unfair, the deck was stacked from the start.
Sometimes those narratives are accurate. Sometimes they are not. But here is what I know: the engineers and professionals who grow the fastest after a setback are rarely the ones who spend the most time explaining why it wasn't their fault.
The Easy Path: Explaining What Went Wrong Outside of You
There is a reason external blame feels satisfying. It is clean. It resolves cognitive dissonance quickly. And often, it contains real truth — bad managers exist, companies do fail their people, toxic cultures are real.
But I have watched engineers repeat the same cycle across three or four companies, and every exit comes with the same story. Different cast of characters, identical narrative structure. That is worth examining.
When the pattern persists, the common variable is you.
This is not an attack on anyone who has experienced genuine professional mistreatment. It is an observation that the habit of looking exclusively outward when things go wrong is one of the most reliable ways to stay stuck.
The easy path sounds like:
- "My manager never advocated for me."
- "The company didn't invest in my growth."
- "They promoted people they liked, not people who performed."
- "Nobody recognized the work I was doing."
- "The team wouldn't listen to my ideas."
None of these are inherently false. All of them may be entirely true. But they share a common feature: the speaker is a passive recipient of circumstances rather than an agent within them.
The Harder Question: What Could I Have Done Differently?
Professional growth begins when you develop the discipline to ask this question honestly, not rhetorically, and not as self-flagellation — but as genuine inquiry.
This question is uncomfortable because it forces you to sit with the possibility that you had more influence over the situation than you exercised.
Here are the kinds of questions worth asking seriously after a difficult professional experience:
On communication:
- Did my manager actually understand what I was working on and why it mattered?
- Did I communicate my ambitions clearly, or did I expect them to be inferred?
- When I disagreed with a decision, did I express it constructively or withdraw?
On technical growth:
- Were there skill gaps I was aware of but avoided addressing?
- Did I treat a narrow comfort zone as a limitation of the role, or as something I chose?
- Was I resistant to feedback about code quality, architecture decisions, or approach?
On ownership and initiative:
- Did I treat problems as mine to solve, or mine to report?
- When processes were broken, did I try to fix them or document why they frustrated me?
- Did I behave like someone who was building a career, or waiting for permission to have one?
On collaboration:
- Did I give people genuine credit for their contributions?
- Was I someone others trusted with ambiguity and responsibility?
- Did my ego get in the way of learning from people who knew things I didn't?
On professionalism:
- Did I show up consistently, or did inconsistency erode trust over time without my noticing?
- When I was frustrated, did I let it show in ways that damaged relationships?
- Did I build enough goodwill that my rough edges were tolerated and my concerns taken seriously?
These questions do not come with comfortable answers. That is precisely why they are worth asking.
Companies Have Responsibilities Too
This needs to be said clearly, because accountability frameworks can be weaponized: companies and managers have genuine obligations to the people who work for them.
A good organization invests in mentorship. It gives honest, specific feedback. It creates transparent paths for growth. It builds psychological safety. It doesn't let competent people leave wondering what went wrong.
If none of that was present, that matters. If a company retains people inconsistently, promotes based on politics rather than performance, or creates an environment where raising problems results in becoming a problem — that is real. Not every professional failure is the engineer's fault.
But here is where the line gets important: you can acknowledge that an organization failed its people and still ask what you would do differently next time. These are not mutually exclusive positions.
The practical question is not "was the company at fault?" The practical question is "what do I carry forward from this experience that makes me more effective?"
If the answer is only "I'll pick better companies next time," you may be leaving the most important lessons behind.
Feedback Is Not Always an Attack
One of the clearest signals of a professional who is committed to growth is how they receive feedback.
Performance reviews, code reviews, architectural critiques, and peer feedback all carry the same risk: they can feel like assessments of your worth rather than information about your work. The engineers who scale fastest are the ones who learned to separate those two things early.
I have given code reviews to engineers who responded to every critique with an explanation of why the reviewer was wrong. I have seen performance feedback dismissed as "subjective" or "politically motivated" without genuine examination. I have watched people conflate "this decision wasn't ideal" with "you are being undervalued."
Mature professionals treat feedback as data. Not gospel — data. They evaluate it critically, extract what's useful, discard what isn't, and thank the person regardless. They don't perform gratitude while privately dismissing the message. They actually consider it.
The specific feedback worth sitting with longest is the feedback that makes you most defensive. That reaction is usually diagnostic.
Accountability Is Not the Same as Self-Blame
There is an important distinction to draw here, because conflating these two things is its own trap.
Accountability means owning what is within your control. It means asking what you could have done differently and committing to acting on the answer. It is forward-facing, constructive, and grounded in agency.
Self-blame means assuming responsibility for everything regardless of what was actually within your control. It is backward-facing, corrosive, and often inaccurate.
A company that systematically underpays engineers is not something an individual engineer caused by negotiating poorly. A manager who takes credit for their team's work is not something a junior engineer could have prevented by "communicating better." Structural and systemic problems are real, and they fall on individuals unequally.
Accountability does not require you to pretend otherwise. It requires you to focus your energy on what you can actually change — your skills, your communication, your habits, your approach, your next decision.
The question is not "was this entirely my fault?" The question is "what is genuinely mine to own here, and am I owning it?"
If you are asking that question honestly, you are already doing something most people aren't.
The Best Professionals Share One Trait
I have worked alongside engineers who became exceptional — people who moved from junior to staff in a few years, who built strong reputations across teams, who were trusted with increasingly difficult problems.
They were not uniformly the most technically gifted people in the room. They were not always the most experienced. But they shared one consistent trait: they treated every difficult experience as information about themselves.
Not as validation, not as confirmation of what they already believed — as information. They asked, genuinely: What does this tell me about a gap I have? What does this tell me about how I show up? What would I do differently?
Not every failure is your fault. Not every company is good. Not every manager is right. But growth becomes difficult when every setback is viewed exclusively through the lens of external blame.
The most successful professionals are usually the ones willing to learn from both their environment and their own mistakes — and honest enough to know the difference.
Key Takeaways
- External blame may be accurate, but it rarely produces growth. The narrative that explains everything in terms of what others did wrong leaves you with no leverage for change.
- Ask the harder question after every setback: What could I have done differently? Be specific, not rhetorical.
- Companies have real obligations. Structural failures, bad management, and toxic cultures are genuine. Acknowledging them and examining your own role are not mutually exclusive.
- Feedback is data. The critique that makes you most defensive is usually the one most worth examining.
- Accountability is not self-blame. Own what is genuinely yours to own. Don't accept responsibility for what was never in your control.
- The engineers who grow fastest treat difficult experiences as information rather than verdicts — and they do this consistently, not just when it's convenient.
If you found this useful, you might also appreciate The Most Dangerous Phrase in Software Engineering: "I Know I'm Right" — on the cost of unexamined certainty — or From Engineer to Team Lead: What No One Tells You About Architecture Decisions — on how responsibility changes at scale.

Comments
No comments yet — be the first!