As for your question, the answer actually has very little to do with promotions and more to do with the company you’re leaving and the company you’d be joining. Software engineers get a majority of their salary as stock. If you have a large grant at a company with an extremely bright future, it can be very lucrative to stay. Similarly, moving (or even getting promoted) at the wrong time can be disastrous if the stock drops significantly. Whether or not you join or leave should be mostly based on the outlook of the company.
My theory is that he’s too valuable where he is, and that they don’t want to move him elsewhere. But he just got an offer down the road somewhere else and will be putting in his notice next week.
I just despise how companies expect strategically important workers to stay on the company without raises when it is clear for both parties just how much value they as workers bring to the table, it is insulting
Assuming the "they are too valuable here to be promoted elsewhere" hypothesis is true, and it may be true in some cases (and not true in the majority of cases), there is always an increase in compensation in the form of increased base salary, bonus, or equity, depending on the company, available. A promotion is both a reward and a belief that the person would have a greater impact in another position. More money is also a reward.
There is a perfect mathematical sound answer to your question: for the first n/e year n is the number of working years, e is Euler's constant) you should regularly switch jobs every 2 to 4 years. After these first n/e years you continue switching jobs regularly until you end up with a job that's better than all previous jobs you had. That's, with the highest probability, the best job you would ever get in your life. Don't switch jobs with others after that!
E.g. You would work around 50 years (from 16 to 66), which means that for the first 50 / e = 18.3 years you should switch jobs regularly. After these years you should be think twice before changing jobs.
You need to evaluate your quality of life outside just the monetary and career aspect, and decide if the stress of job changing and potential increases in work expectations are worth the benefits of more status and more money. It would be a shame to get a new job and discover that you dislike your new colleagues or your work life balance is bad.
Do not underestimate the level of persistent stress job hopping will give you; it takes a few months for that to wear off. I’ve done a lot of it myself, and in the balance it was worth it, but it’s also worn me down a bit too. Personally I’d like to be done with it and settle down for long periods of time and not worry about chasing the next promotion.
Just my opinion as a dev making under $100k.
For example (hypothetical), you could be spending few thousand per month to give your family healthcare in the US. This could take the median US dev salary from about $105k down to about $75-85k, or even lower depending on a bunch of factors. Then we would have to compare cost of living in both countries, including if healthcare is covered in an indirect manner in the other country.
Eventually you hit a point where you feel financially secure or you're hitting the max rate for your skills and your decision to stay/leave gets more nuanced and less about money
But I’ll add, even with all that said, you don’t want one company on your resume. A track record of a few good companies is a strong signal that you have your career in order, so I’d still aim to leave no later than the 4-5 year mark.
Unless you are in leadership position, a serious one, not just a nominal one (you just got the title but still chump change at the place), stick to this type of plan.
Dang, I love this. This is so true. Never listen to the recruiting marketing about how we love our people or reassure yourself by looking at people who have been at the company for so long (6-10y). Look at what realistically happens to the everyday programmer who makes B+ effort and be frank with yourself
But yeah OP, you sound fine for now. Enjoy being young with some cash and save some
If you’re being paid 180K out of college and your company regularly promotes with 33% raises then you’re already at a top company that gives proper raises. You don’t need to job hop unless you want to try a different company.
I think if one is looking to maximize lifetime revenue (as an employee), then switching regularly probably makes sense. In any case, you should be interviewing regularly and soliciting offers, even if you only use them at your existing job to ensure your raises are in sync with the wider market.
I've been asked that a couple of times and I guess the answers have been satisfactory enough because I've gotten an offer afterwards.
As an interviewer, I've only encountered a couple of incidents where change frequency was enough to concern us. I directly asked both about that. One, I was satisfied with the answers, and he turned out to be a great dev and stuck with us to the bitter end. The other, his answers were "meh" enough that warranted more digging. Sure enough, we discovered there were other positions that were not included in his resume. We passed on him.
This is wrong and misleading in many ways, you should ask people why they left, you should give a chance to those who have good skillset, not based on number of jobs they had. I know a lot of people who worked on contracts, so they had to change employers frequently, and I know a lot of people who were looking for a place, as juniors, to learn from good mentors. It is really hard to find mentors in Startups, and not everybody can make it to big companies. If companies don't invest on their employees, they leave.
But as best I could tell, if we did hire them, we had 12 months tops. Remember, I only have the past record to go on and hiring is the most important and hardest decision to make.
So don’t blame you, but there are reasons - and more than discussed - of why people job hop and understanding that is important.
Only if the potential employer isn't willing to invest in the candidate enough to retain them
I need to get to the US and start earning real money.
So, it's always better to switch, because if you get multiple offers, you retain the leverage to negotiate between each company and switch.
Makes me vomit.
So for example: 120k base 45k stock/yr and 15k bonus ~ 180k a year.