← Back to Blog

When to Change Jobs as a Junior Engineer

TL;DR - The "stay 2 years minimum" rule is outdated but leaving in 6 months for the wrong reasons is still a problem. - Real signs it's time to leave: no mentorship, toxic culture, company instability, you've genuinely exhausted the learning available to you. - Signs you should stay: you're still learning, the frustration is normal early-career difficulty, you're under 10 months in. - Switching after 12-18 months is not career-ending. Staying somewhere that stunts your growth for 3 years is harder to recover from. - Evaluate the move by role quality, not just escape from discomfort. - If you leave early, you can explain it. There's a right way to frame it.


The conventional wisdom used to be clear: stay at your first job for two years, no matter what. That advice made sense when job-hopping was a red flag that could follow you forever and when most companies were stable enough to offer a coherent growth path if you were patient enough to wait for it.

Neither of those things is as true as they used to be. Hiring managers today understand that companies go through layoffs, pivot, and restructure. They understand that a year of strong growth at one company can be more valuable than two years of stagnation at another. The two-year rule has softened.

But that doesn't mean you should leave whenever things get hard. Early-career difficulty is real, it's normal, and working through it builds something that job-hopping never does. The question isn't "should I stay two years?" It's "am I getting what I need to become the engineer I want to be?"

Here's how to answer that honestly.


The Case for Staying Longer Than You Want To

Before we talk about when to leave, it's worth being direct about something: the first 12 months at any engineering job are hard in ways that have nothing to do with the company being bad.

You're learning a codebase you didn't write. You're figuring out how to work with people you didn't choose. You're navigating the gap between what you knew going in and what the job actually requires. That gap is uncomfortable. It produces a kind of friction that can easily be misread as "this place isn't right for me."

Sometimes that's true. Often it's not.

If you're 6 to 10 months in and you're frustrated, ask yourself whether you can point to specific growth in that time. Not "do I feel good about where I am" but "am I writing better code than I was 6 months ago? Do I understand the codebase better? Am I being given more responsibility?" If the answer to those questions is yes, the frustration is probably normal. Working through it is the job.

The first year also establishes your reference point. It's very hard to know what a good engineering culture looks like if you've never stayed long enough to see how one works end to end. Seeing a full product cycle, going through a performance review, watching how a team handles a production incident. Those experiences matter and you only get them by staying. Read how to get a raise or promotion in your first engineering job for how to make the most of a performance review when it arrives.

That said, staying just to avoid having an awkward conversation on your resume is not a good reason. Let's talk about the real ones.


Signs It's Actually Time to Leave

1. You're Not Learning Anything and There's No Path to Change That

This is the most important signal. Early in your career, learning rate matters more than almost anything else. If you're doing the same kinds of tasks you were doing 6 months ago, you haven't been given harder problems, and there's no indication that's going to change, you're falling behind relative to peers who are elsewhere.

The relevant question: is the lack of growth a company problem or a you problem? If you haven't asked for more challenging work, haven't taken initiative on anything, and haven't had a direct conversation with your manager about growth, you haven't exhausted your options yet. Have those conversations first. If you've had them, been clear, and nothing has changed, that's a signal.

2. There's No Mentorship and No One Is Invested in Your Development

Junior engineers need code review that explains the "why," not just the "what." They need to work alongside more experienced engineers who catch things they miss and explain the trade-offs. They need someone to care, at least somewhat, whether they're getting better.

Some companies don't have this. The senior engineers are too busy, too checked out, or too siloed to invest in anyone junior. If you've been at a company for a year and you genuinely can't point to a person who has made you a better engineer, that's a problem worth taking seriously.

3. The Culture Is Actively Toxic

This one sounds obvious but it's worth naming directly because people rationalize toxic environments constantly, especially when they're junior and don't have a baseline for comparison.

Toxic doesn't mean stressful or demanding. It means: people are routinely unkind or dismissive. Psychological safety is low enough that you don't ask questions because you're afraid of looking stupid. You've watched good people get mistreated. You're not learning because fear is taking up all the cognitive space.

If your work environment meets that description, the two-year rule does not apply. Leave.

4. The Company Is Genuinely Unstable

Startups fail. Companies that looked stable six months ago announce layoffs. If you're seeing signs of company instability (leadership chaos, unexplained departures, missed payroll, a business model that clearly isn't working), you don't have to wait for the layoff to arrive. Getting out early is not disloyal. It's practical.

5. You've Genuinely Learned What the Role Had to Offer

This is a good problem to have. Some junior engineers join a company, grow quickly, take on substantial responsibility within 18 months, and hit a ceiling because the company is too small or too stagnant to offer anything more. If you've genuinely exhausted what the role can teach you and there's no path to a more senior position, moving on makes sense.

This is different from boredom with normal repetitive tasks. Almost every job has repetitive work. The question is whether the growth ceiling is real and structural, not just a slow week.


Signs You Should Stay (Even If You Don't Want To)

  • You've been there less than 10 months and you're frustrated but still learning.
  • The problems you're facing are hard in a normal, productive way rather than an abusive or stagnating way.
  • You haven't had a direct conversation with your manager about what you want to work on next.
  • You want to leave because you got an offer that pays more but the role isn't actually better.
  • You're leaving to escape discomfort rather than to pursue something specific and better.
  • You're in the middle of something real that will look good on your resume in 3 months. Finish it.

The last point is underrated. Shipping a feature, leading a project, fixing a hard bug in production. These are things you can point to in your next interview. Leaving in the middle of them means you gave up the best part of the story.


How to Evaluate a Move: Better Role vs. Just Different

When you're deciding whether to take a new opportunity, the question isn't "is this job better than my current situation when I'm most frustrated with it?" That comparison will almost always favor leaving. The comparison that matters is: "Is this role likely to make me a better engineer in 18 months than staying would?"

Ask about these things when you're evaluating a new opportunity:

Code review process. Does it exist? Is it taken seriously? Does feedback come with explanations? This is one of the most valuable things a junior engineer can get from a job, and it's worth asking about specifically.

Team structure and mentorship. Who will you work with directly? Is there someone senior who is available and invested in the growth of junior engineers? How many junior and mid-level engineers are on the team?

Scope of responsibility. What will you actually be working on in the first 6 months? Is the work complex enough to be a growth driver, or is it maintenance work that experienced engineers didn't want?

Company health. How is the business doing? Is this a company you'd want to be at in two years if things go well?

The goal is a role that is genuinely better for your development, not just a role that is new.


The 12-18 Month Timeline: What It Actually Means for Your Resume

Here's the honest answer to the resume question: one short stint at a company under 18 months will come up in interviews, but it won't end your candidacy if you can explain it cleanly.

What recruiters and hiring managers are looking for is evidence of a pattern. One 14-month job surrounded by otherwise normal tenure doesn't look like a job hopper. It looks like someone who had a reason to move. Two back-to-back stints under a year raises more questions.

If you do leave early, the way you talk about it matters a lot. Read how to explain a career gap or departure for the full framework, but the short version is: be honest without being dramatic, name what you learned, and explain what you were looking for in the move. "The role didn't have the mentorship structure I needed to grow, so after a year I moved to a team where I'd be working alongside more experienced engineers" is a clear, defensible, grown-up answer.

What you want to avoid is anything that sounds like you left because things got hard, because you had a conflict with someone, or because you didn't get a raise you wanted. Even if one of those things is true, they don't read well in isolation. The frame should be about growth, not escape.


A Note on Salary and Promotions

One of the real drivers behind junior engineers wanting to leave early is compensation. The market reality is that switching jobs often produces a bigger pay increase than a standard annual raise. This is true. It's not unreasonable to factor it in.

But chasing a salary bump into a role that doesn't grow you is a bad trade at the junior level. You're still building the foundation. Getting paid slightly more to stagnate at a different company costs you more in the long run than staying somewhere with strong growth and taking a slightly lower salary for another year.

If compensation is your driver, read how salary negotiation works for your first engineering job before you make a move. You may have more room at your current company than you think, and using an outside offer to negotiate a raise at your current employer is often the best outcome.


Making the Actual Decision

The decision usually becomes clear when you get honest about two things: what you're leaving and what you're going toward.

If you can articulate what specifically isn't working, what you've done to try to fix it, and why you think it can't be fixed, that's a real reason to go. If you can articulate what specifically the new role offers that your current role doesn't, that's a real destination.

If your reasons are vaguer than that (you're burned out, you feel underpaid without having negotiated, you don't like your teammates but haven't tried to work on the relationship, you just want a change), those are worth sitting with a little longer before you make a move.

The first job is hard. It's supposed to be hard. Getting through it, contributing real work, and building a track record matters. The first 90 days framework is worth reading before you decide. Not because you're necessarily doing something wrong, but because sometimes what feels like a reason to leave is actually a problem you can solve from where you are.


The honest summary: the two-year rule is gone, but leaving for the right reasons still matters. A year and a half somewhere that stunts your growth is worth less than a year somewhere that develops you. But "I'm frustrated" isn't a reason by itself. The question is what's on the other side of the frustration.

If you want structured support figuring out your next move, here's how the Globally Scoped program works.

Interested in the program?