Soren Learning

Chapter 5

When to Stay and When to Leave

Listen to this article

The decision to change jobs is one of the highest-stakes career decisions an engineer makes, and it is frequently made on the wrong signal. Some engineers stay too long because inertia is comfortable and the outside world is uncertain. Others leave too soon because discomfort is interpreted as a bad fit rather than a growth signal. Both are expensive mistakes.

The framework for making this decision should be based on what you can learn and build at your current company versus elsewhere — not on how you feel on a given Thursday.

The Questions That Actually Matter

Before deciding to leave, work through these questions honestly:

What am I learning? The most valuable thing an employer provides is not compensation — it is the opportunity to learn skills, build judgment, and develop expertise that is worth more in the next role than in the current one. If you are learning rapidly and building a skill set that will compound, that is a strong reason to stay regardless of other friction. If you have stopped learning — if the work is entirely within your existing capabilities and you are coasting — that is a significant signal to move on.

Am I growing in scope? Growth in scope means taking on work that is bigger, more ambiguous, and more impactful than what you were doing eighteen months ago. If your scope has expanded meaningfully, you are on a growth trajectory. If it has been flat for more than a year — same problems, same scale, same stakeholders — something needs to change.

Am I well-compensated relative to market? Compensation that was competitive two years ago often is not competitive today, especially in a market that has moved significantly. If you are paid 20% below market, staying requires that the other factors are sufficiently compelling to justify the financial gap. Often they are not.

Do I trust the people around me? Specifically: do you trust your manager to be honest with you, to advocate for your career, and to make decisions you can understand even when you disagree? Do you trust your senior colleagues to produce work worth learning from? Trust is slow to build and fast to lose, and a team with a culture of low trust is difficult to thrive in regardless of the technical opportunity.

Is there a realistic path to the role I want here? If you want to be a staff engineer at your current company, is there a specific path to get there, with timelines and criteria that your manager can articulate? Or is it vague and politically uncertain? The difference between "here is what you need to demonstrate and when" and "we'll see how things go" tells you a lot about whether the company is invested in your growth.

Reasons to Stay That Are Actually Good

You are still learning at a rate you could not match elsewhere. Deep expertise in a complex domain — large-scale distributed systems, specialized infrastructure, a technical stack with specific dynamics — often requires time that feels uncomfortable in the short term and compounds significantly over years.

The growth is lagged. You started a role that was uncomfortable, you struggled for six months, and you are now beginning to find your footing and see the scope expand. This is often the right moment to stay, not leave. The investment in context and relationships is about to pay off.

The manager is excellent. An excellent manager — one who gives honest feedback, advocates for you, helps you navigate organizational dynamics, and connects your work to opportunities — is genuinely rare. Staying under a great manager while you are growing is often worth accepting other imperfections.

You are mid-project on something consequential. Leaving mid-project has costs for your team, your reputation, and your ability to see the work through to a conclusion you can claim. If the project is significant and you are in the middle of it, staying to finish often produces a better outcome than leaving.

Reasons to Leave That Are Actually Good

The role has been clear for a year and no path forward is in sight. You have had the conversations, made the case, demonstrated the work, and the company has not moved. The promotion that was supposed to happen in six months has been deferred twice. At some point, the signal is signal.

The compensation gap is too large to accept. If you are paid significantly below market and the company will not address it, you are subsidizing the company with your compensation. This is a legitimate reason to leave.

The management or culture is genuinely broken. Not uncomfortable — broken. Managers who are dishonest, who take credit for their reports' work, who manage through fear, or who create environments of psychological unsafety are not worth waiting out. Similarly, a culture of low accountability, active dysfunction, or consistent misalignment between stated values and actual behavior is unlikely to change on a timeline that works for you.

You need a specific experience you cannot get here. A startup engineer who wants to understand large-scale systems, or a large-company engineer who wants to understand the zero-to-one phase, may genuinely need a different environment. If the specific thing you want to learn or build cannot happen where you are, that is a legitimate reason to go somewhere it can.

The Decision Framework

A useful heuristic: if someone offered you your exact current role — same team, same manager, same scope, same compensation — as a new opportunity, would you take it? If yes, stay. If you would not take it, why not? The answer to that question is usually the real reason to leave.

Separately: give the situation a fixed amount of time before making the final decision. If you are unhappy, give it six months — not forever, but enough time to distinguish between a bad month and a bad situation. Make one concrete change in that period: a direct conversation with your manager, a request for different scope, a change in how you are working. If the situation has not improved at the end of that time, the decision is clearer.

The Practical Move This Week

Write honest answers to the five questions at the top of this chapter. Do not optimize the answers for how you want to feel — write what is actually true. Compare your current situation to the baseline of "what would a role I would genuinely want look like?" The gap between your current answers and that baseline tells you how urgent the change is.


Next: how to build a learning system that keeps you current in a field that changes constantly, without burning out trying to keep up with everything.