In my short career I’ve noticed that employers are notorious for underpaying you to the point that people with 3-4 years of experience are getting paid the same as freshers. The management always has an excuse to not increase pay or increase it very minimally. The best way to increase pay has been to keep moving every 2-3 years from one company to the next if switching means at least 1.5x or 2x the current salary.
This means major interview prep requiring solving leetcode style questions, solving system design questions, then some more. I just wanted to how often do you prepare? Are you always interview ready or start prepping a few months before switching jobs?
I’ve switched jobs about every two years on average for the past 19 years of my career. Unfortunately it’s just like you said, the only way to get a meaningful increase is to jump ship. That said, once you break 100k, that motive seems to calm down a bit. You start caring more about the culture and the people you work with than how much you’re getting paid. I’ve taken a pay cut even once because my mental health required a better environment.
But sadly, at least in the startup world, there is this perpetual arch I see all the companies take. They all start good then slowly devolve into something worse, where when you finally leave you’re glad to go. Something about getting bigger corrupts what was good about a place, and if you IPO good luck. Culture goes out the window as soon as shareholders become your only driving concern.
So as jaded as that sounds, sometimes you do find a good place, and they give you decent enough raises and you can stay a while. Although for me personally, the longest I’ve stayed somewhere yet is 4 years or so. Maybe one day I’ll find that magic place that’s worth staying at for a full decade
Oh and for interview prep. I don’t really do much training. I either pass their genitalia measuring contest, or I don’t and I move on. If I’m qualified for the gig, then I should be able to roll with whatever they give me. Luckily the better jobs I’ve had didn’t even really do much whiteboarding and brain teasers though. Research has shown it really doesn’t do anything for your quality of hires. It’s better to get a feeling for how someone thinks and if they will be a good culture fit than if they can memorize the latest hot code kata.
I worked for my first company for a decade. I cannot stress enough how much this held my career and technical growth back. I got raises in that position - in one case a good one - but none of them compared to how fast my salary went up once I started hopping jobs from time to time.
I’m finally to the point after twenty five years where I’m making enough for the cost of living and I almost don’t care about pay - it’s much more about culture and finding a good team.
A 50% pay bump is unusual though. I’d expect more like 10-20% depending on the current market. I’m in the middle of a job search and I’ll be damned lucky not to take a shave because there are so many laid off developers now. If someone offered me a 50% bump I’d take that in a heartbeat if there were no red flags. Although I’d need a massive freaking raise to go back to an office - QoL is so much better working remotely 90-100%.
Over a decade later I’m still with my first employer.
I could make more elsewhere, but I suspect at max 2x after twelve years - not 2x every 4 years. Did I receive more reasonable raises than they happen in your experience?
With other things I value about my work environment and employer, my pay is fair and good enough for me to stay.
I’m so glad I don’t have to hassle with prep and interviews. (I had one phase where I did but ultimately stayed with my employer in a bit of a different setup.)
It’s strange because I have never had leetcode questions. I’m a C++ developer and, when I switch, I’m always asked about my previous jobs, and maybe my experience in C++20 with a few questions like “what objects of the C++20 STL have you used so far?”
I guess it depends on the country (I’m in France) and the language I want to work with (mostly C++ for me but I can do everything else).
I can’t even usually get an interview without passing leetcode bullshit (which sometimes I pass with flying colors and sometimes I bomb even for the same skillset - the quality of the questions can be so variable!).
Wow. That sounds so much simpler and better. I’m in India and it’s typically 4 or 5 interview rounds here of which there’s an online test, a leetcode round, an actual coding round, a system design and a hiring manager round. Almost every company here if you exclude service based shops have copied the interview process from big tech minus the big tech pay.
Employers here are notorious for underpaying people and this is why most pay increases only happen while switching. It’s insane. But the number of people/developers here is so much that you’ve little bargaining power.
I still have 2 or 3 interviews but it’s mostly : one technical interview, one with a manager to see if you could work with others, and one with HR to check if you’re not insane.
Switching every 2-3 years? Sounds about right. The only time I’ve stuck around longer was if there was a really good reason (like an RSU vesting schedule). It seems as though most companies will prioritise getting new people in rather than retention of existing staff. The other issue I’ve seen is that sometimes people who stick around at the same company for a while get a bit institutionalised and have difficulties switching to another company. Where I’m currently working in all hands meetings there’s usually a work anniversary section and some people have been at the company for over 30 years. I just couldn’t imagine that.
My last few jobs have only lasted 6 months though. One of them lied to me in the interview and when I started it turned out I was doing nothing but dealing with legacy systems. Another had some interesting problems which meant I had 3 managers in 6 months. Then I got an intern who couldn’t program because he was related to one of the senior guys in the office.
Anyway, in terms of interviewing, personally I tend to just prep a few months before I start looking. Just do a load of leetcode, read up on some system design crap, that kind of thing. It all feels like a bit of a farce to be honest because everyone asks the same questions and by now everyone knows what will be asked and what the standard answers are. It’s just a case of being able to memorise the standard answers.