We often have positions open and our office is close to <redacted fortune 100 company>.
So, every so often, we get a few applicants from there.
Some of them are good, and we offer them a job; only to find out that they're not interested anymore. Usually something along the lines of "thanks for the offer, but I've been given bigger and better responsibilities and I'm not looking at leaving anymore", or "I've been assigned to a more exciting project, I will see how it goes", or "I've had a new position offered within the company so I will follow this lead for now".
So, yeah... We're happy to help the other guys move up the ladder, really, been there myself; but it's a bit sad, that's what it takes to get promoted: another job offer and a resignation letter in hand.
Employee: Please pay me more.
Company: Why?
Employee: If you don't then I will be able to find a more
lucrative/satisfactory position elsewhere.
At this point in the conversation, the company has only a couple of possible responses:
1. You're free to do so. I'm not increasing your pay.
2. Ok. I'll take your word for it. Here's a raise.
3. Prove it, and I'll give you a raise.
#1 is the only option if the company is strapped for cash and the best option when the employee's net value is low.
#2 can be a good choice if you have a very good sense of the job market and what makes a competitive compensation package OR if the employee's net value is high and an equally good substitute will be difficult to find.
In all other situations, #3 does seem the most sensible and least risky.
If a company is inclined to #2, they can and probably should award the raise preemptively, before it has been asked for.
Now, as an employee, if I suppose the company has thought all of this through, and they haven't preempted me with an offer of a raise, then I can infer that #2 is not among the possibilities. So I probably don't even need to ask for a raise. I should probably just look for other jobs and then when I get an offer I can find out if the company is going to take option 1 or option 3.
As a big company, such as a Fortune 500, often a manager will want badly to retain an employee and would happily go for #2, even preemptively. But if the senior management (who never even sees that employee) does not share the manager's assessment of the employee's value or the manager's familiarity with the job market for that role, then they will not allow it.
I've seen all of these cases occur. Happily, my current employer is happy to pursue option #2 for high-performing employees.
You forgot Response #4: Ok. I'll take your word for it; here's a raise. (Aside to other managers: this guy is a flight risk. Don't offer him any promotions, and start thinking about how we might replace him.)
It happens. Not infrequently. It's why I never tell my employer when I get an offer. They might just give me the raise because it would hurt to lose me today but they can lose me in a couple months, and then the offer I had at the new company is long gone.
> You forgot Response #4: Ok. I'll take your word for it; here's a raise. (Aside to other managers: this guy is a flight risk. Don't offer him any promotions, and start thinking about how we might replace him.)
This seems like a counterproductive response if the labor market is tight.
Definitely agree. The one time I ever got a significant raise required me to lobby unbelievably hard despite the fact that I was carrying the weight of my whole team and had to do an unreal amount of shit shoveling devops, web service, and data cleaning work in addition to all the machine learning work that was “actually” my job.
I was lucky that my direct manager valued me and guided me through the process of documenting my accomplishments in the right ways to present the case for a substantial promotion.
Apart from this one time, I have always been told the company can’t offer raises or discretionary bonuses beyond whatever the board grants for cost of living, and have to switch jobs repeatedly if I want to earn more.
I don’t get it. I feel like it must be some misaligned incentive problem with HR preferring to make executives believe turnover and constant hiring have to always be the norm, to justify their jobs, instead of cultivating a culture of long tenures by actually offering substantial raises or bonuses.
It happened to me at IBM. I got a 5% raise the first year, and 10% the next; both we're suprises. (And I was making good money for the area when I started, so I don't think they were trying to catch me up.)
My direct managers were awesome, but I ended up leaving for other reasons.
You are right about that. This is a slightly different situation, though. What you describe is scenario #2 up-thread. The person I was responding to was posting an alternative to scenario #3. I'm just saying that in a tight labor market a company adopting response #4 instead of response #3 is cutting off their nose to spite your face.
So, having received an offer that you're inclined to accept, you will never be swayed by a counteroffer from your current employer? I suppose the logic is sound, especially if you know you aren't hard to replace.
I feel I need to at least go through the motion of entertaining the counteroffer, though. Otherwise they'll think I don't like them or be offended and I'll have maybe burnt a bridge. Of course, for the same reason, I was never looking for another job. That offer came to me on its own.
Dude, sometimes people are in a financial stretch and the increase in compensation is the only reason to search for alternatives.
Especially in big corps there can be a policy of being stingy with the wages unless there is some scenario like a need for counteroffer for a high performing individual contributor.
Now, you can think the company is cheap and does not really earn you contribution.
However, the psychological reality is that people don't work in their companies - they work inside teams within companies, and the duties and the culture of the team can be great even if the company policy (likely sculpted out of feeling of ficudiary duty towards stockholders among other things) feels cheap.
Great teams and great managers are far more important for a great job than "great companies". Yes, the latent company culture affects team as well, but that's only one aspect of the whole.
When HPE hired me on, I know I was about 20% more then the guy who had been doing the job for 20 years. Companies don't value you if you stick around. Your only hurting yourself.
I’m actually sort of in this situation. I just interviewed for another position and it went extremely well. The thing is I’m pretty happy with my current job and role except for one dimension: Salary.
If they would pay me what the market says I’m worth (and I’ve done a ton of market research) then I’d be happy to stay where I am for the foreseeable future. But if another company offers me a job and the work and environment seem comparable but they’re willing to pay more... I’d seriously consider that offer and be prepared to leave. However, if my current employer comes back and says, “Actually we will beat that by x%” then I’d seriously consider staying.
It also helps that someone else in the company did just this and is still with the company a couple years later.
If "not being paid enough" was what made you start job hunting, then a counteroffer would likely change the situation.
Last place I left, I made it exceedingly clear, a year before resignation, 6 months before resignation, and during resignation, that all they needed to do to retain me was to bring me back up to market rate. I would have definitely stayed if they were forthcoming with a counteroffer.
I'm pretty happy where I am right now, but if you give me an offer to an attractive position for 20% more money I'd at the very least entertain the notion.
My point is that an offer like that would seem attractive, but two things:
A) The company didn't value you until it was too late. Their opinion of you hasn't changed, just the pay rate.
B) The company now has painted a target on your back as someone that is "in it for the money" and doesn't have the best interests of the company in mind. It's bullshit, but that's now management thinks. Next time a budget cut or RIF is necessary, guess who is first in line?
In both cases, you need to weigh if that's worth sticking around for.
I am assuming that this answers are not done on the spot, but after a minimum debate.
With this answer, the standard process for the employee will be to polish their resume, put themselves on the job market, research candidate companies, explain dozens of time why they want to leave their current job and interview up to getting a proposition.
At that point, there is sunk cost associated with all of that time spent, they have successfully came up with legit reasons to leave the job, and are facing people that want to work with them more than you seem to be.
At that point, I think that mentally moving to a new job is just easier than staying.
I think it’s already a done deal if the employee is threatening to leave.
Up until that point, there’s usually:
- self assesment from the employee to explain their perf
- response from the employer about what they agree with and what they don’t like, and what is needed for them to give a raise.
- eventual employee appeal of the decision
- response to the appeal
At that point, if the employee pulls the “I could go somewhere else card”, or the employer was trying to screw the employee, and giving a raise will still leave a bad taste in the mouth of everyone; or the employer can’t do anything and the employee has no choice but to actualy leave.
That’s also why I think trying to keep someone who puts down a demission is useless, except if the company has a drastic change coming up that solves the employee’s complaints.
I loved working at Rolls-Royce, via DXC. I begged them to give me some sort of raise or even a timeline, to offset the 10% salary cut I took due to a benefits change during the HPE to DXC spinoff.
I know that just a small portion of the work I was doing covered my salary and the other two guys I worked with. I know there was room, but the company had no flexibility to offer raises. So I switched to another company and got a 12% raise. I'm not going to wait around for a match.
Prove it, by interviewing at our competitors and getting a better job offer? From the employer's standpoint, it seems silly to bluff like this. You're banking on the guess that the probability that the employee can find a better offer, times the salary difference, is less than the raise you could just give him/her today.
This is a managerial failure in my opinion. Manager/company is proving that they are not doing their job by saying that.
It's not a place to stay, although most of the places are always like that.
When I’ve been made a counteroffer I sometimes try to explain that if it had been in my annual raise anyway we wouldn’t even need to have had this conversation. But managers are completely deaf to that message. That they happily pay all the costs of replacing someone, recruitment fees, lost productivity while the new worker gets up to speed, loss of institutional knowledge, etc, shows that management incentives are poorly designed.
The vast majority don't job hop though, it's cheaper to address it one off as you observe, rather run up salary on the majority who're "eating the crumby cheese till it's all gone"[1]. In my personal network I'm astonished at how many stay at one job for years, making far less than they could.
no, managers are not stupid, it's just that their incentives are aligned this way
to get you a raise, (s)he needs to do a lot of convincing to their boss, HR, etc - a lot of trouble, really, so they are not naturally inclined. But having offer in hand helps with the process and creates urgency, so they will do it
otoh, to fill a vacancy is most probably a streamlined process which keeps everyone busy and happy (even if its worse for the company as a whole)
> otoh, to fill a vacancy is most probably a streamlined process which keeps everyone busy and happy (even if its worse for the company as a whole)
I find it hard to believe that the cost of interviewing candidates, onboarding and ramping up a new employee is less work than making the case for a raise with a solid performer.
immediate_cognitive_cost(making a case for a raise) > immediate_cognitive_cost(doing nothing and hoping it sorts itself out and _maybe_ having to replace)
but obv it changes when the departure looks imminent, as I said
Exactly. Managers do what is best for them most of the time, not what is best for the company. (Hey, just like normal employees! We're all people, after all.)
This has typically been my experience. If I ask for a raise, my employer does not have the resources, their hands are tied, there’s absolutely nothing they can do.
Then when I find another job, suddenly they find money, can match any offer, and will do whatever it takes to keep me.
I used to take the raise, but not anymore. The employer has already lost trust by lying outright in its initial negotiation. They’ve made me jump through the hoops of a programmer interview process, and wasted my time, their time, and another company’s time, all on a gamble that I can’t or won’t get an attractive offer elsewhere. No thanks, I’ll take my chances elsewhere.
Why is it sad? It's literally the labour market working it's best. If one of the developers that report to tell me that he deserves a higher salary and I woul find myself disagreeing with him, I would literally ask him to go out and get some offers, so instead of relying on our limited and biased understanding of the market, we would both rely on something more objective instead.
I work for BigCo and I see exact same thing on the other side. In fact, the #1 way I see good contractors get converted into full-time employees is when they get another job offer and threaten to leave.
As a hiring manager, the number of resumes that cross my desk that have 4 months here, 9 months here, 6 months here is absolutely astounding. These are full-time positions. It's especially true of front-end developers, but it applies across the board.
I talked to one guy recently who said, "The first four months at my current job were really interesting and I learned a lot, but these last two months I've been kind of bored. That's why I'm looking."
I don't hire them.
If it's one or two jobs on a resume full of longer tenures, that's one thing. But if it's every job you've had since you graduated from coding bootcamp two years ago (three jobs later, now looking for the fourth), why invest in that person? Why bother?
It's a vicious circle. In the short term you might earn more money from giant corporations who can absorb the churn and need a body on a project, but managers will calculate the ROI of investing in you as negative.
From my experience, most of the time opening have been filled externally rather than promote. Therefore it's easier to move up by changing companies.
A point another commenter brought up is you never head a company say the following:
"The market is competitive and your market rate has increased, so here's a raise (of more than 2-3%)"
This leads to job hopping as well in order to get pay increases. The reason why it's especially present in applicants that recently graduated from college or a bootcamp is that their inexperience is often taken advantage of and are underpaid for lack of experience that they will likely gain in the first few months.
That's a good point: a big reason for job hoppings is that employers aren't diligent about raising comp and promoting existing employees.
Obviously it's not good for the bottom line to raise pay for the same work. But trying to avoid that is short-sighted, and leads to the much greater eventual expense of turnover.
As an employee, if market comp for your work has risen substantially what your current employer pays you, then it is only rational for you to change to an employer who will. Once you find a job that will pay your market rate, the employer may try to match, but as we all know - at that point it's a bad idea to stay.
So the problem isn't "damn immature millennial job hopping", but that many employers aren't efficient at keeping up with market rates in a boom economy, and their retention rates therefore suffer. They're effectively penalizing employees who stick around and reward job hoppers.
Everyone expects layoffs and pay freezes (or even pay drops) on recessions. Why aren't the pay raises in boom times commensurate?
> Everyone expects layoffs and pay freezes (or even pay drops) on recessions. Why aren't the pay raises in boom times commensurate?
Why would you expect those? This is capitalism. Profit-making entities operate like a ratchet. They'll forward their losses to employees during recessions, but they'll pocket the gains internally during booms. Sure, redirecting some of the extra profits towards employee retention is a sound strategy, but I fear costs of turnover escape financial models in most businesses.
This is honestly the sad truth when were not citizens at our jobs. Until we step up and start building employee owned and managed democratic companies this will continue to be the norm.
> you never head a company say the following: "The market is competitive and your market rate has increased, so here's a raise (of more than 2-3%)"
That has absolutely happened to me at the company I'm with. And yes, the proactive stance of eng management around keeping up with the market is one of the factors that's kept me happy there for over 4 years now.
Amazing that 4 years at one place is A Long Time now.
I've also seem this sort of market matching stuff at my BigCorp in the Midwest, I've been at my company 10+ years now, and would need to take a paycut to leave basically anywhere close to local.
This also happened to me at my current employer. In fact every year they review all employees salaries compared to the market rate and compensate for any difference with a raise. This was in addition to the yearly raise based on a performance review. I think companies serious about retaining talent are starting to employ this practice.
Curious, do you know what data is used in order to estimate the current market rate for a given position? As an individual employee I am very interested in figuring this out for my local region, but I really don't know what data sources are accurate.
"The market is competitive and your market rate has increased, so here's a raise (of more than 2-3%)"
The point stands, but this actually happened at Microsoft in the late '90s when the dot bombs were in full swing, and anyone that could spell "HTML" was making bank. In combination with my annual review raise and the market bump, I got a 35% raise that year. Step 2 of that process is "try not to be bitter about how much you were underpaid", but 90s MSFT stock options helped ease that sting a little.
>The number of resumes that cross my desk that have 4 months here, 9 months here, 6 months here is absolutely astounding. These are full-time positions.
So my last full-time (i.e. non-contractor status) job was for a startup that nearly failed. I was let go in the final round of layoffs, and I was only there for 9 months. I feel that a resume isn't really a good place to say "Oh yeah, my time here was short because I got laid off due to downsizing". Apart from actually talking to you about the situation, how can I explain myself?
Also, how would you feel about a resume where someone has had multiple 6-9 month jobs, but they were there as a contractor?
Not the parent, but contract work should be it's own self-employed section. It's understood that contractors are usually hired for a single relatively short project, and an ability to get these consecutively and complete them in the alotted time is a positive indicator, not a negative one.
I think as long as it's 1 or 2 short tenures, you're OK. He's (I assume) talking about 5 or 6 in a row. I also did a stint as a contractor/consultant - I list that as a single job on my resume, since I did get paid by a single employer during that time. Of course, my job title for that period is "consultant".
Especially with tech startups, short job stints are IMO looked at as more common practice for a variety of reasons. Most people also understand that there sometimes just wasn’t a meeting of the minds or whatever when hiring on someplace—or the situation changes between hiring and starting.
Tech firms below the top do relatively little investing TBH. Things you pay to bring anyone on board are not really investments.
But also, it's possible they have no kids/dependents and are playing as a free agent. That doesn't mean they'll be able to deliver value for someone out there, and they likely had no way of knowing you were looking for longer term candidates before applying.
I can the frustrations from a hiring mangers point of view. It does take resources (mostly time) to interview, offer, on-board, and integrate a new team member.
However, companies expect and want loyalty from their employees and offer next to nothing in terms of retention. If companies wish to get a better ROI on their hiring decisions they need to begin offering market-competitive raises. A 5% CoL adjustment is borderline insulting. Why would an employee choose to stay when all it takes is a few interviews to make a 15-20% pay jump?
I can't imagine that having to hire a new bunch of people every few months to replace the job-hoppers is a better investment than offering a realistic raise.
I think raises lose effectiveness if someone is a lone job-hopper with no serious investments anyway (house, car, family). An appreciable raise would be $5k, and surely you can onboard someone, ignoring their salary, for less than that as long as you aren't purchasing new equipment. Money is just not an effective cure for boredom.
You really don't want bored people on your team long term. Often technical debt goes unrealized for years, which a bored programmer is likely to produce more of. A dedicated hiring manager is not going to be paying off technical debt directly.
You really don't want bored people on your team long term.
Most commercial programming work is boring. But that’s because most work full stop is. There are things that aren’t fun but need to be done anyway. That’s why it’s called “work” and you are paid a salary for it. You could be sweeping the streets or mining coal or packing meat. Most programmers don’t realise how lucky we are that there is even a fraction of our work that is actually so fun we’d almost do it for free...
5% CoL is insulting when CoL goes up less than that? Maybe what you mean is that raises when you are promoted are not high enough?
During your first 5 years or so you'll probably get good raises as you gain experience and increase the value you provide to the organization. Past that, unless you're top 5% and negotiate well, you'll probably stagnate a bit in the pay department (stagnate at a very good wage, that is). In my experience, at least..
5% raises are insulting when a company bemoans the hardships of not being able to retain talent.
I get stagnating in pay raises after 2-3 years and receiving decent increases up to that point, but how can a company complain about retaining talent when they don't offer anything past the 5% in the first place?
It just seems strange to me that companies want the option to fire off employees at will, but also hate seeing employees take advantage of that ('job hop').
Maybe a 2 year contract with built in raise structure (assuming improvement based on pre-defined metrics) would be a better solution than at will employment.
Whatever the solution may be, it doesn't seem like many people are satisfied with the current system. Especially from a hiring management perspective.
I have a long string of <2 year jobs on my resume. 1st was a startup that failed after a year a half after several products we made didn't make back the money the company invested into them. 2nd was a year working for the university while I went back to school and finished up my degree (I literally couldn't keep working there after I graduated). 3rd was a year long at another startup that failed after we put out a few apps that couldn't steal attention away from other apps. 4th was a year and a half at a small company that was growing really well and then proceeded to have its worst year ever (lost most of its clients, including its cash cow) and ended up laying off almost everyone. 5th was a contract job where the manager decided to outsource our development after the lead developer quit (there was only three of us in the department) and they terminated my contract as a result, after just 8 months.
The 6th is where I'm currently at, and it's another job where they were doing really well, got purchased by a large corporation, and then the corporation started slashing and burning to save money. I've somehow survived here for 3 years, survived multiple layoffs, and we're down to just a handful of developers (and losing our office here in a few weeks, yay), and part of the reason why I've stayed is I know the last 5 jobs look bad to people who look at resumes, even though I was laid off or terminated from each one after the company or department fell apart, and I apparently just keep picking companies just before they fall on tough times. Meanwhile I've had to endure them getting rid of bonuses, freezes on raises, multiple reductions in benefits, etc. at this current job as I wait for a good time to jump ship for greener pastures.
Just so I have one stable looking job on my resume.
It can be difficult sometimes to stay with companies even when you try to. I have a bad habit of wanting to stay until a project is completed and out the door, but that's also when they're most likely to make layoffs.
I have been a hiring manager for 5+ years now. While this isn't great, as long as you emphasize that your first two were while you were still in school and more or less all of them were at startups, this doesn't look terrible. You rolled the dice, it didn't work out. It also sounds like you were a contractor at one of these places as well, just make sure you emphasize that.
The bigger question in my mind is why you got into so many situations with failing startups- were they doomed to fail and you just didn't have the business sense to see that? In either case, it sounds like you are still only a few years out from graduating, you get a lot of slack for inexperience in my eyes.
Of course I can't speak for everyone, some guy that has been at MegaCorp for 17 years since he stepped out of school may not be as kind, but you probably don't want to work for him anyway.
Regardless though, your latest tenure is 3 years. The trend is in the right direction. If your current situation is bad, now is almost certainly the right time to make a jump- I can tell you first hand, the quality of people we are seeing right now is substandard, if you know what you are doing, you will stand out. This is a great time to be picky not only about the role you accept, but the company as well- an established business that you know will be around in 3-5 years and hopefully thriving is particularly important. Also consider that we are definitely at the top of an economic cycle, the next recession is on the horizon and the weaker companies will feel the pain.
I basically wrote a post of my career life story, but I'll spare you that. Let's just say that each of these places higher ups hid the true danger the company was in until the last second as much as possible. There was always a reasonable explanation for why we failed to achieve success with a product and always something new and exciting to look forward to, until there suddenly wasn't. Like for my current company, they're just "cutting the fat" of the massive workforce they inherited and now we're past that and look at all the exciting things we are working on that will innovate and drive change and blah blah.
Yeah, things might get better here. It does look like their 5 year plan is going more or less in the right direction. But am I willing to wait 5 years with stagnate or no growth (in addition to the three years of no growth I've already endured) with a company that's proven multiple times it's unwilling to loosen its purse strings for just about any reason? I don't think it's worth it, and many other employees didn't either.
I'm mainly only still here because I keep having things happen in my personal life that makes it inconvenient to change jobs at that point (For example I recently bought a house. Mortgage lenders tell you not to quit your job until the closing date for that). And the one benefit of losing the office is we get to work 100% remotely, so I'll do that for a bit while figuring out what I want to do next.
> The bigger question in my mind is why you got into so many situations with failing startups- were they doomed to fail and you just didn't have the business sense to see that?
I think you answered that yourself in the prior paragraph. Joining a company is like rolling the dice. As an employee, you generally have no idea which ones will succeed and which ones will fail. You pick a horse and hitch to it. I look back to my friends in undergrad. We were about as smart and hard working as each other, but comparatively where we are in our careers today seems largely based on how lucky we got in picking which companies to work for.
I've switched jobs every year and almost tripled my pay in 5 years. It's stupid to not job hop, I'm making more than twice what my friends do that have stayed put.
In my experience, companies with a ton of job hoppers have better engineers too. The people that hop a lot tend to be more outgoing and amenable to taking risks.
Job hopping is only lucrative because companies take advantage of inexperienced devs and never give raises.
If you can hire those you need in the current market good luck to you, but at the moment there are more people wanting to hire than those available.
Which means the worker is hiring the company, not the other way around.
And that's how it should be overall to drive forward wages and productivity.
> It's especially true of front-end developers, but it applies across the board.
In my experience front-end is an extremely weird field: "classical techies" consider it stupid, management is addicted to it and the field is very fast paced. Also I find it quite unthankful.
The companies could do a lot to make it more attractive to developers. Having worked for 3-4 years a lot of front-end stuff, one job was indeed only 3 months and cut-throat toxic, I don't want to do it ever again. Even though I'm really good at it.
And my opinion gets confirmed continuously, at our company for instance most pressure is on the front-enders. Why? Because that's the only thing management understands or at least they think they do. On the other hand once you touched front-end it's very tough to get more technical tasks.
You are only doing yourself as a disservice by holding this against them if they are otherwise acceptable. They probably will just stay in their current position if they don’t get hired. A year later they probably are worse for having failed their other jump attempts, but a year later you won’t hold a quick jump against them, and hire a dud. Ignore their jump history, hire if they are good, retain them by paying market rate in the future.
How many products have development cycles longer, than a year in the same mode? While I was working in Microsoft, management switched people between projects in 1-1.5 years due to some "reorganization".
And that was a large product. It would happen much more often, if they'd follow agile.
> If it's one or two jobs on a resume full of longer tenures, that's one thing. But if it's every job you've had since you graduated from coding bootcamp two years ago (three jobs later, now looking for the fourth), why invest in that person? Why bother?
Because I'm looking for a place that actually believes in earning the loyalty of employees and investing in their satisfaction. An employer who looks for the upside before investing transactionally has already gone badly wrong.
It's unfortunate that so many recruiters have this mindset. Instead of judging based on the time spent at places, ask why they're bored and what they would enjoy working on. If that lines up with your opening, then great. If not, then move on. See if they have and side projects or even work examples that they're passionate about... But by all means, don't judge based on something that is often times out of their control entirely.
I've been working in front-end development for the last decade, half of that freelance. I took my first full-time job in 2014. It was a contract-to-hire setup with an agency in DC. After working on contract for 4 months, they gave me an offer of $30k... For Washington DC. Needless to say, I politely declined, but that meant moving back to my home state in KY where tech jobs aren't a dime a dozen. After a 3 month gap, I landed a job with an agency that specialized in building and maintaining hospital and healthcare network websites. I was required to move to a nearby city for it, in Louisville KY. - The job lasted barely 6 months before the company closed the satellite office. I was told I could move across the country, or I would be let go. Because of my work history, I couldn't draw unemployment and my savings were pretty slim after the past year of running around all over the place. I took the first job I could land, at an autodesk reseller company. Three months after starting, there was a reorganization with my direct manager getting the boot, and someone with a "fine arts degree" replacing her... My new manager had no experience managing teams, no web experience at all, and she was running the entire marketing department. Needless to say, after a total of a year there the entire marketing department (5 people at that point), was shuttered. The CEO/HR tried to squirm out of it by firing everyone for "lack of performance", but thankfully most of us had proof that our jobs far exceeded the descriptions we signed up for and expectations were absolutely unreachable. I drew unemployment for the FULL 6 months following that, casually and carefully looking for my next job. I landed a role as a front-end designer at an elearning company and as of now I've been here a little over a year. That said, 6 months ago we went through a reorganization and more than a dozen of the staff were let go (out of 100 or so).
Moral of the story is, sometimes saying "I'm looking for exciting new projects and to learn new things!" sounds a hell of a lot better on a resume when compared to "my last company reorganized and no longer needed me, the one before that shuttered their marketing department, the one before that closed their local office entirely, and the one before that couldn't afford to offer a living wage in one of the most densely populated US cities..."
Things happen, I get it. That's why I talk to people to get the full story.
A few notes:
> "I'm looking for exciting new projects and to learn new things!"
Because literally everyone says this, this is a meaningless sentence. After all, no one is saying, "I want to be a maintenance programmer." Demonstrated desire to learn new things is what sets apart the doers from the talkers.
> Instead of judging based on the time spent at places, ask why they're bored and what they would enjoy working on.
I do, of course. I could write 1000 words on this topic but it's late and so I will just say that every developer wants to work on these projects, there are never enough openings on them to go around, and someone needs to write the code that keeps the lights on. A wise developer would 1) initially work hard on their own time to gain the skills necessary to be given these kinds of tasks at work, and 2) propose interesting projects with a direct business relevance at their current company before looking for new jobs elsewhere.
> maintenance programmer." Demonstrated desire to learn
> new things is what sets apart the doers from the talkers.
Okay but having worked myself on 2 maintenance-legacy-everybody-hates-projects, I realize that there is no interest of anyone that the projects get progressed. Reason these projects got into that state are always political. Of project #1 I did a 80% rewrite in 4 weeks - the original took 3 years and ate hundred thousands - of course my rewrite had to be discontinued. In fact nobody officially was allowed to work on it, except that I had to. Nice, right?
This is an extreme case but I find it the norm rather than the exception. Everybody is afraid of new things. And no, many devs do not want to learn new stuff. Might be true that everybody says this but who cares. I mean when I put on my CV every technology I know, recruiters become suspicious and say that doesn't make sense.
Maintenance projects bring in revenue for the company today—perhaps even most of the revenue. But they're not the future of the company. Perhaps these projects are serving out the remainder of a contractual obligation that is profitable but not wildly profitable. Perhaps they are feature complete and adding more risks complicating them. Perhaps this line of business is declining every year.
Companies put time and effort into projects with greater future returns.
Rewriting your maintenance project does not just affect you. It requires other people: QA, systems engineers, etc. It carries risk that something breaks. It requires energy and focus, when it is essentially a distraction from future projects. There is a moneymaking machine in the basement that requires turning the crank once an hour to continue working. You are the person employed to turn the crank, not rebuild the device. Get it?
When I say propose new projects, I mean new projects that make the company money. Work within to change the landscape of your job. Learning how to do that is infinitely more valuable and rewarding than a $10k bump at another company.
I'm an undergrad at University of Waterloo and the co-op program here gives each student 5 work terms, 4 months each, spread out over a 5 year degree plan. I don't know much about co-op at other universities but I would imagine that this is a contributor to the phenomenon you're seeing.
Parent is specifically talking about full time positions. No one is concerned about short stints that are clearly internships. That's just how they work.
I think chongli is wondering if the job-hopping mindset is forged in an academic career in which you work for 4-5 different companies in a short amount of time.
Do you have the option to re-up at the same firm each time?
I'm just observing from an ex-boyfriend of my kiddo (so no questions haha), but University of Cincinnati's engineering program alternates co-op and academics every semester. So you're looking at 6-8 work terms of 3 months each by the time you graduate. However, as far as I can tell most interns re-up to the same company. He's been at the same one since the beginning. It's a great program.
For an intern, I think that doing several different things is a positive sign.
However, I expect professionals to stay at companies long enough to accomplish "interesting" things. A series of unrelated 3-4 month projects does not give me confidence, and indeed, sends a message about lack of focus and resolve.
If you are putting each individual work term as an item, make sure to note the co-op program. I did something similar and it was never seen as a negative.
In the Bay Area market rates (and cost of living) were rising at 10%+ per year for several years. Add an adjustment for experience, and the average raise for new employees should have been 20% or so to be market-competitive. But almost no companies did this, hence tons of job hopping.
I give some weight to a CS degree from a top engineering school, but beyond that I haven't observed a correlation between education and capability.
I give a lot of weight to intellectual curiosity and self-directed initiative, as those are the clearest signals (along with empathy) of being a good engineer.
I am thrilled to hear this. If you can't hold on to your employees, pay them more, or give them working conditions like WFH or an easier commute, then you don't deserve to have them!
That said, I sort of hate this headline. These people aren't quitters. They're ambitious, and they want more.
All either basic workplace expectations or intangible irrelevant gimmicks.
People are not that dumb. If you want to avoid paying people tangible benefits and what they are worth they will dump you and no amount of sunlight and social events and catered lunches is going to change it.
To be fair, when I started in IT, around 2001, it was common for IT to be in the basement or sub-basement. It probably still is at larger companies or government contractors.
To be fair, natural sunlight is actually a massive deal to me. I can’t focus without it and I get weirdly claustrophobic in rooms without it. I wouldn’t take a job in an office without windows, even if my salary was doubled.
Yeah I'm not saying it's not important but it's still sad and embarrassing to brag about it at the top of the list of your company benefits.
So the deal is "salary that isn't going up + a bunch of gimmicks".
In fact many of the "benefits" are designed to benefit the company such as social events outside work hours that is basically free team building activity for the company.
Or other gimmicks to trick employees into working longer hours.
Then they wonder why people hop.
Because there's nothing else other than that salary going and someone next door is offering 10-20% more.
Real and tangible benefits takes some guts to offer and they don't have it.
It could be things such as extra paid leave days, highly paid overtime or no overtime culture, shorter work days for usual market pay (say 9 to 4), private offices.
Employees will sure as hell miss a 9 to 4 job a lot more than your snack-packed kitchen and beer on tap.
It seems like these days people have to "move around to move up", or companies have a problem creating opportunities for advancement that don't involve promoting people to middle management, if one can even call that a promotion. Of course that's only one part of the bigger picture.
Is there a word or a phrase whereby the Peter Principle takes such a hold in the structure of management that it no longer becomes possible to even promote? The 'Peters' get to a position and create an artificial ceiling where potentially more capable would-be managers don't get promoted because their manager is a bit too dim to realize there are people languishing underneath them?
I saw exactly that at the first shop I contracted at decades ago. They treated their engineers like dirt. During the interview they were told that travel would be a couple weeks a year. Then some were literally handed airplane tickets when they arrived their first day of work and left on (remote) site for months. To compound things, they would return expense reports unpaid if everything was not filled out exactly correctly.
One day a co-contractor commented at the lack of energy among the employees. He observed that none had any get-up-and-go. I thought about a moment and replied that anyone with get-up-and-go had got-up-and-gone.
I've seen this phenomenon almost everywhere. A lot of times it kicks into high gear when "the powers that be" start making big, dumb changes (though often times they don't seem quite so bad in the moment). The best talent with the most important experience evaporates.
The thing that is the most pernicious about this effect is that it can be difficult to notice objectively. People who are in the trenches, are clueful, and know first hand the qualities of individuals who leave will know immediately that this is a bad development and that the organization has lost something of significant value. Even so, it can often be difficult to back up that gut instinct with factual evidence. It often takes years for it to become fully evident unless there's utter incompetence on display, and that evidence is usually in the form of it being more difficult and taking longer to execute on challenging projects, while achieving less success as a result. The thing is, in almost every dev shop on Earth and especially in the "higher level" ones the projects from year to year or "release cycle to release cycle" are often not 1:1 comparable, each has their own unique difficulties and complexities and even without losing any talent it would take a different amount of time to tackle those projects and the results and "level of success" would still be different. Without a window into a parallel universe it's hard to say how much you've fallen behind the nominal "unevaporated" track.
And in the eyes of management it's even more difficult because they are even more resistant to the notion that something they've done has had a negative impact on the company. If the end result is anything other than abject failure, if the lower quality "dead sea" org is still able to achieve a decent measure of success, still operate a profitable and successful enterprise, and so on, then they will think everything is fine. Even if the difference might have ultimately been orders of magnitude difference in levels of success, because that alternate timeline is unknowable.
And if you wonder why so very much software is surprisingly mediocre despite many hundreds, thousands, or tens of thousands of dev-years of work being put into making it better, well, maybe there's a reason for that.
Thank you for this comment. It helped summarize my thoughts.
Do you know if there's any pattern to the big, dumb changes? Are specific changes more likely to signal shipjumping time for top talent? Or is it a growing dysfunction?
When you take stock of everything a lot of the changes are obviously bad when you think about them from the "big picture" perspective, but sometimes it's hard to have that perspective, especially as changes tend to creep in incrementally. The biggest red flag I'd highlight is just bureaucracy in all its forms. I don't mean things like code reviews or fixed processes for doing things (although in some cases those can be bad). The biggest red flag is when there's a switch from certain important decisions being made by individuals to decisions being made by some rule based on certain metrics.
Over reliance on metrics is often a huge red flag. If your continued employment, your bonus, or your promotion prospects rest on how many bugs or tickets you close, how many test cases you automated, etc. then that's problematic. Because metrics can always be gamed. And if people are being judged relative to one another based on gameable metrics then only the people who game the metrics will get ahead and everyone else will be left by the wayside. To the detriment of employee morale and actually getting the right work done that needs to get done. If you tell someone that they have to close lots of bugs to show they are doing their job well then they are incentivized to figure out how to wiggle out of responsibility for a bug or "fix" bugs using the most expedient hack possible. Instead of taking the time to investigate a bug thoroughly as far as their expertise and context allows, doing a root cause analysis, stepping back and analyzing the meta-context that made the introduction of the bug even possible, and maybe doing the work to design a very thorough fix for those problems, beyond just the limited scope of making the one bug go away in the short term.
Good development work can often defy all metrics that attempt to measure it. It can look like an average of a net negative number of lines of code written. It can look like spending a month on a seemingly inconsequential bug (which turned out to have a very interesting cause that revealed a fundamental flaw in the design of the system which required several months to fix but led to a huge increase in overall reliability). It can look like days, weeks, or months spent not writing code or fixing bugs at all. Maybe that time is spent doing documentation, maybe it's spent doing design work, maybe it's spent doing research, maybe it's spent picking apart an existing system to learn exactly how it's put together, all of which might end up being hugely valuable. The thing is, there's no metric for things like "prevented a thousand bugs from being filed over the next year". And that gets to how difficult it is to objectively measure the work of coders.
The other major red flag is when you see people treated as just interchangeable resources. Does the company seem to value people's time? Does it treat people like human beings? Does it seem like the company/employee relationship is a cooperative (vs. exploitative) one? Is the company flexible about working from home, working non-standard hours, etc? Or does it treat knowledge work like a factory job where it cares about hours worked, "butts in seats", mandatory "crunch time", etc.
That may be the best description of the phenomenon I've described. I lived that. It was unbearable-stayed around way longer than I should have because I did genuinely and truly believe in the mission of the company. They gave us reason to and backed it up-but after a while, well yeah the water began to evaporate org wide, not just engineering.
It got to the point where engineering was down to three people-present company included-and a guy managing us who probably should have been let go long enough and neither myself or the other fellow could really stand to be around even socially-much less as a cohort and colleague (and to this day, the other guy and I strongly believe was the root cause of so many of our other engineers quitting once the former Director left, leaving jerk character as the most senior in the room by longevity alone).
Thank you, this pretty much describes my current employer. The dead sea is so dead that the entrenched folks have established a number of policies that restrict access to various resources that are critical to performing work.
If you ever walk out of a technical meeting, summarize key details with one of the senior attendees and they tell you, "that's not what we discussed", then you probably work in a dead sea.
The more I think about IT industry the more I'm convinced that the majority of it is bullshit jobs [0]. Productivity, efficiency, job hopping, long term short term - it all almost doesn't matter. Giving raise or not is not about an individual's contribution to the bottom line. It's about social status, pecking order and winning an argument for its own sake.
> "There is wisdom that only comes from complete product cycles -- no amount of job hopping can provide it."
Sure there are places where it matters. But for majority of projects it doesn't. There are countless examples of (semi-)failed projects with massive budgets, and those budgets keep getting allocated regardless of any track record.
So no wonder a lot of people in this industry get bored. Will frequent job hopping hurt their future career prospects as one of the comments suggests? Probably not. Why? Because it is important that software projects fail - [1]
Certainly, and if most jobs allowed me to ship products I'd like to stay and see them all the way through. A lot of jobs however, end up with the products being stuck in development hell as management keeps changing requirements while being too scared to test their assumptions in the market _and_ don't give raises.
If I'm already going to be stuck building things that never release then I might as well get the most money that I can
I've worked at 3 different companies over the past 13 years (1 large, 1 small, now 1 medium in size) and in all cases a full product development cycle is on the order of 1-3 years at all of them for both hardware and software. I've shipped tons of stuff. If you're finding "a lot of jobs" which don't involve actually shipping product to customers, maybe you're looking at the wrong kinds of companies or the wrong kind of industry?
I am in enterprise shops mostly and the one shop where we were releasing something every week or two was a 5 man engineering team that was left alone by the main company until we started making good money, at which point the company started interfering and we stopped shipping. In the enterprise jobs I have more projects under my belt that were completed and never released versus released products.
Every time it's been the result of either a low level executive losing a political battle and the project being shelved to rearrange resources or a company with little to no competition where executives didn't seem to care much about a million wasted here or there. One project I was on wasted over a million in development costs with the 5 product owners and me as the single dev because the executive who needed to sign off on the completed project didn't like the background color and insisted we started over at the requirements phase because "What else might we have gotten wrong?"
Startups seem more fun/invigorating but the stability and pay haven't been there when I looked so I just stick at the enterprise jobs doing what I can and saving money aggressively to be financially independent and start working at jobs that I want to work out
Some cities are dominated by insurance/banking/healthcare companies. Their IT needs are quite different than the consumer software space.
It's more like a salesguy just landed a big fish and the big fish is making these demands to close the deal, so bolt on some new functionality to your existing platform. Ad nauseum.
Outside of specific industries such as video games, very few software development teams use the waterfall model these days. Viewed in that light, Carmack's comment is difficult to reconcile with standard practice. Much of the software in development today is never really finished, it's under constant revision.
I can definitely see the appeal of finishing a project before moving on to the next one, however.
I think the sentiment still holds, waterfall or no. There are still an identifiable cycle of product development in an agile shop, but they aren't explicitly mapped onto differentiated development phases. It is still possible to see the evolution of a product from inception to maturity, and that is a valuable experience.
The point is that if you leave too early you don't get to feel the weight of your earlier choices, therefore you don't really learn from your mistakes.
There are lots of different product cycles and lots of wisdom to gain by doing only bits of them repeatedly. Which is not to say that Carmack is wrong but that you don’t need to stay in a job you don’t like just to see a project from beginning to end.
The fact that "job hopping" is usually used in the pejorative says a lot about the master / slave mentality that large (and small) companies have.
Why would anyone have loyalty to a company that has no loyalty in return. This is especially true in the US with employment at will. It's less true in some countries but is usually legally enforced as opposed to cultural.
My wife's career has been defined largely by strategic hops. Her reputation has been built up by doing good work -- her title and salary are almost entirely due to moving around when it was advantageous.
A lot of companies are reluctant to promote internally due to office politics. In my wife's industry, it's nearly impossible to go from XXX to YYY at the same company. So, she joined a much smaller company that could only offer title advancement. Six months later she was back at a major player, with title YYY and the salary to match.
(The CEO of that company called her a job hopper.)
She did the same thing hopping out of the industry to take over a company as ZZZ. Now's she back in as an AAA, one position away from running the company (a top company in her industry).
Her industry needs more YYY and AAA, but won't promote to create them. Catch-22 they only want to hire people who already have those titles. So, your choice is either grind with little or no real advancement or use companies and their current situation to your advantage.
This is necessary and isn't just about your personal gain. My wife's career has helped a lot of her younger colleagues navigate their own.
I agree with what you've written, but I will say that as someone who's hired lots of folks, the time spent at each "hop" matters.
That is, I want people who have dealt with a reasonable lifespan of a product and been responsible for multiple stages of growth. Thus, if you've had 5 different jobs in the past 5 years I would look at that as a real negative (one reason being that given how difficult hiring is I want to invest in someone who is going to stay longer than 6 months or a year). However, if you spent an average of at least maybe 2-3 years at different companies (and perhaps a much shorter term stint at one company for whatever reason), I wouldn't look at that negatively at all.
That implies that all jobs and work places are more or less equal, and in my experience they very much are not. I've had about 7 different tech employers in my career. Of those experiences 3 were pretty terrible and one started out pretty good but devolved into being borderline terrible near the end. Of the truly terrible experiences, only two of them had enough red flags before taking the job to make it obvious that they would be terrible, but at the time I was much less experienced and didn't see those flags at all.
There are plenty of folks out there who are even less lucky than I was. Folks who were lured into a shitty job early in their career before they had the experience to know better. Folks who just got unlucky and ended up working at places that seemed fine from the outside but were hell holes on the inside, or turned into hell holes due to mismanagement or reorgs or culture shift or what-have-you. Those people shouldn't be punished for making the rational choice to go somewhere else.
Additionally, people don't usually work just for a specific company, they work on a team as part of an org within a company. And sometimes changes in a company mean that teams get changed or eliminated. That can happen for a lot of reasons independent of the quality of the work of the team, but when it does it can often put people in a tough spot, in the best case they will have to go on a job hunt internally, but often times (especially in hot tech markets like SV) if one is doing that it makes sense to also cast a net outside the company as well.
Asking people to spend 2-3 years at a company without any knowledge of what the conditions were like there or the reasons for someone to switch jobs is pretty silly. In fact it could be an indication of a lower quality employee. When conditions go south the people who have the highest intrinsic motivation to do good work and the people with the best skillsets are precisely the ones who are more motivated to leave and can more easily find a new job. People who just cash paychecks and have mediocre skills are going to hang on to whatever job they have for as long as they can.
Additionally, if a company is worrying excessively about holding on to employees, worried that they might be "too flighty" or what-have-you, that is kind of a red flag for me. If they don't have the confidence that they can convince someone to stick around then maybe they are expressing a subconscious judgment of the poor working conditions (or lack luster compensation) there.
Ok, so a handful of short stints could be because of toxic environments. But say you classified all 7 of your previous tech employers as toxic; at some point the only common factor left is you. No company can guarantee zero employee churn - some people are just the type to bail after a few months regardless of what the employer does to hold on to them. It's only logical for a hiring manager to try and identify and avoid those people.
This is bad statistics. If your only evaluation of an employee is their resume or work history then you've already failed, regardless of what it is. You need to personally evaluate their work history. If you have knowledge of the work environments at different places then that might help you evaluate whether someone is truthful about their reasons for having short stints. If you don't then you'll have to use your judgment of their technical skill, interpersonal skills, etc. (all the stuff you get from the in person interview) to make that determination.
Ultimately, the resume is a very weak form of recommendation for or against any particular individual, in my opinion. I've seen people with very strong resumes who couldn't code their way out of a paper bag. I've seen people with patchy or "weird" resumes, no CS degree, sometimes no college degree whatsoever who were top tier developers worth their weight in gold. Your screening and interview process needs to be good enough to be able to provide a reasonably trustworthy result even without a resume, if it's not then it's a failure. If it is, then it's comparably easy to make a decision on someone with lots of short stints.
Also, I find this whole discussion a bit odd in a couple ways. For a lot of big companies (like Amazon and Google) the average tenure is only about 1 year, and people here are drawing attention to 1 year as some sort of red flag duration, when in reality it's super common for a lot of devs at a lot of companies. Another is that I don't see people being concerned about overly long periods of employment at the same place. To me that's potentially a red flag too because it might indicate someone doesn't have the sort of job prospects necessary to get hired elsewhere. Though, again, you do need to always rely first and foremost on the in person interview.
Someone's resume might raise questions but it's unprofessional to fill those questions in with prejudices, you need to answer those questions with data from phone screens, homework assignments, in person interviews, etc.
lol, reminds me of a twitter thread. A guy said "As a hiring manager, job hopping is a red flag" . Then someone else posted that guy's LinkedIn page, which was a succession of short stings.
Thus, if you've had 5 different jobs in the past 5 years I would look at that as a real negative
Why? Because the only way to for a working professional to accumulate a "reasonable lifespan" of product knowledge is to anchor themselves to one company? That seems incredibly short-sighted thinking given the changing dynamics of the workplace from remote workers to an increasingly freelance economy where people can work for disparate organizations and still accumulate knowledge, skills and capabilities that you might still find valuable if you weren't looking at arbitrary numbers like how long a person has spent with the same company name in their email signature.
Is it a good way? Sure.
Is it the only worthwhile and relevant way? Mmmmmprobably not.
Maybe you've lost me, and I misunderstand your post.
Initially I replied thinking you were talking about getting training in a specific set of tasks or platform, you mentioned "Product X".
But it seems, now you're talking about training a worker "to productivity", which is a bit more oblique and not as specific of a regimen against what you initially posited-on this I have somewhat of an easier time giving you the concession.
Let me just ask, before going further: which position are you taking? Training an employee to use a specific tools set that we've established isn't widely used, or training an employee to be most effective and productive day to day?
Imagine you need senior embedded programmers with QNX and safety-critical systems experience, or someone with strong skills at understanding poorly-documented code in a software-defined radio system designed by consultants.
You're in a smaller city, and when you run job adverts, you only get a handful of applicants who can code and they're mostly Javascript+Windows guys (that's what the other big employers in town use).
So you'll have to train them on new languages, new problems, new conventions, new tools, new platforms, new build systems, new ways of debugging, new quality standards, and so on.
Initially they'll need to spend a bunch of time developing those skills - which means they need the attentions of your existing team members - and their early code will reflect their inexperience. I know my early code did! It won't be until they've spent quite a while working on the new system that their productive contributions will outweigh the sunk costs of their training.
> ou're in a smaller city, and when you run job adverts, you only get a handful of applicants who can code and they're mostly Javascript+Windows guys (that's what the other big employers in town use).
> So you'll have to train them on new languages, new problems, new conventions, new tools, new platforms, new build systems, new ways of debugging, new quality standards, and so on.
I would scour the country for embedded engineers of any stripe before I would hire JavaScript or Windows devs for an embedded role. Hell, I would even hire freshly-minted EEs for that role before I would hire those experienced engineers.
I don't see any of these training challenges being any different hiring someone who job hops, these sound like very common things a team would likely encounter onboarding just about any contributor...and I think we're drifting off course from the main conceit of this whole discussion no?
The challenge is if employees aren't productive in the first 0.5 years, an employee who stays for 3 years produces 2.5 years of productivity, whereas an employee who stays for 1 year only produces 0.5 years of productivity - a much lower return on the same investment in hiring and training.
Maybe you should start paying people what they are worth? Those annual job hoppers do so because a year later someone is offering a 20% raise and you offered a 3% bump and an "atta boy". Companies are trying to control wage inflation by refusing to pay market rate to their current employees.
For the record the average tenure in the Bay for a software engineer is 2 years. So your "at least" is the average.
It’s so strange, you’d think the cost of recruiting, hiring, and ramping up a new employee would be much more than just bringing your existing productive employee up to market rate, yet few employers seem willing to do this.
I left my previous employer on very good terms and on the way out made it clear that I liked working there and all it would have taken to retain me was to adjust my comp up to market rate. They looked at me as if I just escaped the lunatic asylum.
> It’s so strange, you’d think the cost of recruiting, hiring, and ramping up a new employee would be much more than just bringing your existing productive employee up to market rate, yet few employers seem willing to do this.
Not strange at all. The company is willing to sacrifice employees to send the message that people are replaceable and will be let go if they demand salary raises.
It's a way to keep salaries from growing.
> They looked at me as if I just escaped the lunatic asylum.
Good old gaslighting. You get the same look from managers even in high turnover company.
I think a lot of companies think of themselves as the better side of a tradeoff between QoL and compensation. "Sure, you could make more money elsewhere, good luck with that!"
Makes sense when you think about it from a business perspective. Some people like running lifestyle businesses. These businesses won't make anyone rich, but one can carve out an economic niche regardless. That niche is predicated on being willing to accept less comp than the broader market pays.
My last job was just such a compromise, and, I gotta tell you, if they had listened to me when architecting their new ecomm platform, I'd still be working there, not moved on for $20k more comp.
Corporate feudalisms are actually really nice when you're living in the castle, not working the fields.
Sometimes I think it would be worth it to just quit and re-interview for your current job every year as an outside candidate--you'd end up ahead of just staying there.
From my experience, one of the causes of this issue is that in some companies, the people who are in charge of the money (upper/top management) are rarely also people with software engineering backgrounds. These people are often unable or unwilling to fully grasp the concept of "ramping up a new employee" in the context of software development. The fact that any large codebase will take a smart person 3-6 months to acclimate to and become productive. The fact that other people on the programming team have to help these new people (and therefore lose productivity themselves). The fact that the new person is going to produce more errors and the number of defects in the product will temporarily increase.
If you look into the history of a company (e.g. by looking at how many users in the issue tracker are no longer in the company etc.), it's usually quite obvious when there's a systemic problem - the employee turnover is high. The management is interested in saving money by looking at the market and trying to hire at or just below the average compensation levels. In their eyes, it's cheaper to bring a new employee to the team (and there's always some fresh meat on the shelves of the job market) than to pay the current (experienced) employee more. And in the short term, they're probably right. But in the medium to long term, this approach tends to have a cumulative effect resulting in high employee churn rate.
The problem? Software development is not fast food industry. You can't have high employee churn rates without it manifesting somewhere. But pointing out exactly where and how is not easy (linking causation and effect in a discipline involving multiple people across multiple years is not trivial), especially when you need to link it to the bottom line (the market state and marketing efficiency will mess with your analysis... not that you typically even have access to the financials as a run-of-the-mill employee) and even if you do, there is no reason to expect that you would be able to effectively bring these findings to the management (such work would probably be seen as you overstepping the bounds) or that the management would change the processes responsible (that would be expensive). It's an uphill battle. When you are in a company with high employee turnover, there's typically not much you can do other than to start looking elsewhere. These types of companies will have problems (lower level of respect/loyalty, higher level of product defects, lower productivity, higher technical debt), it's best to leave them as soon as the opportunity presents itself.
People who hire contractors are usually not developers. I've had my fair bit of working with contractors, let's just say that if you get them to work in domain logic without very strict oversight, you are going to have a bad time. Tooling, purely technical matters - that's more like something you can give them to work on.
I try to impress upon younger workers that in the vast majority of cases, employees owe their managers nothing. Too many young employees get trapped into thinking, "yeah, the company is uncaring, but my boss is awesome". They don't have the life experience to inform them that no matter how awesome their boss is, it is extremely unlikely they have no external pressures to trim staff whatsoever.
The rare cases are those bosses who own the company outright, and make it plainly obvious with how they compensate and treat employees over time (2-3 years of consistent, first-hand observed behavior) that they plan retention over the long term. Or you're part of a worker co-operative or similar stability-promoting arrangement. Okay, then I'll grant you that you might afford the luxury of developing a less self-interested, short-termism strategy. It's not all sunshine and roses on that side of the fence, either; plenty of criticism from market fundies that such arrangements are only possible in sclerotic, uninnovative, inefficient, dullard organizations (I happen to disagree with the fundies on this point, but that's a discussion for another time).
Question. I started working with a startup right after my Masters when it barely had about 10-12 employees. I got some stock when I started. This was my first start up and so I don't know if what I got was a fair deal (if not a good one).
Now, its been about 4 years since and the company has grown to be about 60-70 employees and I am yet to get a raise, the company still doesn't match 401k etc. I hope the stock pays off eventually, if the company does well, but I am not sure if or when or how good that will be. Reading articles like this or articles that mention salaries that people are offered in other companies, I am beginning to think if "job hop" is probably the way I should go, even though the work environment is fairly good and I have enjoyed my time here.
Get another job first, but yes, market rates go up much faster than 0%. You wouldn't cut an annual check to your boss for $10k just to be a team player. With compound interest, etc., four years of no raises looks like five figures, easy. And that assumes you haven't gotten valuable experience and developed marketable skills in the meantime.
Did you get stock or did you get options? Stock seems very odd to me for a 10-12 person startup. Also, I'm assuming you got a refresher on the equity at some point (otherwise you're no longer vesting after 4 years)? No raises for 4 years is simply unacceptable, regardless. You're losing money at this point. I haven't gone a single year without a substantial raise since I started working.
Options. I am one month away from completing 4 years and vesting completes then too. I did not get any refresher on equity.
As far as I know, there was a round of raises/appraisals and end of year 3 but I was left out. I was on a F1 (student) visa when I started with this company and I was unlucky enough that I didn't get H1B visa until my 3rd attempt (lost the first 2 attempts in the lottery), I am guessing here, but I think I didn't get any raise/equity because they knew I couldn't afford to leave back then with my H1B processing still going on.
The slavery of foreign workers looking to employers to sponsor them on their path to citizenship. We have a similar program in Canada, and it's really sad to see talented people stuck at dead end jobs making crap money, all because their employer is their visa sponsor. It's even worse in the lower wage sectors with temporary foreign workers.
In East Asian economies, it's perfectly acceptable but I'd argue that they care of their employees much better but obviously not without strings attached-productivity is low due to insane working hours.
For instance, my cousin works at Samsung and although he is pretty much a highly paid slave, he is better off than most Koreans...
I don't know if it's right to act entitled. After all, we are receiving money in exchange for our time. If one is not happy with it, then wayne gretzky it.
Part of this comes down to the expense needed to find and train employees. The structure is set up to resent this expense and the probability of the expense.
The incentives guide behavior. I'm not offering a solution, just the observation.
There are certainly many definitions of “winning”. I can only speak for myself: quitting my old job lowered my pay, but resulted in my being a lot happier and having more time to spend with my kids. If anything, the current trend and the number of people willing to jump jobs has helped people like myself take the leap into something new — something I might not have done without seeing others do.
That’s awesome. I enjoy working for the company I do now, but even with the previous one, only when the company started experiencing issues (like selling off contracts and about 75% of the employees) did I have the guts to move to something else as I wanted to remain in a “steady” job for my daughter.
That is, probably would’ve loved to with the previous place, but didn’t have the confidence to.
1. If you're in the first 10 years or so of your tech career, you should be changing jobs every 18 to 24 months. These are the primary years in which your salary goes up, and to stay in a role for a longer period of time without significant (e.g. 20%) raises could have a dramatic effect on your lifetime earnings.
2. NEVER discuss your current salary with a recruiter or potential employer. It's currently illegal in some jurisdictions to be asked about this, but overall it's still very common. See more details and negotiating strategies in an article I wrote on this topic: https://adamdrake.com/what-is-your-current-salary.html
3. Be prepared to transition into a role where you are responsible for people and output, to some extent. This makes you more valuable to companies because you are able to increase output from a group of people instead of from just yourself. Think of it like scaling your brain. The transition from Teammate to Team Lead can be difficult, and after advising multiple companies and teams on the topic I wrote up some of my thoughts: https://adamdrake.com/teammate-to-team-lead.html
4. Maintain technical skills and make sure you're always delivering valuable technical results, or providing guidance to people so that they can do the same: https://adamdrake.com/always-be-shipping.html. People and companies will almost always value you as a member of the organization based on what you've provided lately, so you have to keep producing. Once you've been hungry, you'll never feel full. Stay hungry.
Lastly, I think it's pretty clear to all of us that this could be avoided if companies took care of people, gave raises preemptively and as close to market rates as possible, and gave people an opportunity to advance in an environment with a high degree of loyalty. Unfortunately, that's almost never the reality.
Regarding #2, it gets harder to not disclose a range if you're on the higher end of the locations pay scale. I've been through a couple interviews attempting this strategy only to find out 5 rounds in they're offering a substantially lower salary than my current and it unfortunately was a waste of time for myself and the potential employer.
You can definitely talk about your value but most of the time the company has a set budget for the position.
Completely agree on this. After the 5th time going through multiple screening rounds only to find the hiring managers had a really low budget and were actually looking for a cheap worker to take advantage of, I started telling recruiters up front what my salary expectations were. It's saved a huge amount of time.
I can definitely understand the feeling of wasted time, and perhaps I didn't do a good job of explaining the point.
The main issue is that you shouldn't discuss your current salary, but you should absolutely discuss the budget for the role. The reasons I make the distinction is because many candidates will have a lower current salary, and although the company has budgeted X for the role they will be happy to pay (X-delta) instead.
Talking about your current salary is basically never a good idea, but talking about the budget and salary for the role is certainly a good idea.
I've been at the same company for 20 years, and when I read an article like this, I have to wonder if I've done my career harm. I've held many different positions at this company, and have survived the dot-com era and the recession. I'm more or less satisfied with the pay, but always have that nagging question if the grass is actually greener on the other side.
All that may be moot, I'm now over the "tech Logan's Run" age of 40; will a recruiter simply assume I'm a dinosaur that hasn't learned anything in the past 20 years of delivering software and services?
A few spots in this article make it sound like the normal practice is to quit your job before finding the next one. Is that something that a lot of job hoppers do?
I’ve done this twice. When conditions and stress and the possibility of anything getting better we’re all so bad that I literally thought it would be better to be homeless than to keep going at work.
The first time I was very young, had no savings, and no professional network. I ended up moving across the country to stay with my family while I got a new job lined up. It took me almost no time at all to get hired at what turned out to be a very good company.
The second time, I had 6 months of expenses in cash and more in long-term savings of various types.
For whatever reason, the way the interview dice rolled that second time it took me 8 months to get back into a solid gig, I chewed up all my cash savings, and it hurt a little more because I was counting on professional network contacts that made promises they didn’t deliver on.
So, your mileage is going to vary. I was probably too ambitious in my initial searches the second time around, looking for a big boost in both salary and title.
I can’t speak to how common it is, but I will say that the frequency of it is related to a few key factors: 1. How startupy the company is. How willing they are to burn people out with long, pointless hours. 2. The strength of your savings and family and friend networks. How likely are you to be actually homeless and broke vs. just unconfident because you’re sleeping on a couch and don’t have a job right now.
I don’t think people do this as much at mature companies because the overall amplitude of how bad and how good things can get is smaller. Startups can have really great highs, but the lows can destroy you. The worst most established companies will do to you is slowly wear you down, so there’s often a lot of time to plan an exit and get a new gig before you flame out.
I have done this once, when my employer at the time was mistreating me to such a degree that quitting immediately became very important. If your work situation is tolerable, you onbviously should not quit, as you lose a lot of negotiating power that way.
That said, the only way to win a negotiation is to not want what the other party is offering. Even when job searching while unemployed, I just turned down places trying to pitch the standard cookie-cutter $150-160k job offers, religious micromanaging Agile crap, etc.
Unless you need the job, you really should just say no to these things. It’s almost a civic virtue to help keep wages competitive with actual value add, help fight back against abjectly bad business trends like Agile or open-plan offices. At least require them to really pay you well if you are forced to deal with that nonsense.
Cookie-cutter offers?? Unless this is the Bay Area, I don't think there's such a thing as $160k jobs just floating around. The top 10 tech companies barely even offer that as base for a good software engineer (excludes stock & bonus).
> I don't think there's such a thing as $160k jobs just floating around.
Well, there are and the point of finally getting around to saying this out loud is to push through the brainwash.
Too many people are subservient to their uncompetitive employers just because they feel obligated to "count their blessings".
Turn down six figure job offers for the right gig which typically comes with a better compensation package.
Before you make your rebuttal, lets up the stakes even more: I've done this unemployed with six figure debts, a calculated risk, and now I have no debts. Calculate your risk. If you get it wrong, ruin your family, lose access to credit and also end up homeless, well yeah that happens.
Don’t believe the hype that all developers live in the three or four major cities where 150K is normal. There are plenty of major metropolitan areas where both salaries and cost of living is lower.
That's about average for a senior developer in Seattle. But honestly, I wouldn't move to Seattle for that amount. $150K is about the max you will make as a software developer in my neck of the woods but I also just bought a 5 bed 3.5 bath, 3000 square foot house, brand new build for around $320K in a great school district.....
I have a friend who works at Amazon and he was telling me how much he paid for a slightly smaller house. I was amazed. Out of the FAANG companies, Amazon is the one company that I think I would be able to work for.
I only received my first six-figure base (and first six-figure total) offer two years ago. I had to move to NY to get it. The availability of these jobs is very regional and based on your specific skill set.
In NYC, Boston, Chicago, SF, and possibly Seattle, there is a definite trend toward standardized offers in the range of $150k-$160k, if you have ~3+ years of experience and do well in interviews.
At bigger companies, it comes with annual RSU awards or bonuses, worth between maybe another $50k-$150k depending on your particular skill set or seniority. At start-ups, they try to sell you on an equity package that would work out to something close to the same annual dollar value under the assumption of a mildly positive exit or IPO.
This cookie-cutter package has seemingly stagnated since maybe ~2014, at least in lots of interviews since then, I haven’t seen the offers going up much over time.
But for many fields, $150k is not competitive with what the top end employers pay for a base salary, and the equity or bonus part would need to be in the $100k range to be competitive in total compensation. If you believe you’re a top developer and you can prove it during interviews, you absolutely should be targeting closer to $190k and substantial equity/bonus. If you also have 6+ years of experience or a PhD or something, you should be well over $200k on base salary alone, in major US cities.
You should also be negotiating severance packages, sponsored attendance at conferences, customized equipment for your workspace, possibly negotiating improved expiration or acceleration terms in equity documents, a sign-on bonus in addition to relocation (which should be covered entirely by the company, including dealing with most of the arrangement making).
Just say no (unless you’re in dire straits) if a company won’t negotiate all these things. Get good at talking about it, introducing the HR contact or recruiter to the idea that you expect a real, grown-up job offer covering a wide range of compensation and benefits.
Otherwise it contributes to wage stagnation when employers believe they can keep making the same $150k offer and banking on new grads or people desperate to relocate to X or whatever, and not knowing what they are actually worth.
> In NYC, Boston, Chicago, SF, and possibly Seattle
Unrelated to your bigger point, but I'd put Seattle in second place after SF for the high offers. And for tech jobs, Chicago wouldn't feature on my list at all.
I think you're focusing too much on base salary. Past a certain point, companies flatten out their base and only start upping the equity. Amazon actually has strict rules about it - they cap out their max base salary at 170 and there on it's all equity + sign-on bonus. People should look at the total comp - RSUs are reported on the W-2 anyway. And they can be sold immediately upon vesting (usually the vesting periods overlap with trading windows), so it's really no different than a salary.
Yeah, I live in Chicago. I don't see anywhere near those offers anywhere, in job postings or what recruiters offer when they try to contact me. Most I usually see is $120k base + 5% annual bonus, zero equity or stock options, no sign-on bonus. I think I saw a 130k once. For senior developers or team leads, not just 3 years of experience.
Job postings, and especially recruiters, are about the worst way to get information about salary. Recruiters in particular are not at all incentivized to help you get a competitive offer and sometimes are paid a higher commission if they get you to accept a salary under a certain threshold. If working with a recruiter, you have to take a really hard line with them, and tell them you absolutely will not reveal salary specifics until after you’ve had a few interviews with a company where it might work out, and repeatedly remind them that you are looking for top-end market compensation, so they understand you’re cognizant of what you are worth and care about being paid well.
In Chicago specifically, GrubHub, Teza, Google, Salesforce, DRW, IMC Trading, Akuna Capital, and Citadel are companies I’ve directly spoken with about Chicago-based position salary over the years, and all of them have positions for people around ~3-5 years of experience but above average expertise with base salaries in the range of $180k-$210k. If you naively go into negotiations at these places and openly state low six figure salary numbers or just take a recruiters word for it, then yes, of course they will try to pitch you everything in the $120k-$140k range. You have to do well in interviews and then tell them, no, that kind of below-market nonsense isn’t going to work, and really walk away if they won’t pay more competitively.
Good to know. I haven't really been in a position to walk away for most of my career, so I've accepted a few too many lowball offers. This might be the first time where I can afford to walk away.
> But for many fields, $150k is not competitive with what the top end employers pay for a base salary
> If you also have [...] a PhD or something, you should be well over $200k on base salary alone, in major US cities.
I have a PhD + 1 year exp. and recently accepted a data scientist offer at a F/N/G company for around $200k total. If these companies are really top of market, then I either did poorly at the interview (in which case why would they make an offer at all?) or I just suck at negotiating.
If this was in SF, NYC, Chicago, Boston or Seattle, then yes, they probably got you very cheaply because you did not know the range to negotiate. If you got an offer, you surely did well in the interview. Chalk it up to negotiatiom experience, and next time you’ll know. I’d generally expect the total comp to be closer to $300k for your profile, but it obviously depends. Also, in some companies, like Google, they really will give you substantial increases in equity each year if you’re doing well. So be sure to bring up your desire to earn more in the annual review.
Yeah, I’m in the Bay Area. My guess is that I didn’t have any leverage. The company I was coming from was a no-name company in the southeast. Also, I believe data scientists receive less stock than software engineers at the top companies. Does that match your observations?
The average US programmer is closing in on six figures. Total compensation, it's already over that line.
You can make six figures just doing remote Magento developer work these days. Just go scour the job sites, there are a ton of six figure remote jobs these days. $150k is a bit high, however it's not dramatically so.
I doubt that many job hoppers quit their job before finding the next one. People that do this are probably very good at networking and being unemployed would reduce their connected-ness into the squishy network.
I think the way that job seekers/employers go about getting jobs/filling positions attributes to the huge turnover rate.
It seems to me that in the past you had an "in" - someone that told you about the opportunity and primed you for the position. Also, they probably talked you up and set expectations when recommending you.
Today, hiring is closer to tinder than a blind date. You send a resume, you talk to some people for a few hours and you are expected to make a decision based on that. There is little emphasis given to how good a fit will be. Personally, I have walked into interviews where they were so eager to give me an offer that they didn't even bother to give me details on the position and the environment.
Getting a job and finding out that it's not what you expected 4 months in is disheartening. But employees and employers alike are guilty of not looking at this as a long-term investment.
whats the economic/theoretical consensus on optimal amount of frictional unemployment? (invert that and you approximate the amount of time the average worker should stay at a job).
Say frictional unemp is 3% a month and so "Employee Lifetime Tenure" is 3 years. Given how inefficient the search process and job market is, shouldnt we encourage more searching especially at early phases of life? What is the theoretical upper limit to that?
I wonder what research has been done to model this admittedly very theoretical question.
I'm interested in really understanding this phenomenon. The reason is that businesses seem to be acting irrationally. That may indeed be the case, but I have found that when you dig deeper, you often will discover at least some rationality to how firms behave in market environments.
Here's what I find irrational: companies often wait until valuable employees generate an outside offer of employment before they hand over substantial wage and/or title increases. This process requires that an employee become dissatisfied enough to go through the process of interviewing, and in software development, that isn't necessarily trivial (it requires, in many cases, re-studying for a data structures and algorithms exam, often taken at a whiteboard in front of a group of people, which is quite stressful for many people). It sends your valuable employees out into the market where recruiters and hiring managers have a chance to pitch a job switch to them, potentially getting them excited about a new opportunity. And it forces the employee to put him or herself in a potentially vulnerable position with the original employer. I have read articles saying you should never take a counter-offer, because you be forever viewed as a flight risk. I think this is way too extreme, and that the process is understood and tolerated, but the effects of threatening to leave do sometimes persist in a more moderate form.
I'm trying to think of the reasons for this custom, why it may not be as irrational as it seems. One possibility is that employers actually don't entirely know who their top performers are, at least in software development. They don't fully understand it, and they don't have numbers to point to like in sales. It could be that for some firms, generating an offer is the only way to a software developer can signal his or her value in a way that the employer can understand.
Another factor, I think, is the difference in extroversion and comfort with negotiating between many software developers and managers/entrepreneurs. I do think that many people who hire software developers have trouble understanding the reluctance to negotiate. To them, negotiating or asking for something is such a normal, easy, run of the mill event, that they have trouble believing someone would go through dozens of hours of interview prep and days of white boarding exams rather than just saying "gimme".
Lastly, this could be one of those downsides to a heuristic that is more optimal for other reasons. Perhaps there are enough people who just sorta don't look for new jobs, and can be paid less, that it's worth losing some of the workforce this way. Some of them will stay with counter offers, and if you follow this process, you may save more overall by not paying many developers actual market pay. This is more common than you'd think - many people in SF, for instance, who bought property a long time ago or who have very strong rent control locked in don't really think of maximizing their pay, and may not even really know what others are getting paid out there.
Just for the record, though... I'm skeptical about the above argument. It seems like that would explain why businesses tolerate a little bit of job hopping, but not an epidemic.
Anyone want to take a crack at it, come up with a reason why the current practices may be more rational than they seem? Not saying they are, just interested in what I may have overlooked.
Someone mentioned in an above comment that managers look out for their own interests, just like employees. There are very few people in a company who are really acting in the best interest of the company.
So my take is that the reason companies behave irrationally with regard to talent retention is that no one "owns" that problem. Same reason any number of other important issues fall through the cracks at any given company.
And yes, I think you were spot on when you said that companies don't even know who they should be trying to retain.
So, every so often, we get a few applicants from there.
Some of them are good, and we offer them a job; only to find out that they're not interested anymore. Usually something along the lines of "thanks for the offer, but I've been given bigger and better responsibilities and I'm not looking at leaving anymore", or "I've been assigned to a more exciting project, I will see how it goes", or "I've had a new position offered within the company so I will follow this lead for now".
So, yeah... We're happy to help the other guys move up the ladder, really, been there myself; but it's a bit sad, that's what it takes to get promoted: another job offer and a resignation letter in hand.