Companies are suffering from losing good developers
It may help you get a good raise, but that’s all
In the Software engineering role, the yearly salary raise (depends on the country you stay in, in my case, it is usually 2 digits and max 3 digits ) sucks. A common wrong mindset I have seen is link coding with money , you may question yourself: what is the point to write SOLID code and make good test coverage ,but company seems does not pay for it . right and wrong .company is all about profit, and code is only one way to improve quality, performance or mainteinance ,which COULD bring value .
but please do not mix things up ,and do not blame yourself, nothing is wasted .write good code and test is your responsibility and identity ,Do it for yourself, no matter how much company pays you, or in your own side project which you write for free, you write good code , all because you like creating things, and you enjoyed it, that’s the best pay off.
If you want to get better raise, present the value you bring to company in last year to your manager in 1:1 .you can even let him know the market value of your current role, and how much you are expecting .it is all about negotiating . instead of running away (to result in a lose-lose), please open your big mouth and tell him .
You may get more than you are expecting , why not give a try , change is always the last option .
It is big damage to your team
Unless you are very unhappy with the team you are working with (maybe it’s a toxic team, then please leave) .do not harm them .After you leave, extra burden will be loaded on them, specially the one who do KT need to suffer some time to take over your work . if you are on senior position, your leave may create a “bad effect” to the junior ones as well ,their mind will be shaken and started finding “bad things” in their work, then thinking to look outside .when more and more people leaving, team suffers more and more ,and the damage is not linear .
You always join as “super junior”
even the number of years experience keep increasing . No matter which company you will be joined ,keep changing company every 1–2 years will make you ALWAYS start from “fresh” . the business domain is very different from company to company , even same domain , the process could be very different . it took months or 1 year to be familiar with one company : team, business domain and process . contributed another few months then changed to new company is not a good idea . And if the new company doing is completely different from your current job, your time was COMPLETELY wasted.
Since your experience in every company so short .most of the tickets assigned to you is only “bug fix” , and all non critial ones. the higher level design problems already discussed in review meeting by the architects ; performance and critical problems are being solved by the “core team” .anyway , not enough interesting problems will not be routed to you.
You won’t enjoy it , but hold on, and do not change right now , otherwise you may fall to below loop :
changed company > never got chance solve “challenging problems” > change again > … >> never solve any “interesting” problems. (btw, “what is the biggest chanllenge in your previous job?” is a famous interview question, asked every time !)
Hard to get jobs
It will be harder and harder for you to get jobs (unless the role you are interviewing which doesn’t matter to company, but that’s not good sign) .
No company likes job hopper .the more companies appear in your CV , unless you have decades experience , they will question you “reason for leave” one by one , and you answer it over and over again .I beleive no one enjoy doing this .
The Interview questions sucks
Unless you enjoy answering below over and over again :
“what is the biggest chanllenge in your last work? “
“what is the hardest problem you have ever solved in your career? “
“how many years exp you have in XX ? “ .
“How did you scale your software application ?”
“Can you explain the project you did in current company? “
…
It sucks, a waste time to prepare for such questions and explain over and over again to different companies. and almost every company asks it , including FANG (even need prepare more “standard correct answers”, and I have to almost burn out myself prepare on those “high scalibility design questions” , only join to be a cog? sucks). btw, join FANG may not make you a great dev , you should be focusing on improving yourself, instead of adding more and more “golden company names” into CV .
It’s comfort zone, Pls jump out
I didn’t realized until i changed 8 jobs within my first 3 years . I find changing a job is all about : solving enough algorithm problems , prepare a “golden project experience” + “biggest challenge” and “standard scalability design answers”. in short, interview is a skillset, and that’s it .
I keep changing jobs to “solve” these problems: I want a salary hack without negotiation; this company code sucks ; I don’t like to work that guy ;I got pissed one day; current project need to be over time; Not enough things to do , got bored from my work ….
When i got 4 years experience in software development. All I left is coding . my work pressure telorance, communication, documentation, presentation is terrible .
the reason is clear. These ability never grow from changing jobs:
Patience, collaboration , handle work pressure , handle legacy code, optimize software process ,train juniors, proactive working style, Design thinking, negotiation (both timeline and salary), estimating , deeper understanding of problems , finding root cause …
And my all growth started after stopped hopping job. btw, when reorg happened (2017), my job title increated 2 levels , salary X 3, that is what loyalty sometimes could pay you too .
Last
Senior developers is needed by almost every company , as well as entire industry , specially during this “great resignation” .
Please stay and let change be your last choice, it may waste both you and your company time, and your team end up with suffering getting good dev like you. And you may not grow that much just by joining in a “giant” company; before you go, give a try to negotiate what you are expecting;The longer you stay, you will be get closer to “core business” and in the “core team” , more and more critical REAL LIFE algorithm or system design problems will come to you; you will be the one who guiding juniors; and instead of interviewee you will be become interviewer who creating interview problems ;writing coding convention ;Make system architecture design decisions .