Hacker News new | past | comments | ask | show | jobs | submit login
Why don't tech companies pay their engineers to stay? (marker.medium.com)
506 points by mattydoincode on Aug 3, 2021 | hide | past | favorite | 499 comments



To chime in with my own anecdotal opinion that is likely to anger some people... in my experience most developers do their best work after about 6-8 months of starting a job at a new company, and that comes to an end after about 24-36 months of working at the same company. After that the vast majority of people just stagnate, get complacent, the job stops being interesting to them and they move on.

After observing this I don't really mind hiring people to work for 2-3 years and then have them move on to another role, and most people I hire I do so with the expectation that I'll get a good two years of work and not much more.

A very small percentage of people continue to improve over the long term, and those people I am happy to continue increasing their pay, but I don't really go out of my way to retain employees and I don't think it's particularly worth it to do so.

This blog post mentions a kind of impact based compensation structure, and while I can respect the idea behind it, I am skeptical that they've managed to find a deterministic and impartial way of measuring "impact". I don't presume to have such a system so I pay based on what I observe in the market and let the market decide what the value is of software developers. For example, I genuinely don't know if software developers have more of an impact than the product designers, or the legal department even though I pay software developers much much more. What I do know is that it's much easier for me to hire a competent lawyer or UX designer than it is to hire a competent software developer and there are many more competent lawyers and designers out there... so I pay them less, regardless of whatever objective measure of impact may exist.


I would look at inverting the causality there. If your data is accurate, I think it's better to say, "Most companies create developer jobs that get boring for people after 24-36 months."

I was chatting with a Trader Joe's cashier Sunday. It turns out they change jobs every hour. That was a surprise to me; when I long ago worked in a grocery store, I was assigned to one position for 8 hours for every shift. Why does Trader Joe's do it? To keep things interesting: "She tells Money that the change in jobs during shifts helps to keep things interesting for employees. 'It's perfect because it breaks down your shift. You don't get tired doing one repetitive thing,' she told them." https://www.mashed.com/175743/workers-reveal-what-its-really...

If Trader Joe's can do it hour by hour, I think tech companies can do it at least every year or so.

I'm hiring right now and one of the major draws for the good people I'm talking to is the chance to do something interesting. If that's why their coming, it's unsurprising that I'll have to keep giving them that over time. For us, and for most places I've worked, I think that's doable.


I worked with an engineer. She told me that when working at her previous company they permitted you to switch teams every 2 years. Every 2 years she would take that opportunity and got to work on a huge variety of projects with lots of different people. Some of them good, some of them not.

It kept her there for 12 years or so.


I've worked at a (giant well known) company/bank in New York that basically mandated that people switch jobs internally every 18 to 24 months. It was part of the expectations. I was there for 4 years. I had 3 different roles in 3 different teams.

It helped a lot in fact in doing quality work. Thinking that you will inherit things you didn't do. That some other people will inherit your work / decisions. And always learning new things / keeping best practices in mind.

It's something I've kept in mind everywhere I've been.


Is there a trade off between depth and breadth here? While not the SV tech scene, I remember working for an aerospace company that had some people in the same positions for a couple decades. For the administrative positions it seemed to breed complacency, but for the technical positions it seemed to provide a very deep level of technical expertise that would be difficult to cultivate within a couple years


the other side from my experience at a previous engineering job is that it can also breed deep defensive layers around bad engineering work.

the same 3 core people stayed on the project for 11 years from the begging and hired and fired around weither you're a threat to their position. managers would come and go, they were helpless and held no real power in the project, until they settled for a puppet manager who would defer every decision up to them and act as a secretary.

the result was a huge pile of tech debt that only they could touch and they kept getting raises because the project couldn't afford to lose them, until the project died of it own weight.


same, i joined a place where it turned out a small group of people basically held all the power and had created a byzantine system only they could reason about. management was also trapped because the devs who knew the system held all the power.


For finance, the primary goal is to prevent corruption, the intent is not quite the same as tech.


This is smart. I left GS right around the time they were starting such an (similar?) initiative. It also makes employees more fungible, on average, which is nice.


This was GS indeed. I personally liked that a lot. I've learn a lot there.


I don't know of any such mandate in GS, was it for a specific division or group of teams? The company culture supports moving internally, but I never heard of anything like a mandate in my very recent stint there.


Circa 2014 they started a program where Analysts temporarily work on teams that did not hire them, following their three-month orientation. Based on the parent comment, it sounds as if it was taken even further. I was in the Tech Division before it was rebranded as Engineering and merged with SecDiv / Core Strats by Eli Wiesel et al.


Ah, good guess!


I suspect there is a correlation between companies that have a culture of letting engineers change roles/departments (and a clear process for doing so) and retention/average tenure.


As much as everyone hates on Amazon, no manager can block a internal transfer, maximum they can do is keep you for 4 weeks (with a very, very good reason).

The average tenure on many, many teams is 6 months.

Does help starve off the boredom.


As long as you don't talk to your manager ahead of time. I watched a colleague tell our manager that the job wasn't in line with what was explained (colleague was right, he wasn't a fit). Instead of the manager moving him into a new roll, my colleague was PIP'd. When my colleague did try to transfer, the PIP blocked it.

If you have a good manager, maybe its fine. But if your manager needs some headcount to cut.... don't trust them.


IBM


That's untrue, a manager can put their employee into a performance improvement program (without even needing to inform them) which would block them from any internal transfers.


How does a pip effect improved performance when the employee isn't even aware they're in one? Is trying to switch teams the only way to discover that, or are there other indirect ways?


But HR sees it as a way to prevent a subpar employee from escaping the natural HR process. The fact that you have not been informed yet is just a failure of current management to follow process, but does not obsolve you of your subpar performance. HR is there for the company, not for you.


But really, if the only goal is to not be able to shirk a PIP by repeated team-hopping, the PIP should just follow you as you move teams rather than blocking your progress, right?

"Here's Joe Candidate, he applied for your open position, and he has a 3 month old PIP on track to be resolved in 3 months. Accept or decline the transfer to your team?"


In theory that would be good. The issue is that a lot of managers don't like dealing with problems. If somebody is doing badly and maybe should be fired (which is what a PIP is supposed to indicate) you don't want a manager just passing the buck to some unsuspecting team.

Ultimately, I think you're right. It's impossible to build a bureaucratic pachinko machine that will make the correct personnel decisions. You really need line managers dedicated to coaching staff, and higher-level managers coaching line managers. One-size-fits-all rules are not the optimal solution. But bad management is endemic in so many organizations that I'm sure these abuses go on all the time.


Amazon employees attempt to rotate to Google every 2 years.


False. In many teams half of the engineers are randomly put on pip and cannot switch team.


Half?!? In most companies, a manager with half their people on PIPs would indicate the manager is really fucking things up somehow. Bad at hiring or bad at managing. That's not the case at Amazon?


People will believe everything (negative) they hear about amazon. And not bother to verify any of it.


It would take several weeks to get to grips with a new team / project - must be very hard to get much work out of a team member before they are off.


Changing projects is only half of it, though.

Let's say I want a new project. I can search for a new team internally, find a mutual match, sign on, start and.....keep my current salary.

Or I can search for a new team externally, find a mutual match, sign on, and get (in most cases) a significant raise and a new sign-on bonus.

Even at a company I like, there's a significant incentive to leave.


This is true in many cases but internal transfers can still make sense.

Searching costs are a lot lower internally (no leetcoding needed in most cases, hopefully) and you are more likely to be able to land something outside of your current skillset, increasing your long term compensation and job security.


Only difference would be, that in current company it is more easy to get an understanding if new project management sucks.

> People hire at companies, bbut leave their boss.

In my anecdata thus rings true.


Many large organizations do this for promising workers who are being groomed for managerial or leadership positions. The goal from the company's POV is to have people who are familiar with many aspects of the business and are comfortable with working with new teams/challenges, but I think it also appeals to people who like being challenged ... or are willing to do whatever it takes to reach the top levels of the organization.


Usually companies don't increase pay when you switch internally so the only reason to do that would be because you love the workplace so much that you don't care if you get payed much more somewhere else.


Where I work, switching teams basically requires a full reinterview (technical questions and all). At that point I’m going to have to interview prep again so I may as well interview around other companies for a pay bump. If there was less friction to a team change I’d be much more likely to stick around.


Interesting. Not for developers, but essentially the same thing happens in the UK civil service.


I would really appreciate that as a developer, I have definite gaps in my skillset that I haven't needed (been paid) to fill. But everyone would have to get out of the mindset that developer Joe 'knows everything' about X.

The perfect match would be pairing a developer that can explain some technology to a 12 year old with a developer that has the equivalent knowledge of a 12 year old (for that technology.) That would keep things interesting and build a very resilient organization.


I used to manage a team of mixed very-experimented / very-juniors and I'd make sure every senior worked on stuff I knew were not in their comfort zone, and assign tasks in their expertise domain to juniors. They'd act as consultants, while checking other parts of the codebase/docs (as noobs) for incoherencies, sand-in-gears, and improving them. Over time, the experts kept things getting better, up to their common standards, and the juniors would level up far more quickly than other parts of the org.

To keep things interesting/challenging for the experts I'd have them also reach across domains (to system eng, safety, quality assurance, bids, R&D) and sometimes even overreach (blur the boundaries) while protecting them from corporate-strife. Software is far more interesting in the context of the product, the customers, actors on every critical team. I'd also have them try new techs, or find some innovation/maturity budget for 'pet peeve hunts' and we'd often end up with new tools, large-scale improvements in code, perf, readability, robustness, observability, or testing. I'm going off topic here but I'm sad that 'Slack', the book, isn't more widely read.


I stayed at my previous company for five years, but worked in four different roles across that time:

- 1 year doing iOS frontend/product - 1 year doing low-level iOS systems - 2 years as a PM - 1 year doing backend

I was never bored. I think giving engineers the flexibility to move around (provided they stick with one thing for a year or so) is a great way to retain folks. I can also say my efficiency during year 5 was fairly absurd (I won't necessarily say overall productivity was higher at the very end, since my interest in the company was waning, but I saved a lot of time by knowing exactly who to talk to and how systems across the stack worked).


That's a great idea on TJ's part. I have also wondered how giving some amount of project ownership to low level employees would help with morale. In grocery stores you see every little thing optimized by a marketing team; from the way products are stacked, to what the cashier is allowed to say to you. But what if some of these jobs were given to the employees? I think we need to let workers be more creative. Give them a reason to feel invested in what they're doing and reward them for trying hard. You can find what they're good at over time, the hard part is making them feel like what they do matters.

It seems like modern management theory has gone out of its way to optimize out the impact that any one low level employee can have on the company. And that makes sense when the goal is to make money. But what you're left with is a society full of people in mind numbing dead end jobs developing psychological issues.


> But what if some of these jobs were given to the employees?

This seems like another thing Trader Joe's does—I've been to their stores in a few places I've lived, and while they always have a similar aesthetic, a lot of the specific decorations seemed to be unique per store with nice local details. Of course, this could still be done in a totally top-down way—hiring local consultants or something—but I wouldn't be surprised if a lot of that was done by the store employees.

> And that makes sense when the goal is to make money.

Abstractly, I expect that this isn't the best way to make money. Modern management practices seem to value legibility and control even at the expense of expected income and company resilience. This probably says something fundamental about our culture, philosophy and incentives, but I'm not sure exactly what!


>Trader Joe's

It's only been a year since they were in the news for not letting people wear things that say Black Lives Matter.

And there was also the employee fired for sending a letter to the CEO about working conditions.

https://www.inc.com/suzanne-lucas/trader-joes-dan-bane-firin...

I think there was a boycott, but people move on so quickly.


There's no need for employees to be able to run personal political campaigns directed at customers at work.

Would you also insist that TJ allow employees to wear "Meat/Abortion is Murder" buttons?

> employee fired for sending a letter to the CEO about working onditions.

Allegedly. The journalist made no attempt to investigate or disprove TJ's side of the story, not even to ask the employee about it.


>The journalist made no attempt to investigate or disprove TJ's side of the story, not even to ask the employee about it.

They did! The TJ response is right there, after the termination letter, and the way I read it, they confirmed the story beyond a reasonable doubt by producing a denial that only sounds like a defense without context.

It says, "store leadership terminated this Crew Member's employment because of the disrespect he showed towards our customers. We have never, and would never, terminate a Crew Member's employment for raising safety concerns".

Their excuse is that he was not respectful enough to the customers...by demanding management exclude people (after 3 strikes) who refuse to wear masks and are abusive. And this is not a health concern, nor did they have any problem with the other health concerns. Really??

This is how every professional defends the indefensible these days. They craft a "non-denial denial" that communicates a falsehood to people who don't have the context, and doesn't technically lie or deny anything to people who do have the context. It is truly having your cake and eating it too.


Exactly. And if you're curious what this says, I'd recommend reading Spender and Locke's "Confronting Managerialism". It's a great look at the dominant ideology of MBA-style management. And for me Rother's "Toyota Kata" was a good inspiration as to how to think of management not as control layer, but where teaching and support are the most important functions.


Absolutely this. Where I work, changing teams isn’t frowned upon. I was in one role for a few years, then moved to another. I know the systems that are used most widely, the data, the business, I know a particular side of the business inside and out, and I already have important relationships and lines of communication.

And now things are interesting again.


This approach reminds me of the DevOps practice of breaking down information silos: make everyone learn a little bit of everything so that no one becomes a risk.


The Japanese corporation I worked for had engineers and managers change jobs every two years.

One of the reasons was that they wanted to "cross-train" people. They liked to have a lot of process, and tended to think of employees as "Swiss army knives," that could adapt. They had style guides, and a whole infrastructure (HR and technical), to support this. Lots of training.

Not sure how effective it was. I feel that they weren't as productive as I'd like, but they were really good engineers. I had a lot of respect for them (which doesn't mean that I didn't want to strangle some of them; from time to time).


The Japanese university where I work is similar.

Much of the administrative work related to educational and research program management is handled by the tenured faculty, and we get rotated regularly through administrative positions. In the sixteen years I've been there, I have, like most of my colleagues, served on a dozen or more committees and have managed programs for periods of several years each. The result of this process is that faculty members tend to become, over time, reasonably competent administrators with a broad understanding of how the university functions, and that in turn helps the university—a large, necessarily complex bureaucracy—to function reasonably well.

We also have a small professional administrative staff, and they also get rotated through positions every few years. They must keep really good documentation of what they do, as staff members are usually able to get up to speed on their new jobs very quickly.


Yes, but this won't work because there's just not enough different things for an engineer to master. ;)

More seriously, your observation is brilliant (and almost makes me wish I hadn't just accepted a new role). Because the software field contains such a breadth of things to know and breadth of potential applications, it's hard to get very far without having the kind of mind that is motivated by some level of intrinsic interest, and that can be a currency in its own right.


This is something I love about Facebook, fwiw. Engineers have tremendous liquidity in movement.


True, but Facebook also reorgs every six months, moving team responsibilities across orgs and cities all the time.

Surprise! Your team is shutting down and being moved to New York! Go back to the dating pool!

FB is a company that is successful in spite of all its internal failures.


I worked for a company where devs would rebel because teams were partly re-shuffled at the beginning of a new year! I guess people are different.


Yeah, I don't think it really has to be mandatory, but it certainly should be allowed and encouraged.

In the case where people were objecting to being re-shuffled, did they get to pick where they went? Or were they just told? a little agency can help a lot.


In the first year we just told people, which was obviously very stupid in hindsight.

In the second year, we had a survey where devs could say what their preference was: (a) team/specific devs (b) topic (c) none

That worked pretty well.


Glad to hear it!


I am currently a SWE student, and non-traditional. I am a full time student with wife and kids. I work full time and prior to starting school and current job, was in the Navy. Now that I am close to graduating and looking at companies, I am trying to find tech companies that offer a breadth of areas to work in so precisely I hope I can find a place where perhaps I move around. Being in the Navy and working in chemical manufacturing, I know how dull and boring doing the same job over and over gets. On deployment (on a ship), we referred to it as ground hog day like the movie.


One more point of anecdata: I've been with my current employer for just over 14 years, and I've worked on probably about that many different projects--generally two or three at the same time--in a variety of roles and with a variety of technologies (often with some degree of leadership, both formal and informal). There are many aspects of my current situation that I appreciate, but the plethora of options available for me to work on certainly feels like one of the big reasons I've stayed for so long.


Didn’t know that about Trader Joe’s, it’s really smart. To your point: for many companies out there it may be easier to raise compensation a bit rather than to figure out interesting tasks for their engineering force. Business usually wants its employees to solve specific problems, most of them mundane.


This. Most companies pay lip service to internal mobility, but I still see managers trying to talk people out of it (presumably so they don't have to hire and ramp up a replacement).


And that ends up being self-defeating over the long term, because oftentimes the developer will quit the company entirely if their requests for internal transfers are stymied for too long.


Something that really helps me at my job is I have 2 primary roles that kind of wax and wane. When I get bored with one, there's always something to do in the other.


Did Henry Ford figure that out like 100 years ago? That people get bored on the job.


A software dev changes between a wide range of tasks pretty frequently, if "stock shelves, cashier, repeat" is your basis of comparison.


You're not really making an independent measurement here. You see developers "stagnating" and moving on; how do you know that's not caused by lack of pay increases and other things you're doing (letting people pick new projects, for example, to keep them interested)? Maybe if you did "go out of your way to retain employees" you'd have employees who end up making your business even more successful during their longer tenure.


Pretty much. Honestly if I can get a 20% pay raise by switching jobs, my job is to do the absolute minimum amount I can do to stay under the radar, why would I try? If I wanted to try I would go work somewhere else.

There's just a complete mismatch in how much the company I work for values the experience and skill I gain over time and how much everyone else values it. Over time recruiters come to me with opportunities to make more money, they try to convince me to leave. It's such an obvious disparity I can't help but stop caring about the job I'm doing when it's only real utility to me is that I don't have to put in any effort to keep having it.


>...I can't help but stop caring about the job I'm doing when it's only real utility to me is that I don't have to put in any effort to keep having it.

Yikes! That's my current situation in a nutshell. My biggest concern is that I don't want to risk jumping ship and landing at a toxic company/team, or landing in a bad work culture.

Don't get me wrong, I've got a nice vision about what I want to do where I am, but I can't get the money to carry it out, so I'm in that "no to low effort" stage.


If you land somewhere toxic, you can always move again.

In my experience there’s almost always something toxic about a workplace, it’s finding one you can live with for a few months or years that’s the trick.


It's all relative. I left an absolute clusterfuck of an engineering org (leads would scream at each other in meetings when things went wrong) a few years back. I landed somewhere much better, but now find myself complaining about much less severe problems.


"my job is to do the absolute minimum amount I can do to stay under the radar, why would I try?"

Because it's a form of systematic corruption, maybe the biggest kind of corruption in the White Collar world.

The objective is to 'do a good job' , not the minimum, in every endeavour.

Doing the 'bare minimum' to keep a job is actually generally far under-performing, as most companies won't generally let people go.

It's how entire industries stagnate and sink.

When internal participants spend most of their time fighting over the surpluses, it's over.

This applies to companies as whole as well of course, i.e. the $1B government contracts that should only be $500M etc. etc..

Do a good job. If there's a better fit elsewhere, that's fine too.


The problem is that "doing a good job" is rarely the objective at most organizations! People naturally want to do a good job; it's just more interesting and satisfying. But then we have layers of management and process and culture that push back on that in favor of control: follow directions, don't rock the boat, don't take any risks, always look like you're busy...

In a world like that, the people who just "do a good job" are characterized by some level of stubbornness coupled with an ability to navigate this kind of environment. Should that really be the key skill that matters? Is not being sufficiently stubborn "a form of systematic corruption"? That seems like a fundamentally uncharitable perspective that also provides no real solution. When that's how you see the situation, what can you do about it?

My experience has been that changing environment and process to actively trust people and, crucially, clearly signal that trust improves things far more than blaming people. If you expect people to phone it in, they probably will; if you can establish real trust instead, they'll go out of their way to make something work.


How come in your mind there's an onus on the employee to work as hard as they can but not on the company to pay that effort what it's actually worth? Unless there's a genuine emotional reason that transcends your salary (such as in community/nonprofit work) the relationship between an employer and company should be transactional in my opinion.


Sure that’s fair, but I’ve been very fortunate to have worked reasonably or very well paid jobs most of my career. Those jobs also enabled me to develop valuable skills. I think it’s only fair I put in a good effort in return.

Yes if business priorities change I could end up out the door, and that happened once, but no hard feelings. I quit all my other jobs anyway and there was nothing malicious either way.

The clothes on my back, and those if my children, the house we live in, the car we drive all were paid for by my employers. Yes it was a transaction, but a beneficial one on both sides. It’s all good.


What if my low effort is better then the other guys on my teams "good effort"?

You're also selling yourself short. You paid for all that stuff. Your employer paid for the work you did, and probably took more whenever they could; through on-call, off hours work, etc...

I try to comp my time, but I know I put in more then I'm compensated for, even when I was technically "hourly". I'm fine with that, but I expect to take back when I need it.


Putting in low effort during your billable hours is a personal character weakness that you are cultivating. You should avoid it because it's bad for you, not just being unfair to your employer. Regardless of your relative effectiveness.


> Putting in low effort during your billable hours is a personal character weakness that you are cultivating. You should avoid it because it's bad for you

Why is it a character weakness? Why is it bad for you?

By putting in low to average effort and switching jobs often, I doubled my salary in 5 years. All the while, I've had tons of time for vacations, hobbies, and having a life outside of work. And I've never gotten a single negative performance review. All my 1 on 1 feedback from managers has been glowing.

If a company could use half the labor to get twice the profit, they'd do it in a heartbeat. That's the purest essence of capitalism. Why should I behave differently? The guy on my team who works nights and weekends to get assignments done gets paid the same as I do. He's just more miserable for it.


I didn't say anything about working extra hours, I specifically said low effort during your billable hours.

Sounds like you're talking about the extra time that some places seem to expect. If that's what we're talking about - I totally agree that it's not worth it.


Ignore my last sentence then. All I mean is, I get paid the same whether I put in half effort or full effort. Full effort, which can lead to burnout and stress, is a cost to me. Why would I increase personal cost with no monetary compensation for doing so? They're already paying me for half effort and I keep being told that I'm doing a great job. So I'm not going to go out of my way to do more.

Edit: if I could double my output and know that my salary would double too, I'd do it in a heartbeat. But I've never found a company with a comp structure that can actually achieve that. It's far more effective to just go on autopilot for a year or two, then get a 30% raise at a new job. Rinse and repeat.


Burn out is a symptom that you are out of balance, if that's your path you need to make a change. Full effort should allow for a balanced life, there is stress, sure, but there is also reward and fulfillment.

I don't think the formula is particularly linear. Double value produced means double the salary is likely the wrong equation, but it is right in principle.

If you work hard you will be developing a lot more relevant skills than floating along. This makes you more valuable. Not everyone recognizes, or is willing to pay for that extra value in salary or promotions. But some people will, and some people are.

In the event you strike out on your own as a freelancer or your own business, working in that manner becomes your lifeblood that will make or break you.


> reward and fulfillment.

I get more reward and fulfillment from my hobbies and personal relationships than I'll ever get from creating another CRUD app for ${boring_business}. Half effort leaves me more energy for those things, and half effort still gives me more than enough experience and talking points to nail my next interview and demonstrate value to hiring managers.

> In the event you strike out on your own as a freelancer or your own business

I have no intentions to do this, but if I ever did, then as my own boss my performance would be directly tied to what I earn. So yes, I'd have a much different approach.


I disagree. What's fair is that they pay you for your work. Anything beyond that is just in your head. If they could still get your productive output and pay you half as much, they would. You should look at them through the same lens.


"How come in your mind there's an onus on the employee to work as hard as they can but not on the company to pay that effort what it's actually worth? "

I didn't say that.

I said they should 'do a good job'.

As should the other company staffers, execs and the company as a whole.


In an "at will" employment state - which I presume covers the vast majority of US based readers here - the final arbiter of whether someone is doing a "good job" or not is their employer. If they're still paying the employee, they must be doing a good job according to the employer's standards even if by the employee's standard they are doing nothing.


This doesn't quite work because employee productivity assessment is very grey, and there's a lot of goodwill assumed in the equation.

It's difficult to measure employee productivity. Sometimes, managers don't care. Sometimes employees make every effort to hide their lack of productivity.

Despite that we might think of companies as 'evil' - most of them are not. We're all human, none of us like laying people off or firing them. It also comes with negative political consequences i.e. the person you fired may never be a good reference in the future. The manager may have negative incentive to let people go, as their 'worth' is founded on headcount. And truly the vast majority of employers just don't want to layoff or fire if that don't have to.

What this means is that there is quite a lot of 'grey' in the system, and there's a lot of goodwill assumed by all parties.

Everybody is saying that they want to do 'remote work' and at the same time signalling that they may 'want to do the least, because technically, I'm getting paid for that?' - in a situation wherein there is quite a lot of 'trust' expected?

How do we expect employers to 'trust' workers in a 'very noisy productivity assessment channel' with this kind of approach?

It just won't work.

There isn't enough time in the world to be looking over each other's shoulders like that (I particularly don't like Amazon's approach for example).

So the onus is on us to 'do a good job'. It doesn't mean 'break your back' - it means try to do what is expected, keep your chin up, grind through it.

I feel that if people could see the big picture, and see that mountains are climbed one step at a time, that morale across the board would be higher. 'Passion and inspiration' are nice, but fleeting, whereas 'grinding' through the issues is how most things ultimately get done. In this way, they might be more personally incented to 'fix that bug' or 'get that build out'.


You don't have to think of companies as evil. They are not inherently immoral, but they certainly are amoral. They will let you go the moment it is no longer profitable to keep you. Have you been through a layoff before? The executives wring their hands, talk about what a tough decision it was, uproot dozens to thousands of lives - and then get a nice fat bonus when the cost savings reports come in, and the stock value goes up.

Things like that teach me that corporate "good will" is an elaborate show. You are an expense to them, a necessary expense to achieve a certain output. You are paid your market value, not penny more. If they can pay you half your salary to get the same output, they will. If they can lay your team off and get significant cost benefits, they will. You are disposable. That doesn't mean they're bad people, they're just doing what any self-serving profit-seeking bureaucracy would do.

Thus the relationship between an employer and an employee is always transactional, and any feeling otherwise is an illusion. It's not evil - it just is.

The only asterisk to all of this is if you're at a more community-focused organization like a non profit. But the vast majority of companies that employ HN readers are not that.


" They will let you go the moment it is no longer profitable to keep you. "

First - you're mixing streams here.

This is not 'amoral'.

This is just people trading services.

It's not 'amoral' of you to not keep the plumber on when he's done.

Second - companies actually do avoid layoffs. Most companies could layoff 10% right now and not skip a beat. Especially white collar. Google could dump 1/2 it's staff and be just fine.

Most companies have slack and generally avoid doing layoffs unless there's a special situation.

"the relationship between an employer and an employee is always transactional, and any feeling otherwise is an illusion."

Generally, this is the case, yes, why on earth would anyone think it's anything else?

Why on earth would a company employ people otherwise?

But again, once people are employed, they're not doing to drop them instantly.

It's all besides the point, in any case, one should be aspiring to 'Do A Good Job'.


"Amoral" means neither moral nor immoral. That's exactly how I would describe a transactional relationship, so yes, I'll stick with that word.

> Most companies have slack and generally avoid doing layoffs unless there's a special situation.

You're just making arbitrary claims here - the fact that companies can and do lay people off without notice and, sometimes, without severance, still confirms the nature of what I'm saying. It's all feel good until it isn't.

> why on earth would anyone think it's anything else?

I don't know; ask the others in this thread. There are plenty of people here claiming that they owe their company things (time, emotional investment) that go beyond the scope of their employment contract simply because it's "nice."

> once people are employed, they're not doing to drop them instantly.

This is simply not the case. Or, rather, it can be the case so easily and at any time that it's foolish to assume otherwise.


And truly the vast majority of employers just don't want to layoff or fire if that don't have to.

I've seen far too many corporate moves that were driven by executives looking to goose the stock price to believe that. You can argue that it's the executive's job to goose the stock price, and thus they "have to" lay off people in order to avoid taking as much of a financial hit in a recession or whatever, but that just gets us back to the original position: the company has a minimum amount of loyalty to me, and, in return, I have a minimum amount of loyalty to the company.


Layoffs to goose stock prices are not actually that common, it's also very short-sighted.

In the face of a major recession, execs are not laying off to 'goose the stock' they are adjusting to the situation.

Of course it does happen, but in the grand scheme of corporate development across all industries, it's not hugely common.

There is a difference between 'loyalty' and 'doing a good job'.

It's not expected that companies will keep contractors for the long term, but they still would be expected to 'do a good job'.

And of course companies do not lay off talented people unless they have to - that makes no sense.

Even the most darkly cynical and Machiavellian Execs will try to keep talent if they can, otherwise, they can't make money. So more appropriately, employees will at least be held onto to the extent that they materially create value.

But again, even in that context 'Do A Good Job'.

Honestly, if even it's a crap company, it still makes sense to 'Do A Good Job'. Even in the face of grind.

The only time I think it makes sense to 'not' do a good job, is where it would be truly utterly futile or illegal etc..

If someone is in a bad situation, they can eventually move on to where their 'good work' is more appreciated / better compensated.

Loyalty isn't a huge requirement, but doing good work is.


I'm not sure what you mean by "do a good job". I will, of course, meet the requirements of the role as they are set out before me. I will do that even if the job is crap. But if you want me to come in earlier than 08:59:59 or leave later than 17:00:00, you'd better be offering something in return.

My current employer, fortunately, does. Even before COVID, they were flexible w.r.t. work from home, and the management is more than willing to let you do your thing as long as you're delivering results. I will, and have, repaid that flexibility by going above and beyond in handling issues that weren't strictly my responsibility, working late on more than one occasion to ensure that deliverables got out the door in time.

However, I have had the misfortune for working for less understanding management. I've had management say, with a straight face in a team meeting, "If you're working from home, you ain't working." I've worked for management that openly ridiculed employees who had to take time off for family medical emergencies. You can be sure that, in those situations, I clocked out exactly when I considered my shift over.


> It's difficult to measure employee productivity. Sometimes, managers don't care. Sometimes employees make every effort to hide their lack of productivity.

The former is the employer's problem and as far as the latter, I assume in this discussion that the employee isn't committing borderline or outright fraud with respect to the job description laid out in the contract. Considering how many people get hired to do flex work like security guards or to deprive competitors of talent, plenty of employers are aware of this dynamic.

However, my goodwill only goes as far as "at will" employment protects me, which isn't very much.


> my goodwill only goes as far as "at will" employment protects me

Something tells me that the commenters in this thread who are defending the idea of working hard just for the good fuzzy feelings have never been through a bad layoff.


I bet they've never been illegally fired because HR has no idea how FMLA works, been through a workers' comp lawsuit because the amount of stress in the work environment triggered their bipolar disorder, or sexually harassed to the point where they had to quit to salvage their mental health.

If those sound like awfully specific examples, they are. Each one of them actually happened to someone I know.


> The objective is to 'do a good job'

Nobody has that objective except the very passionate. A company will happily do a shitty job if it will still get paid. See IBM. See Facebook and Google on customer support.

> Doing the 'bare minimum' to keep a job is actually generally far under-performing

My manager hasn’t seemed to notice that I work a 1/3 of what I used to now.


"Nobody has that objective except the very passionate."

This is very cynical and pretty much wrong.

I would put that attitude probably in the bottom 20%. I think most people want to do a good job.

It's also kind of toxic because unfortunately it spreads.

'Doing a good job' frankly, often does not even mean working harder, from a lower-performing perspective it usually just means actually paying more attention and being more conscientious.

And yes - in a large corporate situation, it's very often sometimes to feel the impact, be recognized etc. etc. - but that shouldn't dissuade from basic professionalism.

If you're truly only 1/3 as productive, your manager surely notices, but there's probably little they can do about it. It may not be to their benefit to even try to fix it.

This is what I mean by systematic decline - this is how bridges never get built, and they go 10x over budget.

This is why NASA spends $200 Billion on only a few launches.

It's why Ford/GM can't innovate.

What Space X and Tesla are doing is in some ways spectacular, but in other ways, they are just doing what they are supposed to, and they can, because people are just doing their jobs.

Life is a giant Prisoner's Dilemma. We can all spend our time trying to do the minimum, or even taking the cream off the top while nobody is looking, in which case, when everyone starts doing that it all comes down - or - we can try to be consistently conscientious.


> I would put that attitude probably in the bottom 20%. I think most people want to do a good job.

I'd buy that most people want to do a good job. I doubt very much that many care much about doing so, beyond what's necessary or what they expect to gain them greater compensation, at the job they do to earn money to pay the bills. Everyone I know with even a little of that "spark" has had it extinguished by experience. Usually before they're 30. Most reserve their good work for things that pay little or nothing. They care a lot more about that.


The big problems you raise are not because employees are not working 100% they are complex and have various causes. Employee productivity isn't in the top 10.


Won't somebody think about the poor bridges that never got built!?

For real, If there is any single problem with the world its people doing too much. The oceans didn't fill with plastic from people sleeping in. The air didn't fill with CO2 because people clocked out early on Fridays.

Take a step back and look at life. Why should it even be work? Do birds sow seeds? Are monkeys bad programmers? Or, are they just monkeys?


Oceans are filled with plastic because politicians, regulators and company leaders are 'not doing a good job'.

So many, especially systematic problems would be much better resolved when people did their jobs a little better.

Montreal just built a rail line for $500M that may likely become redundant. That's bad, it matters. It's mostly a leadership / management problem of course.


You probably know more now and get the same or more done.


Or perhaps they have and that is why your performance ratings are flat, you get a lousy annual raise/bonus (if any), and your career is stalled?


Performance ratings are meaningless if you’re jumping ship every 2-4 years and the difference is between working twice as hard is a 2% raise vs a 4% one. What companies forget is new employees see the legacy of how you treated old employees over time.

The basic structure of small consistent pay bumps was extremely effective when people stayed at companies for decades. Work twice as hard and make 2 percent more for the next 30 years, that’s a big bump. Pensions pushed that out so even people nearing retirement still had reason to care.

I am not recommending people do the minimum, just acknowledging how people respond to incentives.


The gap at big tech companies between okay and "doing well" (i.e. twice the effort) is not a 4% raise, it's a 40% raise.


That’s easy enough to check by actually talking with other employees. It’s really not a company wide question, often large raises early are fairly easy but get dramatically harder as compensation increases. Which of course change the effort:reward calculation over time.


Except they aren’t flat. I worked hard the first two quarters. Got a 5/6. Did very little this quarter and also got a 5/6.

So I’m basically just vegetating until I quit.


This is what all the cool-aid drinkers are missing in this thread. You can feel like you worked your ass off, or you can feel like you've been coasting, and still get the same performance review. I've seen genuinely valuable engineers get middling performance reviews because they didn't commit as many lines of code to Github that quarter as the other guy on their team.

That's an extreme example, but even in a "good" system, management is notoriously blind to the actual value of an engineer. In a perfect system, performance could be measured empirically and compensation would be based on that. But no one on earth has figured that out yet, and something tells me they never will.


It's not just about performance reviews.

Imagine a world in which it's very difficult to assess performance, because that's often the reality.

How does this system flourish if everyone is doing the minimum / least?

It doesn't. It fails.

'Do A Good Job'.

That the performance reviews say are a secondary factor.

If you all stop doing good work, it will fall apart quickly and you will all be poor.


> If you all stop doing good work, it will fall apart quickly and you will all be poor.

I'm replying late, but wow, this is a gem of an argument.

Really? The economic incentives that create this lucrative field in the first place are all gonna collapse if devs realize they don't need to bust ass at their job anymore? It's amazing that you think the individual work ethic of engineers is the only thing holding the tech economy together.


How would software get written if the people that write software don’t write software? Curious.


I personally want to do a good job, but some companies make that hard to employees, albeit sometimes inadvertently. Whether it's by tying people up in politics, having them do busywork, or just failing to reward them.

To give an example, at one of my previous jobs, for several years in a row I was noted by my managers as being a high performer and someone who would be ready for leadership. Despite this, I got an average (you did good but that's it) performance rating, because only a few people could get the higher rating. The first year I had just joined so I was excluded by default, the second/third year other people ranked higher and because that rating only went to about 2 people, I missed out. When after this my manager approached me about a lead role, which was extra responsibility but no extra pay, I was pretty much done.

When I was in my 20s-30s I hated people who seemed like they checked out, but I understand that a lot more now. Again, I'll do a good job regardless and if I don't get rewarded for that, I'll find the door and go elsewhere, but I completely understand why people who don't have that luxury or drive would rather keep their heads down and just go through the motions.


You may want to take some time to reflect on the issue you articulated in your second paragraph.

So you 'did a good job' and the company maybe indicated there was a future for you, but they couldn't fulfill it. That's not hugely nice.

But can you fathom for a minute that it seems your peers were doing 'An Even Better Job' and perhaps better suited for advancement? At least in the eyes of the company?

Put on your 'Management Hat' for a moment and understand that maybe it's unfortunate you thought there was an opportunity where there was not, but that those kinds of indications are fleeting anyhow.

Someone thought they were going to Lead the League in Scoring until it turns out they didn't.

At very least, despite the companies misrepresentation, a lack of professional maturity for young devs. to assume that 'hope' is a guarantee of anything. When you're a manager, you're a manager, before that, it's all talk.

This scenario isn't even a 2 out of 10 in terms of the mistreatment or misappropriation of employees - it's just a mostly normal thing that happens in noisy channels.

Maybe they were thinking of advancing you - someone else came along. That's life.

I'm glad you seem to want to 'Do A Good Job' regardless, but it should be noted that you're not comped for future prospects of advancement. So in this situation just 'Doing A Good Job' would be an expectation of the job. Not some thing you do on the condition of some future event.

If you are mistreated, obviously, that's not good, and it's the company leadership 'Not Doing a Good Job' but I don't see a strong indication of anything other than normal operations here.


in a world of at-will employment, why would anybody go the extra mile for an employer?

Trust and loyalty are 2 way streets, the social contract has been broken by corporations


I work, they pay me. As long as they hold up their end, I’ll hold up mine.

What’s the alternative, against their will employment? That sounds like it would suck all around.


The alternative is having formal employment contracts. I work for the employer for a fixed term. If I choose to leave before that term is up, I have to pay a penalty to the employer. If the employer chooses to fire me they have to pay me a penalty. The exact amount conditions of the penalty are specified in the buy-out clause of the contract.

This is universally how people with actual leverage (i.e. high performing athletes, Fortune 500 C-level execs, etc) get paid.


>Because it's a form of systematic corruption, maybe the biggest kind of corruption in the White Collar world.

There is generally surplus value in any exchange of goods or services that benefits both parties.

Some people insist that if the employer captures it, they have stolen it from the employee, and others think that if the employee captures it, they have stolen it from the employer.

The fact is, it's up for grabs, and what I think is salient morally, is that neither party created it alone.


I have a really hard time distinguishing between the idea that companies are entitled to some maximum of an employee's work-quality and effort and the notion that an employee is entitled to compensation amounting to most or all of the marginal value they add to a company through their labor, not just what they can convince the company to give them. Like, I don't get how one can argue for the former and reject the latter, not regarding it also as a form of "corruption", as you put it.

(I'm making an assumption here that you're not big on Marxism, I guess—maybe you do agree with both propositions)


This is the all-important point. It would be insane for me to try my best to make money for a company when the effort reward curve is so non linear. The only reason the idea of "doing the best job you can" is propagated is because it allows one to abuse workers. I could see myself working hard at a company with a flat-ish compensation structure tied directly to the revenue of the company.

"If I make a penny my boss makes a dime, that's why I shit on company time."


Right—I don't get how not putting in something resembling full effort can be corruption, but a company not paying you as much as they could, rather than what they must, isn't corruption.


What's going on here is that, in theory, both sides of the employer/employee relationship are supposed to have equal or approximately equal negotiating power when it comes to things like wages, hours, and working conditions. But, that's in theory. You know, theory: the place where markets are never supposed to be irrational and there aren't any information asymmetries to exploit.

And, pretty much all of those deviations from theory end up going against workers and in favor of employers. Labor markets aren't truly free because most people can't afford to just quit their job one day, then walk across the street to their former employer's competitor and negotiate a more suitable contract. Health insurance is so expensive that most people probably couldn't afford the amount of coverage they need without the subsidy their employer provides. Meanwhile, employers get away with stuff like union busting, just like Amazon is accused of doing, because "punishable by fine" really means "perfectly legal, as long as you have enough money," so that regulatory fines get treated like just another "cost of doing business."

Is it any wonder the only narrative about the employer/employee relationship we ever hear is the one that's favorable to the more powerful side?


First - 'Doing A Good Job' is not 'Maximal Effort'.

Second - professionals have incredible power and market wages are what they are. Most corporations do not profit in some exceptionally linear way beyond employees.

The 'Giant Lie' is that corporations are some magical entities that collect magic surpluses and shareholders and owners run off or private jets.

The vast majority of companies are not hugely profitable, and most small and mid-sized one's are not. Especially not in some disproportionately 'non linear' way.

Stock prices may be crazy - and those who trade stocks may or may not be making bank - but that's a very odd historical situation we have where shares are trading at absurd levesl relative to profits. That's a market 'dysfunction that may or may not be around for a while that some people managed to make money from, like Bitcoin, it's just a Ponzi-ish thing that has happened.

Corporations are not drowning in profits, and White Collar employees soak up the vast majority of corporate spending.

FYI everything I'm saying applies to mostly white collar professionals, for unskilled labour it's a different story.


And if the revenue tanked would you accept half your salary, say, or would you expect a floor to be applied?


If I burn out for a bit can I go down to working two days a week, or do they expect a floor to be applied?


Absolutely, I didn't mean "tied directly" to mean linearly, but even that caveat being made I would happily weather through months or even years of like 1/2 or even 1/4 salary. If I worked at a company where say the highest paid person did not earn more than say 20X the lowest paid and all salaries were tied to the revenue I feel like on compensation structure alone I would be more likely to work there than most places. I think "the compensation scheme NOT creating a heinous caste system" is actually really high on my list of things I would want in a workplace.


This is a good point.

First - side point - I didn't indicate that people should be outputting 'maximum work quality effort'. Just 'Doing A Good Job'.

Second - more salient - yes, comp is a big factor, I understand that, but it's a little bit of a marginal issue among professionals.

For workers who can reasonably negotiate a salary beyond the prevailing labour wage, it should be assumed they have market value commensurate on some level with their value.

Corporations are not some vast powerful entities that absorb all the surpluses for their shareholders. It's risky for them.

I would argue that White Collar professionals are in fact absorbing most of the surpluses.

Google could lay off 1/2 it's staff and still make just as much money.

Your point becomes much more relevant when the power asymmetry is stark, when employees have no differentiable skills or power like Amazon employees.

For them, yes, it's a different discussion around regulations, unions etc. and only when those basics are satisfied would it be fair to implore workers to consistently 'Do A Good Job'. But for processionals, it should be a matter of very basic integrity.


I think both of those ideas are wrong. A company is usually entitled to hire the most productive employees it can find for the remuneration it’s willing to offer, and an employee is usually entitled to somewhere between 50-90% of the money it can convince an employer to pay them.

Employees are never paid for the marginal value they provide, because for among other reasons, there’s no such thing. You could come up with an infinite number of different ways to calculate that, which could all produce a different value. An employee is either paid something close to the equilibrium price for the labour they’re offering, or something close to the average equilibrium price of all employed union members, if they’re a union member.


You have errors in you measurement, mostly in assuming employees only add a positive ROI when in fact their value can go negative. Thus doing the bare minimum is worth more than you think as long as the employee stays in the positive ROI (which I assume is the measure of bare minimum).


Actually working more than the bare minimum in an environment where hard work is not rewarded, is the second most sensible thing to do, after leaving. Should you work hard so some shareholders can buy a yacht? It is the job of management to reward and incentivise hard work, and not the job of individual contributors.

Fighting over surpluses is a very healthy dynamic, it’s a mechanism for individuals and organisations to understand the importance of each other’s contribution, produce price signals and improve the efficiency of the system. Instead pretending that a salary negotiated 10 years ago still matches the value of my contribution produces all sorts of distortions (eg productive employees being blocked in less productive organisations).


If a company can make twice the profit for half the effort, they will. Why should I behave differently?


> Doing the 'bare minimum' to keep a job is actually generally far under-performing, as most companies won't generally let people go.

Isn’t doing the minimum exactly the same as the company paying workers the least amount they can get away with?


Doing a good job, and doing the minimum job, are not mutually exclusive. You can do a good job with the minimum amount of work required to stay employed. There's no reason to do more, unless you're compensated for doing more.


The only honest and sincere answer gets downvoted to hell. The world is really burning.

I just hope it doesn't mean HN is transforming into Reddit, with all the zero sum game people scaring and demotivating each other.


This is a braindead opinion. Why would anyone work as hard as possible when there are 0 incentives to do so? When at any moment you could be fired without warning in a mass layoff and when even the highest performers only get 5-10% raises per year when jumping ship gives you 20%+ . You want good work then create the incentives for it, currently there are none.


It's a game where you can do the minimum or more and if you do more your boss can pay the minimum or more. If you do the minimumy your boss pays the minimum, it's a zero sum game, if you do more and your boss the minimum, again zero sum because you lost energy and he won more from you but if you both do more then it's a net positive. So the optimal strategy is to do more.

Then like the cops in the prisoners game you are tricking yourself at playing the zero sum game because of trust issues.


It seems like the optimal strategy would be to do the minimum and then job hop since the pay increase is greater and getting a raise for working hard is not certain.

I personally have not seen much correlation between pay working hard and getting pay raises, it seems about as likely as getting one for doing the minimum, and the effort to dollars ratio is usually not worth while. I don't want to put in 50% more effort only to get a 5-10% raise. Plus, as stated before, switching jobs results in much bigger pay increases making the raises irrelevant.


I'm still waiting to get a cut of those millions I keep saving the company with these projects lol


But in this scenario nothing stops the company to disclose the salary only themself.


Then they should pay me for results, not for showing up. Then I'd have an incentive to actually try to do the best job I can.


I don't think pay increase will help stagnation. Maybe picking projects will if the company has enough variety.

The best cure for stagnation I've found is to take long breaks and get into something else.


> I don't think pay increase will help stagnation.

No, but lack thereof can certainly cause it.

When there's no real reward, what's the point of putting in the extra work and taking risks? Two things that quickly break stagnation.


Agree. I've been at my place for 11 years now, and have had four very distinct roles over that time. Each change gave that revitalizing jolt of fresh challenges, technologies, etc, but with the benefit that I got to keep my seniority, influence, expertise with the in-house systems, and so on.

Have I given up potential pay bumps by not going external? Sure, probably. But I have enough to be comfortable and my company has treated me well, both monetarily and in facilitating these kinds of changes when I've wanted them.


My cure for stagnation is to play more. Amazing how playing at a pet project will get your juices flowing.


That is really good advice

I am in the same shoe of feeling stagnating this year and trying to figure out how to get out of it. The boringness and familiarness just drags along ...


Sure, and I don't really know either; my point was just that the parent is begging the question. :)


Output/performance shouldn't be determined by pay, ie pay is a lagging indicator of output/performance.


My experience has been that if it lags far enough, output starts dropping to realign with it.


Especially in cases where people are being underpaid by quite a bit, it can be a hugely demotivational factor. It's not even about the money as such, but rather about the signal how much all your hard work and effort is appreciated: apparently not all that much if you're not being paid what you know you're worth.

I really don't care all that much about how I'm being paid, I'm pretty easy about it. But it nonetheless played a direct factor in quitting two jobs because I felt I was being woefully underpaid (which I objectively was; although I guess you'll have to my word for it) and efforts to bring it up to a more standard level were being frustrated to such a degree I felt that a lot of "extra effort" I had put in to the job just wasn't being appreciated at all.


But pay determines whether I have a future at a company and if I have no future, my objective goes from getting a good performance review to avoiding termination.


By retaining a person who has "stagnated" after 3 years (setting aside the ambiguity of what you mean by "stagnate"), you avoid:

1) Three years of lesser performance from the new employee as they climb that curve

2) The very real risk that your new hire will not be successful, or if they are successful, will not achieve the same level of performance.

Also, I invite you to challenge what you consider "stagnation". It is not possible to continue linear improvement in a given role: good employees achieve mastery, and while they will still be improving that might not be evident to their managers who are looking only at work outputs. If a company does not want employees who are masters at their task, but rather want people to move up or move out (counter-productive as that might be), then it is literally middle management's job to find new roles for successful engineers, and I suppose fire the previously successful engineer if they're not up to the task. Complaining about an engineer "stagnating" in the same role after they've mastered it is just lazy thinking and lazy management.


Yes, it takes about 6m in a medium to big organizations to figure out what to do and with whom you have to speek to get stuff done. And for 2 years everything is rosy. Then you speak with you colleagues that changed jobs and find out that their income is 30% to 40% higher. That will, of course, put a downer on your day/week/quarter/year. You have 2 options, speak with your current company about compensation or leave. I tried the first option (admittently a bit late, but I did mention the problem in our review talks and other talks) after I found out that my income was 40% lower than colleagues that left 1 year before (was 3 years and a half at this company and had top marks every year, big company, a lot of cash to throw around). I was offered a measly 5% after being dragged in 4 meetings about how great I am. Left and almost doubled my income in 2 years. This is all anecdotal, but I hear it from everyone around me, you HAVE TO SWITCH jobs every 2 years, you can stretch to 3, maybe. Of course, during the last years you won't deliver as much, you have to prepare for intervews and such. This was of no benefit for the previous company. Over my 4 years there I've seen how we were bleeding knowledge that we never got back. The company didn't do so well, the thing I worked on just died after everyone left 6m after me. It's a shame, it could've been a nice thing compared with what I see offered by the competition.


> I was offered a measly 5% after being dragged in 4 meetings about how great I am.

The way you do this is interview elsewhere, get an offer for 40% more, and _then_ tell your manager that you have an offer for 40% more and that you'd really like to stay but they'd really have to do something about compensation. You'll get more than 5% then (but likely less than 40%). It's annoying that you have to invest the time for this, but it does provide data to your current company that your market rate is in fact what you think it is.


I have trouble with this for two reasons:

- If am a resource critical enough for the company to match an external offer and keep me because of the work I do and not because I'm threatening to leave, why don't they act on it diligently and offer benefits accordinly (relevant pay raises, shares and etc.)?

- The moment the company becomes aware that I'm considering to leave for some place else, I'm a potential replacement, if a good candidate or a layoff comes along.

If I'm interviewing some place else, when I put my notice, I've made up my mind, I won't stay around long term.


> - If am a resource critical enough for the company to match an external offer and keep me because of the work I do and not because I'm threatening to leave, why don't they act on it diligently and offer benefits accordinly (relevant pay raises, shares and etc.)?

It's not about being critical. Even as a more or less interchangeable programmer, if you've shown that you're actually any good then you're worth keeping.

> - The moment the company becomes aware that I'm considering to leave for some place else, I'm a potential replacement, if a good candidate or a layoff comes along.

If the company/team/project is growing then there's no reason to drop someone, and if it starts shrinking then you're better off being the first out.


Because your were staying for the pay they offered. While they will give you a raise every one in a while, they don't really have an incentive to give you a big raise.


Worth noting that this tactic is risky, especially at smaller companies. A lot of managers might get you the raise to avoid immediate disruption, while assuming you're out the door in a few months and acting accordingly. You might suddenly find yourself frozen out of desirable projects.


Yes, it assumes a dysfunctional company that values profitability over keeping engs comfy. But every larger company I know of works like this, due to market forces I suppose.


The company knew the problem. I had a discussion with the manager of another team, and she was well aware that I/we were payed well under market prices. They just banked on the fact that to leave it is a lot of work, and some people will avoid that. New hires had market lvl salaries. I could leave and come back, but why would I do that in a company that clearly didn't value me.


Or take the 40% boost and come back two years later for even more.


This is kind of the strategy, every 2 years. It's a new company because I/most ppl kind of feel slighted by the previous employer, especially if we know a bit more about the compensation of their direct manager/other colleagues. It's a churn and I hate it. I have ideas about how to improve the things I work on, medium to long term plans for different components/features to make things better. But now, after about 2y I have to drop everything and start interview practice. I literally have to discard all thoughts of improvements and switch to interview mode.


I think there's also an issue that a software engineer's job changes as they're more tenured at an organization. When you're newer, no one expects anything of you other than to come up to speed and build new stuff. If you have a project that doesn't require deep knowledge of the existing systems, push it to the newer guy.

Only once you have deep knowledge of the systems you work with does it really make sense to give you work like a complex redesign of a group of components in an online system. And you then have a responsibility to help new team members learn. You do more code reviews, and more consulting on projects for which you are not a primary contributor. And you get ugly projects that are related to your area of demonstrated "expertise". Is that "slowing down"? Or are you just doing different kinds of stuff? And is it because the engineer stagnated, or that the organization created a morass around them?


Well said. Typically in year two your job has more than doubled in the workload and responsibility that you're asked to carry.

Which makes the line chart even worse. Pay is flat but the demands of the job are not.


This ignores something very important: tribal knowledge.

Truth is, losing a tenured engineer carries a MUCH larger cost than HR and some managers seem to understand-- these engineers understand the nuances behind why certain decisions were made, what kinds of things tend to work and don't, minutiae of various systems that simply will never get documented, etc. Not to mention the influence they can carry in the org.

You're not wrong that a lot of engineers stagnate after a few years... but it's a big logical jump to put that blame on them rather than the org they're joining.

That said, I like to always call out that there are "developers" and there are "engineers". The majority of software roles call for the former and these tend to be more "replaceable". It's harder to say that for the latter where they are involved in more strategic technical decisions.


The value of tribal knowledge is even more apparent when 'engineers' describes a) traditional engineers (EE, mechE, chemE, civilE, etc), or b) software types with deep specialized skills that grow with domain experience (e.g. image analysis in medical/pharmaceutical, signal processing in audio/radar/telecom, or finite element analysts in weather/mixture modeling).

The experience gained with years in roles like these isn't just in the use of computer tools, but in how to approach and solve proprietary domain problems with constraints that often aren't obvious. Knowing the pitfalls or conventions inherent in complex or regulated domains like automobile or pharmaceutical safety takes time to learn, making those with such experience more valuable to retain.


> a lot of engineers stagnate after a few years

Stagnate is also a way of saying got good at the job.

I mean after a couple of years at a place an engineer might be the person that know the systems best in the whole world if they are no commodity. It takes year to gain the experience and inside out knowledge of a complex system.

To me it feels like I get a mental picture over a system after some time where I can smell where bugs comes from and very fast decide were functionality should be inserted. Up to that point things are just a hassle and then it clicks and becomes a breeze.

Then I switch jobs to get a pay raise and the grind begins again ...


I'm not fully convinced that this is just about the devs. 2-3 years is also about how long it takes for a nascent project to transition into a mature one, and when that happens the culture and energy of the team tends to shift. The same dev that thrives in one setting might end up out of place in the other.


I think in tech 2-3 years is also about how long it takes for one's mental model of how the world works to become stale and outdated, usually coinciding with other projects (that had been too nascent to use) maturing.

I remember that in my peak webdev years in 2008, you built webapps by designing the HTML, converting it to templates, filling in data with Django or Rails, and then adding judicious interactivity with JQuery. By 2011 the world had moved on to Angular and SPAs, and you built webapps as a single HTML page and large JS bundle with a bunch of components that you'd fetch data for over AJAX. By 2013 the world moved on to React, and you had all these tools (Gulp, Grunt, Bower, NPM, etc.) to automate packaging and code-reuse. In 2015 people were still using React and more mature versions of these tools, but what changed was the economic reality that you could make lots of money as a webdev, and the industry itself was maturing with demand for new apps dying out.

I'm witnessing this with my team at work too. We have an "old guard" of leadership that joined the team in its peak years in 2018/2019, and learned (and often wrote) the tech stack as it existed then. Now our team is colliding with infrastructure efforts that started elsewhere in the company and were too immature to use last year, but are now starting to bear fruition and get widespread adoption throughout the org. People who were experts in the old way of doing things find that their skills and projects are now largely irrelevant.


I think it's specifically a disease of the frontend community to believe that nothing you knew about programming 3 years ago is relevant anymore.


> I think it's specifically a disease of the frontend community to believe that nothing you knew about programming 3 years ago is relevant anymore.

Exactly, and it is a shame. Stability and building on the shoulders of giants is how progress is made. Not by rewriting everything all the time.

Luckily I don't work on frontend UI stuff. I learned UNIX, kernels, cryptography, TCP/IP, SQL and similar technologies in the late 80s to early 90s. While all of these areas have evolved and progressed, it's been a gradual incremental change year to year. A textbook on any of these topics from 1990 is still recognizably relevant, even where details have changed over the decades.


Nah, not really. My second example has to do with internal frameworks inside a FAANG, where the average half-life of code is about a year (i.e. half your code is deprecated or deleted a year after you write it).

I've observed similar technology shifts with backend code (where MySQL was hot in 2003, PostGres in 2006, MongoDB in 2009, Cassandra in 2011, PostGres again in 2015, and now there's this huge explosion of storage solutions) and in platforms (where we were all about the web in 2007, all about mobile in 2010, all about blockchain in 2013, all about smartwatches & VR in 2015, and all about Ethereum & smart contracts in 2018).


> Nah, not really. My second example has to do with internal frameworks inside a FAANG, where the average half-life of code is about a year (i.e. half your code is deprecated or deleted a year after you write it).

That's exactly the same web-dev mindset, only applied to backend code. I find it remarkable that you take a half-life of 12 months to be a given, rather than a screaming red flag.

Yes, the world changes, and code needs to change along with it, but it doesn't change that much. Replacing 50% of your codebase every 12 months, year after year, indicates to me that the organization is just replacing poorly architected code with different poorly architected code, not better code. The codebase is on a random walk, and any forward progress it makes is due to chance and evolutionary pressure, rather than reason and design.


Remember that the architecture competency in FAANG exists in the context of a 2-3 year average tenure. And this elides a tendency to change teams internally even more frequently than that. It is unlikely that a senior engineer rated "Exceeds" at design and architecture in Silicon Valley has ever learned from or been evaluated on the consequences of their own decisions at more than 4 years out. Median probably one year.


An average tenure hides a good number of people with longer tenure than that. I'm personally a counterexample to your point, for instance, and I know quite a number of others on other teams at my company (one of the FAANGs).

Turnover is definitely not uniform and a 12 month architecture lifespan is not, in my experience, either normal or healthy.


My experience is that architectures usually last 2-3 employee tenures, the point is the original architect usually doesn't see the outcome of their work.


I don't think workers' entire skillsets are obsoleted by any of those changes, unless you specialized in trend-chasing (obvious risk) and maybe if you refused to board the NoSQL train. But even now those 2003 RDBMS skills have a place again! High scalability companies are back to using traditional DBs where it makes sense.


I agree with this. While the flavor of the year frontend stack might change, since 2008 when I started dabbling in frontend, the fundamentals really haven't changed: understanding DOM, understanding the JavaScript execution model, understanding the layout models, understanding the complexities of dealing with data binding over asynchronous events and simultaneous users, and so on. jQuery didn't change any of that (although it drastically improved ergonomics). Angular didn't. React didn't either.

My experience has been that paradigms and tools can move fast and are relatively straightforward to pick up. Deep understanding of the underlying problem domain and the systems underneath the abstractions is harder to pick up, but the concepts move more slowly.


Depends on what you work on. If you are not on pure tech (a minority of people are), as you get closer to the business you will get insights on how things work, how you can change them, make them better etc. Only part of our job is technical, and without the business knowledge you can't push the world in which you work further. There will be pushback from the "old guard" always, everywhere, as there will be push for the "new thing" always, everywhere. Neither is healthy, and both should be evaluated with a cool head.


2008 was probably the pinnacle of web development. Everything else coming after that was a continuous line of decisions sacrificing usability and user friendliness for developer convenience.


New devs are also unburdened by maintenance work.


randsinrepose has a great article on that concept, called the old guard. Definitely worth a read. How an engineer goes from an exciting new project to maintenance mode over time. It's the natural state of things.

https://randsinrepose.com/archives/the-old-guard/


My personality is that, in the product lifecycle, I prefer the prototype to initial release phases. Initial conception has too much uncertainty - everything is possible but nothing is decided - and maintenance is boring.

I actually had a personality test where this was one of the things it measured. In my case, I think it did so accurately.


I agree with you that most developers do their best work after 6-8 months and that developers get less productive after 24-36 months but for totally different reasons. Developers don't get 'lazy', 'bored' or 'comfortable', they get overburdened by the company.

It is common knowledge that the average developer leaves after the 2 year mark. When that happens, everyone else is left holding the bag and they become the new experts.

Companies are full of self created abandonware.

Another person leaves and it is now two extra things that the vet has to become the expert on. Then three, then four and on and on. Next thing you know, your vet isn't getting any work done because they are holding too many bags. As the expert, they are in too many meetings trying to keep other people productive. They are pulled into too many critical issues and they are trying to mentor new developers in your ever revolving door of new people.

But they are unproductive

No. They are keeping your company afloat and you aren't compensating them for it.


I think it's worse than that, as some of the bags they are holding are full of junk.

Yet they can't just throw them away, because their peers are not confident enough to support the conclusion that there's nothing of value in there. A litany of "How can we be sure that XXXX" are thrown at the expert to clear, creating continuous inertia.

The choice becomes to keep holding the bags eternally, or go elsewhere they can start fresh.


Sometimes yes, sometimes no.

Is it really junk or are we lacking in time/money/tribal knowledge to understand how it deeply works?

I like to think that I am a Very Good Engineer™ but I am sure that I would produce a similar piece of "junk" if I was under the same lack of requirements, training and time.

  who wrote this garbage??? 
  > git blame
  oh crap, it was me 2 years ago!


To me it is part of the problem.

> are we lacking time/money/tribal knowledge to understand how it deeply works?

This is a serious issue when a system becomes complex enough.

For instance you work there for 4 years, became the most versed into the system, and have a hunch that the manual process to validate all submissions to some system could be wildly simplified.

But then random managers come to ask “are you 100% sure there won’t be hidden issues ?”, and by definition the answer is “no”. And since you’re the only one on the proposition, you have to bear the risk alone if you push it through. You could, but it is hardly worth it (diminishing rewards at your level, heavy bashing in case of troubles).

And there’s ton of other subtle and not so subtle situations where you have some knowledge, you could do something, but you don’t have any backing to make it worth it because others just don’t know. So stuff keeps piling in.

TBF not all companies work like that, but you also don’t end up a lone expert in places where these kind of issues are solved early and organically.


I definitely agree and I have seen this. I can understand being risk averse to change and unknowns but debt and cognitive load should be a consideration too.

This is why teams creating a billion microservices because it is the pattern of the day gets me a little angry. It is just another unused thing to watch out for.


> Is it really junk or are we lacking in time/money/tribal knowledge to understand how it deeply works?

I think OP was talking not about code quality but code value. A lot of legacy systems are maintained simply because we don't know for sure that there's not something that relies on them, or that they won't be needed later. The expert wants to discard them, but everyone else insists on keeping them around just in case. That adds burden on the expert.


While I think it's an organizational failure, even if folks aren't "growing" after 36 months, I definitely think there's institutional knowledge they have that helps them be more effective... the more time that elapses, the more of that institutional knowledge is lost and not documented.

Obviously it's not great to have companies hanging on by the thread of a single person's knowledge over 10 years, but I feel like at a lot of companies (especially smaller companies), this is the reality.


> but I feel like at a lot of companies (especially smaller companies), this is the reality.

Exactly.

There are many small companies that will be far more impacted be one of their 2 developers leaving than they would be by the owner being hit by a bus, but they'll still balk at raising salaries.


Well market dynamics over the long term should take care of companies that short sighted. They will be outcompeted by others that are better at building organizational capacity.


Yeah, that long term is not useful for the engineer whose skills should be valued right. He will be older by that time


Well that’s sorta how life works? It’s like any other market dynamic that organizes society. No guarantees that anyone will be utilized to their highest and best purpose.


> “most developers do their best work after about 6-8 months of starting a job at a new company, and that comes to an end after about 24-36 months of working at the same company”

From what I’ve observed, the reason for this is not that people intrinsically lose the motivation to do great work.

Rather, often they realize that the company’s ability to reward their performance doesn’t scale with their effort.

Company’s have to delicately balance incentivizing performance of newer employees vs. risking alienating older employees who probably have a lower base rate but are key to the company’s daily operation.

The schelling point eventually settles to an environment where people surge for a few months and coast while doing the minimum amount of work.

This is especially true in a smaller company where cash flow may be constrained. Though the smaller companies often have more flexibility to offer non-monetary rewards like an overblown title or growth opportunities.

The “optimal” strategy for the company is to overpromise rewards to new hires to get them to do most of the challenging work while doling out minor incentives when needed once employees are indoctrinated and somewhat burnt out.


Another thing that happens is people get dragged into more and more meetings and also become the “go to person” for stuff.

I’ve seen it time and time again, start somewhere new and start with very few meetings and you can really deliver.


I’m living this currently. Fortunately, my manager understands and appreciates the value of being a domain expert and mentor and the time commitments that come with it.


> What I do know is that it's much easier for me to hire a competent lawyer or UX designer than it is to hire a competent software developer

I'm curious if you grill the lawyer on some abstract topic from their undergrad courses (possibly 20 years ago) and make them write it perfectly on a whiteboard? Meaning, the same way software developers get interviewed?

Or do you look at the lawyer's professional experience and hire based on that?

It's easy to hire people when you make it easy, it's difficult when you put up artificial barriers to prevent the hiring.


Here's a post I made yesterday, in another thread, that sort of speaks to that: https://news.ycombinator.com/item?id=28034629


I have the opposite observation. The first few years are needed just to learn a domain. Productivity doesn’t begin to take off until after a few years. If no one had worked 10 or 20 years in my team we’d struggle to get anywhere.

The impact of new hires can still be great when it comes from bringing fresh ideas and perspective (e.g processes, tech knowledge) and that obviously fades as everyone with a long tenure at the company has used the same tech.


Companies have basically said “don’t bother learn about the business except for the interview” with their compensation approaches.

Why bother spend time learning anything not applicable at your next role?


Same here. Took me over a year before I got somewhat confident with the domain, and after two years before I became fully productive. My boss takes this into account and doesn't hire people he's confident will move on in less than 3 years.


> (...) that comes to an end after about 24-36 months of working at the same company. After that the vast majority of people just stagnate, get complacent, the job stops being interesting to them and they move on.

Or, another explanation, you are mistaking cause and effect.

Maybe the people figure out they could be earning so much more somewhere else but they are unlikely to get the kind of raise at their current place, so they get disillusioned and demotivated?

And then they change the job getting the significant raise, further reinforcing the behavior. Now they join another company fully expecting the same thing to happen in 2 years.


I'm going to make a suggestion for the cause of your observation.

I think many people come into a job for a specific project(s) during which there is a ramp up period of understanding the requirements, limitations, team, how the company works, getting to know people (6-8 months).

Then after working on that project, delivering it, iterating on it, tuning it, working through potential production support issues and some scaling items...in many cases the vast majority of the work is done (2-3 years).

At that point, a few things happen because this developer is ready for a new project or new challenge, as are most of the people who were involved with that project.

Their options are:

- Find a new project at the company and restart the learning period as they transition in a potentially lateral move. If this happens, it's unlikely the company is going to give them a sudden compensation boost when in the eyes of management they're continuing to do their existing job.

- Seek training related to some advanced problem that they solved to become the company's expert on the subject, in which case the company will likely pay for the training but not a subsequent boost in compensation (because in their eyes...they just paid for the training)

- See how well they have marketed themselves to find out if the company has recognized their talent to promote them into a higher level position with an equivalent pay bump or potentially managing a team. The only problems is that you can only promote so many people, so this person will be the exception and not the rule.

- Update their resume with the newly acquired skills and have somebody else pay them market rates to start a new project at a different company, using their current job as leverage to get a significant bump in compensation. Meanwhile, you'll be paying new market rates to hire the replacement.

It's no secret why people often just jump jobs. You've finished one project and you're going to transition to a new one anyway, getting a fresh start can be a good choice. Additionally, no matter how much people like their situation in one job they will end up building up frustrations with certain people and/or management over time. As long as those people are still around, it will increase their likelyhood of leaving.

But ultimately, you're looking at the likely timing of concluding one project and then exploring options for what's next. IMO, that coincides with your timeline.


Totally agree, that's exactly how it works for me.

I join a company, work hard the first year to get a promotion and do the fun stuff, after that, I relax and stick around to vest most of the stocks and leave around the 2nd/3rd year.

I have seen so called "architects" at big co that had been there for decades bringing absolutely no value to the table. And always asked myself why would the the company retain, promote and pay these guys big bucks. Nonsense.

I call them : the legacy guys.

The only thing I can think of is that the "legacy guys" retain the memory of all the legacy stuff, and the ability for them to maintain that piece of legacy/core/monolith piece of software that no one dares to touch.

I guess that's valuable for the company, but not certainly for the employee.

They stagnate exactly because by working on that legacy stuff they can rarely learn new tech, thus they wont be able to find a job at that level anywhere outside their current company.

They are stuck.


There are jobs for architects out there.


Do you have kids?


I do. I know it is impossible to getting prep for interviews when having kids. What I do is to leave my current job, give myself a month to prep, interview get a new job. So far it has worked fine with me.


What came first, the chicken or the egg in your scenario? Did they stop doing great work because the rewards didn't match? Or did you stop matching because they stopped doing great work?

Always hard to tell.


It's not hard to tell at all. You could just, wait for it, make the rewards match the expected great work and test that way.


I definitely agree. Pay what you expect (great for great work), and if someone isn't cutting it let them know (chance for improvement). Worse case, let them go.

Instead, most companies reward no one and wonder why the good ones leave or burn out ("weird, they don't contribute at the same level anymore").


> the vast majority of people just stagnate, get complacent

Even if you're right - 100% of the time, about 100% of people - the value of having the one guy who remembers why it was done this way and how it was fixed last time it broke available to look at it when it needs looked at is priceless.


I think there's more variables at play though. A person who has been at a company 3+ years has figured out how to be effective in certain areas, but is also now asked to be effective in a much wider range of areas. They are asked to maintain something they wrote in their first year, they are asked to attend meetings or respond to emails because they have the knowledge and influence, they can't start anything new because they are so pivotal to the thing they're currently doing. And yeah, these things are important to the company, but they make the worker feel like they're stagnating. The company starts to get in their way and they feel like the only way to do something they find interesting is to leave.

Companies need to give engineers the opportunity at a clean slate. Let them shed responsibilities and pretend they're just a very competent new hire with the freedom to start working on whatever they want to. If it's a larger company, you can usually transfer to another team somewhere, but you still get pinged about stuff you never want to spend time on again.


3 years is also the amount of time it takes to become the resident expert in one of the company's Scary Basements, and then both your productivity and morale hits the crapper while this tired old beast that nobody wants to support you in modernizing needs fixes and tweaks.


You may enjoy the concept of the "tour of duty": https://hbr.org/2013/06/tours-of-duty-the-new-employer-emplo...

http://www.theallianceframework.com/about-the-book.html

Thinking about my career (and others) this way has helped me remove a fair bit of stress when making job, role or project changes.


> that comes to an end after about 24-36 months of working at the same company

Have you looked into why?

The one job where I stayed over 10 years was the one where my expertise was highly respected (large degree of decision-making autonomy, no micromanagement via agile) and I was able to fluidly change projects every 2-4 years. The pay wasn't that great but it never mattered because the job was so rewarding.

Most other jobs just micromanage one to death and stagnate career, so a couple years of that kind of abuse is all one can take before moving on to the next deathmarch.


I find the biggest problem I have is that as time goes on too many people come to recognize me as a person who can likely solve their problem. Somewhat ironically this makes it more difficult to accomplish things over time because I'm constantly getting pulled into things to give my $0.02.

I fully recognize that some of this is my fault and possibly poor boundaries and time management. But it's easier to just leave every few years and also more lucrative. So there's zero incentive for me to stop this from happening.


This is ridiculous. I would prefer being at my current job, leverage my tribal experience to build things (and I have specific things on my mind) better and faster.

If I pitch this to my CTO, he will agree that using my knowledge to build things better and faster aligns with business goals.

Only middle management rationalizes theories such as you proposed. Middle management sometimes just forgets what is the goal of their job and instead focuses only on their actions (self obsession), ego and the presentation of success. An example of middle management self-obsession is your use and throw mentality. Middle management does this because they don't actually listen to their reports. Managers think they are on another dimension and don't need to hear anything from anyone.

A really competent middle manager would know that senior engineers, especially ones with tribal knowledge are the real 10x engineers in practice. Not because they type fast, not because they are hungry and energetic but because they can process situations and circumstances faster in their head to yield results.

If I were a middle manager, I would do my utmost to retain trustworthy people around me. It's almost a no brainer productivity boost.


Agreed; someone who says "engineers produce their best work 2-3 years into a role" is a manager who has created an environment where an engineer's best work is produced 2-3 years into a role. This isn't a recognition of some universal truth; its an observation of the environment they had a hand in accidentally engineering.

It is similarly easy to envision an environment engineered to encourage engineers to produce their best work 3 months into a role; Give new engineers one really exciting, well defined, small greenfield project, after that move them into a legacy maintenance role, never give bonuses, raises, etc. I know I'd get burned out pretty quick; my best work would be very early on.

It is harder to envision a systemic change to encourage engineers to always have produced their best work yesterday. I'm not suggesting its easy; by far, the easiest and most common course of action is exactly the environment the parent commentator engineered, where engineers peak a couple years in. But, don't be fooled; the engineering division absolutely suffers in this environment, and it is possible to do better.


It's not necessarily "ridiculous".

AFAIK in US is typical to change SWE job every few years (those 2-3 years indeed). Those who succeed in doing this consistently (I'm not implying one should, or not) ganerally end up with a high salary, a higher position, and more satisfaction (assuming that change give them satisfaction).

Parent's observation may be a reasonable explanation when looked into context - the time to move on arrives after 2-3 years, and if there's no strong incentive, devs will start to feal uneasy, and move on.


You've got it the wrong way around: usually companies have decided for whatever classist reasons that they have some kind of maximum raise per year. This ensures that after a few years people who are actually getting better at their jobs are falling quickly far below market rate for their level of experience. So, those that feel like they can move on, since it is the only possibility for increasing their pay meaningfully.

This is not specific to engineering positions, it is a pretty common fixed policy in many industries.


Anecdotally, all the devs I personally know who hopped around like this did so because promotions/compensation were stalled out at their current job. Almost all of them would have stuck around if offered competitive titles and compensation, but they were often being paid 25-50% less than they would be as a newhire at the same company.


This has been the case for most orgs I've been at, I tend to tie it to poorly managed growth and planning.

it's shocking the number of developers I've seen left standed in their carrer progression (to quit eventully) due to overhiring and ending up siloed away somewhere

but I guess that's just kind of the way it goes working for other people though


> Parent's observation may be a reasonable explanation when looked into context - the time to move on arrives after 2-3 years, and if there's no strong incentive, devs will start to feal uneasy, and move on.

This is like saying, "Making people drive slower will reduce total number of accidents. So lets just reduce all speed limits to 25 miles an hour. It's only the obvious solution right?".

This kind of lazy thinking is called incompetence, because finding really good balanced solutions is actually work. This work involves observing problems, understanding root causes, piloting and experimenting, bringing other mangers, skips and CXOs into alignment, executing retention deftly while keeping reports happy. But this is too much work for managers (but of course too much work for engineers is never too much work).

What a joke! No wonder SWEs complain so much about management.


Just as an aside: one of the best one can do in terms of policy is to lower speed limits to reduce accidents; it's proven to be very effective in countries like Finland. Far from the only, but one that requires zero changes to existing infrastructure other than changing signs.


> For example, I genuinely don't know if software developers have more of an impact than the product designers

Explains why this mentality exists. Middle management cannot see the impact.


Truly, sometimes I wonder if ICs should be allowed to fire managers if managers can't see what brings value.


Software engineers are allowed to fire managers. It's called quitting and becoming a consultant. It often leads to a large pay bump, but also comes along with assuming all the bullshit that your manager does for you, so it's not for everyone.


No. Firing is not the same as becoming a consultant. ICs should be able to fire managers, along with their health benefits. Let managers take recourse as consultants.


Hi, Person currently in middle management here. While we'd love to pay our good people more, at a moderately sized company and up, we operate under an unbelievable number of constraints, from HR, finance, etc.


the entire point is that companies spend far more money having to replace current employees because they don't give raises.

Recruiting and onboarding a new engineer takes months and the lost productivity is at least 100K when you factor in engineering hours spent interviewing, recruiter fees, months for new dev to learn code base, etc.


Each company has to decide which departments will run which parts of the company.

In a company where HR or Finance runs tech, you’ll get one set of outcomes. Those outcomes are likely different than if tech runs tech. It’s not shocking to me that Google and Netflix get the results that they do; in those companies, HR/Finance isn’t running tech.


You might have constraints but you can still raise your voice EACH time attrition happens because of constraints. Only then will the system change and make lives easier for everyone.

If not, you are forever going to be stuck in the cycle of hiring and attrition.


Speaking from experience, most large tech companies view engineers as area under the curve, as fungible hours. Speaking out about attrition usually doesn’t have any impact at all above the Director level.


> Speaking from experience, most large tech companies view engineers as area under the curve, as fungible hours. Speaking out about attrition usually doesn’t have any impact at all above the Director level.

And blindly accepting things as it is, is the root cause of corporate decay.

If you want a high performance team that cares about management and the job, management will have to return the favor. If corporate structures prevent managers from doing this, managers need to band together and fight HR or whoever is far behind the curve.

Sorry, you are representing your company to the ICs. If you, a middle manager, can't talk to the powers-that-be to change the system, your reports will lose their trust towards you.


I never said I was a middle manager. You’re assuming that an experienced view is somehow an endorsement of the status quo. I specifically lead a very high performing senior team and this issue is the reality that we struggle with.

You need to have a realistic view of how things work to make progress, and managers banding together is comically unrealistic.


> in my experience most developers do their best work after about 6-8 months of starting a job at a new company

Fair. That's about as long as it takes me to realise "nothing fundamental is going to change", so I tend to start losing motivation at this point.

Thankfully I'm a contractor so that's about when I exit anyway. Everybody wins!


My anecdotal opinion is that the first year it's important to show that you are productive. You cut the Jira tasks into extremely small ones and seem very productive to management because tickets get moved, but it's all smoke and mirrors (hell, you haven't seen half of the tech stack, and there is little documentation on the architecture most of the time).

A senior developer on the other hand might say they didn't do much because they think "it was just small things that I've done before". You really have to look at the commits.

Companies have been bankrupted because of the "let's just get two new ones"-mentality, not seeing that the lead time for developers to become relatively productive by knowing the ins and outs of large codebases is very, very long (for backend development, frontend is more cookie cutter).


IMO I think your hiring is broken. You should look for things like willingness to learn and ask about previous jobs to see if the candidate experience stagnation. Is your company really getting a decent ROI after only 2-3 years of an employee in a specific role??


>there are many more competent lawyers and designers out there

Curious if you could elaborate on how you came to this conclusion? According to ONET [1] there are 819k lawyers in the U.S. but 1.469MM software programmers.

If you come from a software background I wonder if it’s easier to spot an incompetent programmer than an incompetent attorney which could bias the heuristic. Or do you think there’s something else at play that makes the proportion of competent software developers inherently much lower? E.g., there’s no “bar exam” for programmers to ensure a basic level of competence

[1] https://www.onetonline.org/


A year to learn, a year to earn, a year to yearn is how I’ve heard the cycle explained.


"in my experience most developers do their best work after about 6-8 months of starting a job at a new company, and that comes to an end after about 24-36 months of working at the same company. After that the vast majority of people just stagnate, get complacent, the job stops being interesting to them and they move on."

Thanks for sharing this, I think you are probably "right" even though what you said is not an easy/popular thing to say.

What is your observed sample size on this? Could you elaborate on how you see people stagnate, and why you think this might be?


I'm not convinced this isn't explained entirely by compensation. There are perhaps a dozen large tech companies at which an only moderately remarkable engineer can make $500k a year right now. That number has gotten bigger every year for the last decade at least, and the much larger pool of "every other software company" is increasingly falling behind. You should follow up with your exits a few years down the line and see where they end up long term. I bet a few of them will have retired - how often do your engineers retire at 35?


This absolutely happens. A lot depends on the company and role, but in my experience after 24-36 months you tend to become known more broadly in the company and are passed around as “person who knows about x” and these type of interactions characterize most of your days. It’s not a bad spot to be, but definitely not the most productive arrangement.


It may well be true, but I doubt it for companies like AWS, which has enormous infrastructure, many implicit and explicit processes, and a peculiar culture to run such processes and leverage such infrastructure effectively. Losing good people means losing guardian of such culture, mavens of the infrastructure, and custodians of the processes.


> After that the vast majority of people just stagnate, get complacent, the job stops being interesting to them and they move on.

> so I pay them less, regardless of whatever objective measure of impact may exist.

Ah, the classic "blame the person you hired for being bored with a low paid, dead end, high churn rate job", most excellent.


Developer stagnant?

I was in Amazon and Google, I never saw a case where the developer stagnant before the product/management went into stagnant.

Developers just write code, and they just accumulate more knowledgeable and skills with the stuff they work on. How can they stagnant is something not obvious to me at all...


That didn't piss me off at all. But agree that might offend others. I do see myself getting stale in different shops. I kinda stopped jumping around every 3 years at this point though. I might just sit for a while to make sure there is stability going forward.


My 2 cents - if some stagnate, it’s still worth working hard to retain the ones with upwards trajectory. And he kind on the way out for the others. There is a benefit to institutional knowledge.

By your reasoning do you agree with Amazon’s explicit 4 years and out model?


Sorry but I really cannot understand how this is the case. In my short experience one can't make a significant impact to a mature large scale software product in 2 years. What kind of impact I'm talking, the kind of impact that can affect the business bottomline, that can actually transform the company. Without anyone having more than 2 to 3 years of experience the level of insight into the product would be quite shallow. Not to mention people that only stay for 2 to 3 years at a job never get to experience the long term implications of their code and decisions. They never get to learn from their mistakes since they keep making new ones and moving on


This is probably very dependent on the exact role and field, but o see your point.


You seem to attract people with short attention spans.

Imagine if academia tried this.


This all just screams of issues with poor tech leadership.


Self-fulfilling prophecy?


This isn’t surprising. 3 years is about the length of time it takes most humans to become bored with monogamous relationships. There is a very high rate of breakups and divorces in non arranged relationships by the 4th year.


The divorce rate for the first 5 years is less than 20% in the the US. The US has a higher divorce rate than many countries so, in general, this is untrue.


I'm not sure you've shown that. I would be surprised if any meaningful number of (non-arranged) marriages are established in year zero of the relationship. A quick Google search suggests to me that the average relationship is established five years before getting married.

The original assertion was that relationships tend to break down in year four, meaning that they aren't likely to make it to marriage in the typical case. Marriage data is only relevant to the outliers who married early, and as far as that goes they could all be found in that 20% quite easily, I'm sure. The data provided is not sufficient to know.


No. The original assertion is that monogamous relationships AND marriages breakdown in the first five years at “very high rates”. Marriages do not. And, as you say, if you got married you were probably monogamous for some time before that.

I’m not disputing that humans get together and break up all the time.

It’s unclear that monogamous relationships breakup “at very high rates” due to boredom either. There are many reasons relationships falter, boredom being but one of them.


No. There is no mention of marriage at all. The assertion was specific to monogamous relationships.

A monogamous relationship is usually, especially when not arranged, established well before marriage. Divorce rates that hinge on years of marriage and not years of relationship does not provide us with any useful information here.


How do you have "divorces" without marriage?

And why this strange obsession with arranged relationships?


It is rather straightforward. Some monogamous relationships will establish marriage. Sometimes before the four year mark of the relationship. This means that some relationships that fail in the fourth year will also end up in divorce. The date of marriage does not usually coincide with the date of establishing the relationship, however, and thus marriage data is not useful here.

I'm not sure where you find obsession with arranged marriages? The original comment excluded arranged relationships, presumably because people in arranged relationships maintain a relationship for different reasons than those in voluntary relationships. But if you really want to understand his intent, I'm not sure why you're asking me?


Because you said "especially when not arranged" ... I thought you are part of the obsession.

Arranged marriages have a lower divorce rate but a higher separation rate; suggesting cultural prohibitions against divorce and not a higher success rate. It's odd to keep culling those types of relationships out.


I was protecting against silly nitpickers coming back with "Oh, but in my arranged marriage, my relationship began on the day we were married!" But I guess the nitpickers will find something to nitpick about no matter what.


> But I guess the nitpickers will find something to nitpick about no matter what.

Ok, that was awesome. Guilty as charged.


Marriage != monogamous relationships


True. But they said “divorces”, I’m disputing that part. They have no support for the rest either.


I don't really understand this article, or the current trend of job hopping. I'm from the generation where you have one job, maybe two, and that's it: I've had 7, but I really only ever wanted one good job.

For some perspective: when I left Intel circa 2010, I was a Senior Staff Engineer fighting to get promoted to Principal Engineer (followed by Senoir Principal, then Fellow, then Senior Fellow, hahaha). FYI I loved Intel for the first 10 years, and hated the last 12.

I made $130k base salary, $70k typical bonus (EB+ECBP), and stock options (most of which were worthless). This was after over two decades there, started in '88.

Recently, a friend (12 years younger than me) was hired by Intel to work in one of the ML groups. He asked if the starting salary was fair: they offered him $400k. I was angry, jealous, and shocked. I have friends that are STILL there, grinding away at sub-200k base salary after nearly 30 years, and they are too scared to leave.

So this idea of coders flitting from job to job just seems so alien to me. I'm obviously from a different generation. I don't even know what I would ask for pay if I ever left consulting. Headscratcher.


> I don't really understand this article, or the current trend of job hopping.

The answer is in your comment: your friend who started recently at Intel is getting more than double the salary of the long-timers. What's not to understand?


Good point. I would say the confusion is due to my outdated expectations.


Is your expectation something along the lines of, "if you are loyal to the company, the company will be loyal to you"?


I like your view. The thing is people are constantly resume building these days. And that resume is never done. You get a good job? Wouldn’t it be great if you got your name on a couple of cool things in your new place? After that returns start diminishing and people are quick to leverage and move on.

I came to CA hoping to find mad coders lost in thought of their projects. All I see are career athletes


The problem is that his view has cost him millions of dollars. Not job hopping is a multi million dollar error his the part of them and their colleagues.


Eh, but I'm at the end of my career: in hindsight, what would I have done with that extra salary? Bought a new BMW every year, or owned a "premium beige" McMansion with a pool? Or two McMansions?

I'm not a status-shower, and the salary increase wouldn't have been enough to be filthy rich (e.g., buy an island). I can't complain though: I ended up about to retire a multimillionaire despite not job-hopping. But I was lucky, I guess, my first mortgage was $600/mo just outside the Bay Area and I sold for ~8x what I paid after living in it for decades. Plus early in life I was forced to pick cheap hobbies that I stuck with: reading and backpacking. :)

My only regret is not taking better care of my back cuz now I can't sleep on a Thermorest+eggshell anymore, and all the fiat currency in the world can't fix that. Feh!


> my first mortgage was $600/mo just outside the Bay Area

Is that in todays dollars or what it was at the time? If it's in today's dollars that's just incredible.


1990 dollars, $1200 in today's dollars according to this site:

https://www.usinflationcalculator.com/


Wow, yeah what a different market. Even with a high paying SWE job, home ownership for me (mid twenties) continually feels like an always increasingly expensive goal that grows more distant of achieving.

Cool to read though about what you posted earlier!


Is this from exertion outdoors or office chair, lack of exercise etc.


I value my time and attention. For example, right now I can work on a project that would impress my managers. Or I can work on what I think is the pressing, fundamental problem. Both are trade offs but I feel weird when I have to be blind to my own interests. What am I doing with all that money?


The hustlers are winning against those that are loyal. It's sad, but that's how it is.


I remember my first day at Intel. A guy was putting his stuff in a cardboard box, never to be seen again. It was during a downsizing, and my boss reminded me how lucky I was to be an intern. "The only guy with job security."

Remarkably he's still there, and I still have other friends there, nearly two decades later. One of them writes on FB over and over about how pointless the meetings are, and complains about the stock price.

When I left, I managed to get myself an offer for the management track, via a friend on the same track. I turned it down thinking I'd probably regret it, but I decided during the internship that there was something about this apparent elevator to the C-suite that didn't quite seem right to me. The ease of being at what at the time was an unassailable monopoly perhaps seemed both too good to be true and probably hiding issues down the line, both for the business and in terms of internal competition climbing the greasy pole.

But also changing jobs every now and again has had other liberating effects. I have a lot more confidence that it can be done (since it's been done lol) but also there's a variety in seeing various businesses and people that's hard to get if you stay put. The fact that new jobs generally means more money is a big bonus on top of that. I suppose a lot of firms get a huge saving from people who don't look around much.


There's a lot of implicit loyalty here. You're very loyal to Intel even when they didn't treat you the best. Why? What happens when you underperform, will they show you the same loyalty?


You're 100% right. I came from a long line of "work till you drop at the same job" men who never took vacation, so it was burned into me. I was loyal out of "because that's what you are supposed to do", which I now view to be an illness. Which is why I left. I was naive thinking the fun of the first decade would last indefinitely.


Regarding the story of a long-established company having to adapt to FAANG/post-dotcom pay... I've seen a different response to that.

In this case, I was the prospective new hire, at a well-regarded large company. They had a large number of software developers who'd pulled off some very impressive technical accomplishments (comparing favorably to most any tech company you could think of), and had been doing so since before FAANG... In the offer, they made the level Director, even though the role was non-management hands-on technical IC. And the comp. people had also added an additional incentive program that wasn't standard for this level. I figured that might be to work around the company's pre-FAANG pay grades for software-ish people. The team, business unit, and SVP were great, and I was actually very anxious to move. But then the offer letter came from corporate, and turned out to be laden with surprise clauses (regulatory, etc.), and corporate was unable to provide copies of documents that it referenced as things to which I'd be agreeing. My decision mostly came down to the intuitive (besides the practical costs of the surprise eleventh-hour asks): feeling that I'd be at the mercy of any Kafkaesque bureaucratic accidents of a large institution, more than I think I would be at a certain larger FAANG, while the total comp. wasn't close enough to that FAANG -- so accepting would feel more like being a scared loser, than like willfully investing towards success.

Sounds like Intel's variation of paying close to FAANG might've been the way to get that new hire (despite whatever perceived big-established-company downsides there might've been), but at the cost of demoralizing the existing engineering staff who had pre-FAANG comp. (Who then might feel like the losers.)

Has this problem been solved by any long-established company that has employed top-skilled technical people since before FAANG, without paying competitively?


Loyalty to your company went away with pensions. Also, if those numbers are right I might need to clean up my resume.


How many companies will be around in 30 years? Half the companies I've worked for in the past do not exist anymore. The idea that you could get a job and stay there until retirement is antiquated at best.

Guessing that I'm less than 10 years younger than you, I had a college professor that told my class to change jobs every 5 years to maximize income. That was in the early 90s.


I read the other replies explaining that the huge discrepancy you’ve seen should be expected. But I think it’s worth pondering if your shock & jealousy should be tempered by the ML thing. ML engineers make more than general software engineers everywhere. At least they did for a while between roughly 2015 and 2020. I don’t know what’s happening up to the minute, but ML hiring and crazy salaries seems to be cooling off a bit now as far as I can tell. Also did the ML guy have an advanced degree that your long-timer friends didn’t? That’s another way to start higher.


> ML engineers make more than general software engineers everywhere. At least they did for a while between roughly 2015 and 2020.

It's not clear if SavantIdiot is a SW person (vs HW/fab), but while what you say is correct, note that Intel significantly underpays SW as well. He was a grade 9 employee, which is fairly senior - very few employees will get to that level. Even today, looking on levels.fyi, the typical Grade 7 employee (equivalent of upper L4 in Google) gets about $163K in total compensation (salary + bonus + stocks). The grade 9 person gets about $260K total. The equivalent in Google is from $356K to $490K.

Furthermore, consider this: Intel's problems involve manufacturing - fab, etc. If you're a principal engineer, your total comp is still lower than a new ML engineer with no experience. It's very hard to become a principal engineer - only 4% of employees who get to the grade level below it will ever get to principal engineer.

That ML employee isn't going to help much with fab issues - the principal engineer is. How do you think he'll feel knowing that he's a lot more responsible for the future of the company, yet the guy just out of school will reap more financial benefits than the person who actually played a bigger role in making it happen?

> Also did the ML guy have an advanced degree that your long-timer friends didn’t?

SavantIdiot was a grade 9, which is 2 grade levels above an incoming PhD. SavantIdiot was a very senior person.


It's an in-demand skill, supply and demand.

However, lots of folks leave for a while, get some new experience, and come back with a big boost in salary and maybe title. Give it a try if still interested.


Off topic but is the 400k offer SWE? Didn’t think Intel paid that much based in Blind posts.


I thought Intel was stiffing ML people too, maybe Gelsinger kicked some butts in management.


Management doesn't get a say in this. HR does. Gelsinger is the first CEO at Intel to openly admit Intel pays below market rate and when he joined he promised an 18 month timeline to improving compensation. Most of it involves negotiating with the board.

Recently Intel paid a number of employees extra RSUs as a "first step". It does seem the ordering was ML > SW > everyone else (from anecdotes).


> The hard truth that many companies struggle to wrap their heads around is that they should be paying their long-tenured engineers above market rate.

From an ethical point of view, maybe. From a rational point of view, maybe not.

Jobs are "sticky" — it's a pain to apply for jobs, arrange interviews, deal with the possibility of getting rejected. And if you do get an offer and accept you will be leaving colleagues that may be friends, risk your position being less stimulating, have to move house and/or deal with a new commute.

There is a very real salary range between "low enough that I'll think about applying for other jobs" and "so low I'll actually start applying for jobs". Employers are aware of this and are paying salaries accordingly. It sucks for everyone in that salary band but — ethics and long-term viability aside — it's still the rational economic choice for employers. Every now and again someone will quit and get their deserved 40% increase, but many will delay leaving for years, or simply put up with it indefinitely, saving employers tons of money.

Of course this may not be the case forever. It seems like recently the cohort of people who find interviewing and changing jobs more tolerable (the so-called "job-hoppers") is increasing in size. If you happen to be a part of this cohort, then congratulations, you're winning the job-market pain-of-change-vs-salary arbitrage game and will enjoy above-average year-on-year salary increases for at least the near future.


> There is a very real salary range between "low enough that I'll think about applying for other jobs" and "so low I'll actually start applying for jobs". Employers are aware of this and are paying salaries accordingly.

This is the difference between employers who play the game at a low level and employers who play the game at a high level. If you play at a low level, then you view your workers as interreplaceable cogs in the machine. You charge for soda at vending machines and balk at shelling out a few hundred bucks for a ping pong table. Sure, it's "expensive" when people leave, since their replacements are more expensive (not to mention ramp-up costs), but your perspective on your employees is how much they cost you to employ, so you try to keep that number as low as possible for as long as possible.

Higher-level players order dinner to the office every night because they understand that the price of food is so ridiculously cheap compared to the additional productivity that the only way it doesn't make sense is if you manage your employees by what they cost and not by the value of their employment. Higher level players grant their employees large raises without being asked because they understand that defensive raises prevent your employees from searching for new work in the first place. Higher level players understand that loyalty has value, trust has value, and tenure has value.

Are lower-level players rational? Sure. They're also either stupid, or of low enough relative productivity that the market will subsume them soon enough.


You laid out the exact reasons I stayed as long as I did at my last job, even after it became clear I was not happy with my compensation. (except for the moving part - hurray living in a 'tech' town with lots of opportunities I guess.) Although I am really confident at this stage of my career in my abilities and reputation, interviewing is such a pain in the ass overcoming that inertia takes a bit, and you are right, companies count on that inertia.


I've found a different kind of stickiness. I've been in enough circumstances that I now value sane management and co-workers who I like. I'm not in a hurry to leave a situation like that, because I know that it can be rare. I don't need to maximize my money; I can get decent money while minimizing my misery.


People here on work visa (H1-B) have to go through renewal of their work visa application as it is tied to their employer. This step while being fairly straightforward can add to the inertia in switching jobs.


> This step while being fairly straightforward

Gone are those days when this was straightforward.


...and that is part of why H1-B employees receive less in the way of salary and salary increases at many firms.


This is a big factor. If I switch I want a 10-20% raise not because that’s very important in itself but because I’m taking a massive risk and have to endure a horrible process when switching.


> [...] Jobs are "sticky" [...]

My experience has been the opposite, in that sticky jobs are jobs held by people who aren't in demand. There's a balancing act for employers ("brilliant but flighty" is less desirable than "good but sticky") so it's certainly possible to argue that jobs being sticky for less-than-brilliant people is a good thing... but in my experience, jobs aren't sticky because of inertia for brilliant people.


I mean, I won't claim the 'brilliant' label, but I am competent and in-demand, and my experience is just what the OP laid out. Once I started interviewing, opportunities came left and right. Getting starting interviewing was a hump though, and there IS always the fear of landing somewhere that seems good, but isn't, especially if your current job ONLY lacks for adequate compensation.


You might be right. As a counter-argument I can only offer my anecdata of being a contractor who has met quite a few people deep in the bowels of large enterprises who I would class as brilliant, but who are coming up on five, ten and sometimes fifteen year anniversaries. Perhaps they do have good reasons for staying, but whatever they are those reasons are they are out of reach of my make-as-much-money-as-fast-as-you-can monkey brain :)


I think you'll find a fair number of people who like their work, are comfortable where they are, and feel like they make enough money. And don't really care that they could maybe make more somewhere else.

I also expect that the moving around every 2 years meme is pretty influenced by Silicon Valley. It certainly isn't the norm I've seen.


I think people who are "brilliant" at interviewing will job hop frequently, while people who are "brilliant" at actual job performance will tend to be promoted and incentivized to stay internally.


This just isn't true. Find me any data that any level of performance results in better compensation than changing jobs every 2-4 years and I'd be willing to at least consider the idea, but it just doesn't exist.


It's not sufficient to make 1% more money. If it's not a 20%+ increase, you might as well bide your time. This means the first, lower paying job, is sticky. Otherwise you could leave instantly at every better offer without penalty to long term prospects.

And even for those brilliant people who can get it on the first try, you're taking about 2 months minimum to go through the interview process. If you're someone who doesn't like taking risks, that's a tall order until you've become convinced there is no path to promotion within your company.


> There is a very real salary range between "low enough that I'll think about applying for other jobs" and "so low I'll actually start applying for jobs".

True, the other side is if you're trying to hire and pay the same industry salary, people aren't going to move because what's the point? If you're trying to hire a lot of people you have to pay more than average just to get people interested.


You can't nab people with market rates, but you can get new hires with market rates


Seeking that band sounds to me like an optimization trap as it wrongfully assumes the cost of churn from gambling it is less than the cost of turnover and growing salaries. It sounds a bit like deciding where we really need to cut costs are deep sea oil rig gaskets.


Software engineers especially can take on side projects to supplement their income. Maybe a bit less focus on the day job to reflect the below market pay. Keeps things in balance.


The vast majority of companies ask for a 'we own everything you breathe' agreement as a prerequisite for employment. The vast majority of employed software engineers don't have the luxury to work on side projects, unless they relinquish the IP to their employer for no additional compenstation, which renders monetization moot.


I worked with someone who was working 2 full time 9-5 jobs simultaneously for a few months before being found out. When the company did realize what was going on, they quietly parted ways with him without any punishment, because they didn't want it to get around that he got away with it for so long. I think if you're not at a big organization with a proper legal department, that's the most likely outcome.


I know someone who did this for a over a decade.

Even got promoted to management in one of the two jobs! They would sometimes have to take calls from both jobs with one earbud in each ear connected to each laptop.

The industry the companies were in are not known for employing the best and brightest programmers... so I can understand being able to output enough to keep everyone happy. But it still boggles my mind that they never slipped up and got caught.


It depends on your country/jurisdiction.

Most countries I worked in, anything done after hours, not using company resources, and not in the competition space of the employer is simply allowed. No company would be able to enforce that.

In fact (I have had that happen) if the contract tries to over reach, in particular regarding IP, then that clause could just be made void in court.


If you work for a big company, there's not much out there to work on that's not in the competition space of the employer.


I don't know. How much time do people put into side projects that make money? 15-20 hours/week?

I work 40 hours/week at a Big-N, but if I put another 15-20 hours per week into my current job I'd get promoted extremely quickly, and get a bigger raise from that promotion than any "side project" I could come up with.

I don't want to do any of that, and moving companies is still probably the easiest way to get a large raise, but my point stands.


> if I put another 15-20 hours per week into my current job I'd get promoted extremely quickly

That'd be a very rare circumstance.

In most jobs working 15-20 hours overtime each week only gets you 15-20 hours less for living your own life, nothing else.


In software engineering?

At all companies I've been at or have intimately known about, there have been clear guidelines for promotions and examples to look at. These are medium to large companies. FAANG and non-FAANG.

I'm sure you're right in a lot of cases, but I feel like at most software companies I'm not too far off.


Side projects dont make anywhere near the amount of money that devs here expect to milk from well funded companies


There are several factors:

1. Organizations will often see bumping up an employee's pay to match another offer as some variant of extortion and it's they view this as disloyal. Never mind that the other offer clearly shows they're now below market. I didn't say it makes sense;

2. There is friction in changing jobs and companies and people will generally have a threshold for making that jump (eg they won't switch for less than a 20% raise). So over the entire pool of employees it's cheaper to let a few go than give everyone a raise when many wouldn't leave;

3. Companies have a philosophy that you do the job you get promoted to first and then you get promoted to it and paid subsequently. Worse, often it takes time for things like equity to catch up. You may get a discretionary grant when you get promoted or you might not. And it can take years of annual refreshes to get to the total comp off a new hire at the same level;

4. Organizations seem to make the standards higher for existing rather than new employees. I think this is in part to avoid level and compensation inflation;

5. Up to a certain point there is an expectation of growth. Some of this is formal (eg up to T5 at Google). Some of it is more informal. They make the determination that even though you're at a terminal level and that's fine, if you've been there for years you're probably not going any higher so you won't be one of their future leaders or stars; and

6. Diversity. Tech companies have explicit goals around having certain minorities essentially over-represented compared to the demographics of, say, CS graduates. I guarantee you such explicit goals create perverse incentives that extend to how they handle retention.


These are good. I think I'd add one:

7. Tech companies (explicitly or not) are skeptical of people who don't switch jobs. People call them "lifers" as a denigrating term, for people who are just coasting. Switching jobs implies that you're hungry or ambitious (regardless of whether it's true), whereas remaining at a job shows that you are complacent.


I think this is the main one. It's a form of price discrimination. Folks fall on a spectrum from willing to go to more trouble to get more money to not willing to go to any trouble at all. It's in the best interest of a company to pay a higher rate to the former than the latter, but you can hardly go around polling people and then adjusting their salary accordingly. So you favor policies that implicitly offer the higher salary to those who signal they demand it without having to offer a higher salary to all. It doesn't have to be that they perceive the former to be worth more. Even if both perform exactly the same it's still worth it to pursue a policy which allows you to price discriminate effectively.


There's some other words that may also apply:

"Integrity," "Loyalty," "Honor," "Reliability," "Trustworthiness," "Empathy," "Honesty," I could go on...

You are correct. People sneer at these anachronistic qualities. I've looked up many noses.

But it's what worked for me. I'm fairly happy how things turned out for me.

What was it Hunter Thompson said?

"I hate to advocate drugs, alcohol, violence, or insanity to anyone, but they've always worked for me."


This is a great list, to elaborate on #4, I think there's another factor at play related to the social implications of Dunning Kruger. To be specific: ones sense of ones own productivity and value to the company is not very well correlated to actual performance.

For new hires, management doesn't what their value will be, so it really comes down to market rates and negotiation based on the limited signal. If you make a bad hire you can chalk it to classic market-for-lemons problem and you deal with it via pip or letting them go.

However once someone is established, their performance is more or less well-understood by their peers. It's at this point that the disconnect between ones own perceived performance and the broader perception becomes deadly, because peers talk, and if one of them gets a fat raise and the other doesn't then it becomes a whole can of worms. The merit of the situation will get lost in the individual perceptions and entitlements which is likely to result in an overall morale hit one way or another. Sure this can happen with new hires, but it's more easily explainable, especially in the current climate where market rate has shifted a lot and so you literally won't be able to hire if you don't play the game.


> I think there's another factor at play related to the social implications of Dunning Kruger. To be specific: ones sense of ones own productivity and value to the company is not very well correlated to actual performance.

Dunning-Kroger is approximately “one’s sense of one’s own relative ability capability is tightly-correlated with actual relative ability, but shifted toward the 70th percentile from actual relative ability.”

The usual misunderstanding of DK is believing it to be a strong but inverse correlation between self-perceived ability and actual ability.

“Not very well correlated” not only isn't DK, its a fairly unusual misunderstandings of DK.


Many companies do pay for people to stay, but its debatable if its worth it.

The last company I worked for gave me significant golden handcuffs. Probably 30-40% more than I could get elsewhere. They had a "cost of replacement player" policy, where they count the cost of hiring, sourcing, training over the years, etc, and come up with a number thats almost always way above market rate for people who have been around a bit.

Attrition was lower than industry average...but not by much. The reality is that in big tech, salaries are high enough that people stop caring. People left for a variety of reasons, the most common one being "I want to see how it is elsewhere" (especially from college hires who have been at the company several years). Others leave because they want to work at a startup. Some leave to join their friends. Some because they move to follow a significant other who got a job elsewhere (many prefer offices over WFH, so offering that only helps so much).

In the end, again, retention is higher, but when you crunch the numbers, its very debatable if it's worth it for the company. Worse, sometimes companies end up "competing" over it, so even if you pay a lot, the next one offers more because they know your salary bracket, then you raise yours until one gives. That sounds great for the employee but there are budgets and limits at some point.

And then there's the topic of counter offers. The uncomfortable truth is that there's very significant demographic differences when it comes to folks who use the "I got an offer elsewhere, pay me more and Ill stay". If you give counter offers when that happens (as opposed to across the board bracket increase), you quickly end up with statistically significant discrepancies, and that's not ok.


Devs also leave after completing all the meaningful, interesting work and finding there is none left. It feels good to build and launch a product - or even add features that can have an impact on the bottom line. It is something very different to work on a list of features that you know very few people, if anyone at all, are going to use. Same goes for maintenance.


Exactly why I left a job and abandoned a $10k retention bonus. The work was interesting and fun, but approaching zero users.


> The uncomfortable truth is that there's very significant demographic differences when it comes to folks who use the "I got an offer elsewhere, pay me more and Ill stay".

What differences are those?

I tend to think that it’s a bad idea anyway. Once you’ve done it, your employer will know that you’ve already thought about leaving, so much so that you’ve already completed an interview process and have gotten an offer. Surely that must tend to be damaging to the relationship going forward (not saying that it should be, but that it often is).


If it leads to not just more money but a significantly changed role, it can possibly work. Though arguably that conversation should have taken place earlier.


Male vs female most likely


Especially in Silicon Valley, there seems to be a lot of itchy feet in tech that leads people to changing jobs every 2 to 3 years because some people get bored easily and get the impression it's almost required. Historically it wasn't. And it still isn't in most industries and most places (including tech jobs elsewhere). The two larger places I've worked, 10+ year stints were, if maybe not the norm, extremely common. I've spent most of my career in three jobs +/- 10 years each.


There was an interesting paradox last time I was a people manager.

Sometimes people would leave and get a bigger raise than we'd budgeted for them for that year. But at the same time, we never took long to hire a replacement at the same budget we'd been paying them. This required us to be diligent at doing market adjustments when necessary, but also led me to some other thoughts on compensation: if we think employee A is worth $X, and they get a job offer for $X*1.2, neither company has to be wrong. Maybe there's a bigger need at the moment in the other company. Maybe they're going to be working on something more valuable to that company than they were working on here. Maybe to us they've been a solid but non-exceptional performer, but the other company sees potential for them to do more in the interview. Maybe the other company just has more to spend. Maybe they're the third best-performer on the team, and we chose to allocate more to the top two people, so can't do as much to keep them as they'd like.


You're leaving out some serious costs incurred by your company and team. The loss of institutional knowledge, the loss of expertise, business process knowledge, personal relationships that could make hard changes much easier. Sure, you hired someone for $X instead of $X*1.2 but in terms of work done you probably missed out on a lot and came out way behind.


I think you're both overestimating those costs and also underestimating the difficulty of just being able to suddenly pay 1.2X for people.

Re: institutional knowledge and expertise, etc - we tried to avoid too much concentration. If all the institutional knowledge for system X is tied up in person Z, what if they want to take on to a new roll, or I want to ask them to work on a different system or a new project? I like people who focus on what they can do next, not solely what they've already done. Otherwise it's a bad place for the company to be even if someone doesn't leave. Change is a constant, flexibility is good.

Re: personal relationships - morale is always something to keep an eye on, but someone having an exciting new opportunity never seemed to hurt the rest of the team's morale that much.

I think you're also making an unspoken assumption that the new hire wouldn't be superior to the person who left in some areas! The most common case of this was "generalist who built a ton of stuff in an earlier phase of the company leaves, replacement is more experienced in the specialized area that that generalist was currently working on since the company was larger now and they couldn't contribute to everything as easily," but that's hardly the only way.

And lastly, as I alluded to about budgeting more to keep the top two performers than the third - I think you're overestimating the amount of effort and/or success put into by the average developer at becoming the go-to expert on specific techs or business processes. If I tell my manager "I know the second most about React, the third most about Node, and the second most about the plugin system business logic" I'm not going to expect them to find me irreplaceable.


You're trying very hard to dismiss experience specific to a company and industry, but I'm not buying it. Someone who has intimate experience with an established code-base and the company will be vastly more proficient than a new employee of similar intellectual capability. It's why companies often try to hire people within similar industries and tech stacks to help reduce this gap.

It's like trying to argue that a mechanic who has only worked on Ford vehicles for 20 years should be able to quickly have the same proficiency as a mechanic who has 20 years of experience on only Porches. Nonsense.

Remember, a company can typically expect to hold onto a developer for maybe 3-5 years, so even half a year of training is a significant portion of their tenure.


But the status quo is already change and loss of expertise and teams and products continue along fine.

Also you maybe discounting the change in code itself even when I have years at a company I’m still continually learning things because I’m working on new things or new things are being built. If I left a new hire would be able to ramp up on these fresh code based without much hassle. So expertise itself has a half-life in a fast moving field like a lot of software shops.


>status quo is already change and loss of expertise and teams and products continue along fine.

Change in a way where past experience still translates to value. And yes, with enough money and brute force you can overcome the loss of tribal knowledge, but that's the whole point of this conversation; it's an expensive thing that's often not worth it and definitely not something easily dismissed.


Strongly agree, I've experienced this myself from both sides of the table.

The concept of "the market" for engineering talent is far more nuanced and multifaceted than the nice x/y plots used to correlate compensation and experience (not meant as a criticism to the author at all).


I think what this misses, which I saw in another comment, is the take here is an individual one.

If someone leaves and gets a 20% raise, while it may be an isolated incident, I believe it's more often than not an example where the market rate has shifted up and a company is slow to catch on.

While you may find someone new who's willing to accept $x instead of $1.2x, there is likely a large difference between the person being hired and the person leaving which represents the 20% discrepancy. And there's a cost on both sides that's not captured in the 20% differential.

As others have said there's the loss of institutional knowledge and know how. But the new person may also be more junior or is switching domains and so has less experience and thus willing to accept a lower salary.

It also takes a decent amount of time to hire someone new. Usually at least a few weeks. And I'm sure it can take longer. Sometimes 1 person leaving also means you really have to hire 2 people to be as effective as you were before. And of course, the new hire may end up asking for $1.2x anyway if they negotiate.

When all this is said and done, my personal belief is a 20% raise is far cheaper for retention just by the numbers.

There may be several non math based reasons for not offering a 20% raise to retain someone, but purely by the math I think its always going to be cheaper to give a 20% raise.

TLDR: I think this possibility is a false equivalency that just because you can hire a new person at $x means you're in the same spot as before.


This was a growing company making an active effort to pay market rate - I realize this doesn't apply to everywhere.

At the point where the market rate has shifted that much and my employer hasn't caught on, I'm out the door myself. ;)

"Maybe the replacements suck in comparison" is certainly something we would've noticed - happily, it wasn't the case.

But we were hiring basically constantly, since there was no team that had enough people for the work the company wanted to do, even before attrition. So we had a good feel for what we could get for the money. If someone on the team can do better elsewhere, though, more power to them - I would certainly take that opportunity too.


Thanks for the response and glad to hear the new hires have been good!

Admittedly I'm a little burned on this issue. My previous (and first job) was severely underpaying me and all my coworkers. I stayed there for 3 years, wanted to leave after 1.5/2, put a pause on it when covid hit, and finally completed the move earlier this year just around my 3 year mark.

Leaving got me an 80% raise in total compensation and 4 other people on my team/org all left with at least a 50% bump.

All within a few weeks of each other too o.O!

It's such an interesting dynamic and market today and so fascinating to hear about people's experiences as they jump around. Thanks for sharing your perspective!


Most software people don't leave jobs for a 20% raise (certainly not if they have to move). They leave jobs for a 50%+ raise.

The problem is that companies budget raises that barely cover yearly inflation.

If you aren't budgeting raises at 7-10%+ per year, your good employees will leave. It's simply logical.


I hadn’t looked at it this way before, this is a good lens, thanks.


The flaw with this argument is the assumption that the value add of a given skillset is approximately equivalent in different environments.

We see this for example on a larger scale in OLED tech, where a key OLED engineer in South Korea might be worth $250k to the Korean Economy but worth $2.5M to the Chinese economy, which is why poaching was halted by classifying the job as a national security interest.

The profit/employee ratio at Apple is over a million dollars, so a valuable tech employee there should be making seven figures. That kills MBA’s brains (and the traditional power structure), which is why the cartel worked behind the scenes on wage suppression.


Author here! I'm not arguing that software engineers should necessarily be paid in proportion to the end economic result of their employment. Although that's an interesting point for another article perhaps! Rather simply that companies tend to undervalue domain specific knowledge and forget how costly and time consuming it is to hire and retrain new team members. This should be taken into account when considering compensation structures to retain your top talent when considering the open market is always available to them.


Consider the question of "could you get into a bidding war with Apple or Netflix for a tenured developer?" Is there a point where another company can pay more than the economic product of the developer at the original company?

Yes, hiring and training is expensive... and the loss of domain knowledge is costly too.

There are a lot of places that aren't making that much money to be able to get to "market rate".

I'd also like to put forth that the idea of a market rate for developers across all industries is one of the things making it hard to find developers. There are more than a few new grads out there that are discounting any job that pays less than $100k/y because they believe that the market rate is that and anything less is being underpaid regardless of industry, company maturity, or locale.


Similarly, there are plenty of companies here in the Midwest who think it's ok to pay devs 50k/yr, and I want to say in the strongest possible terms fuck that. Employers who won't pay an equitable wage for devs don't deserve to hire them.


I made about $50k/y at a two different midwestern companies. I was getting paid about 2x the per capita income. I was able to buy a house with a double lot with a nice fenced lawn for $60k (no typo there, yes, $60k).

I was reasonably paid for the area. Sure, I could have been making more if I was to go to a different company (challenging in '09). I'm making more now for a different employer in the midwest.

The thing is that there are companies that don't make $100k/y revenue for the work that the devs do. There are also devs who are willing to work for $50k/y in the rural midwest (which is better than other jobs in the area pay).

To assume that those devs should be paid the same as one in SF would have ultimately meant a loss of jobs in the area as the business wouldn't be able to afford to do that.

There are plenty of places that are not the mid west that are paying more.


I'm not really sure that equitable is the right term to use here. $50k a year may very well be in line with what everyone else at a hypothetical midwestern company is making.

I think it's always important to keep in mind that current developer salaries are the result of a constrained market and not because we innately deserve it or something. Yes it is a high-skill job, but there are plenty of high-skill jobs out there that pay much less.


I wish more people understood this.

I spent the first twenty years of my career as a public school teacher, and the last four as a software engineer.

Most of the teachers I knew worked _literally_ twice as hard as the average software engineer I know now, even though they're paid one third as much.

And finding good teachers is just as difficult as finding good ICs. I think the ONLY difference is that it is possible for a lot more people to teach badly than to code badly. And of course that society has decided that teachers aren't worth paying very much.


Valuable tech employees at FAANG absolutely make seven figures.


That's a stretch. A staff/senior staff engineer (or equivalent) at FAANG will top out at mid-six figures annually, maybe more than that if there was a lot of stock appreciation since it was granted.


Nitpick: From the PoV of the (public tech) employers, they typically look at compensation not including appreciation of the restricted stock. It's typically "base + bonus + new stock grant value" or sometimes "base + bonus + value of the restricted stock that vests this year, but using the value at GRANT time, not at VEST time".

More specifically as an employee, I think any incremental value from holding the stock is not compensation FROM the company, since the employee equally has to carry the risk of stock prices going down.

Of course, practically, one's cash flow in any given year is "base + bonus + actual value of the stock that vests in the given year" and can be vastly different from how the company does compensation planning. And this is also what determines income taxes (unless I'm bizarrely mistaken about how income taxes work in some jurisdictions).

Having been a manager at multiple public tech companies, I'll say that this has led to very many 'interesting' comp conversations and not everyone comprehends the distinctions here -- regardless of what's arguably more 'correct'.


Thank you. I’ve gotten a bit tired of hearing people talk about their absurd compensation as though it’s their yearly earning and that everyone should get it, only to ignore the part about it vesting quarterly starting 1 year after reception, over 4 years.


When people talk about comp, they usually talk about the # of $$ they took home last year - anything else is magic money so to speak.

For the same reason a manager isn't going to value a $10MM grant in company that ended up being a penny stock, he isn't going to downgrade a company that resurrected from the pits either. Money in hand last year is the best measure possible/available.


That's not what it looks like on levels.fyi. It's regularly: "SDE 1, 110k + 75k stock options", and then levels.fyi will declare that 185, not 110 + 0, 112 + 38, 115 + 19, 120 + 19

edit: and then people will come on here and say "look! Brand new Google employees make 200k!"


Levels FYI doesn't usually do that.

Looking at how they handle Google, for example they show base|annual stock|signing bonus.

So when you see 130K base + 33K stock, that was a grant of 130K vesting over 4 years. And then with signing and annual bonus of ~20K, that person is in fact making 200K starting (although the median is probably a bit lower for a completely new employee).

On the other hand, people often forget about refreshes when looking at these things. And while a refresh grant won't be as large as the initial grant, they do make the overall comp significantly larger.


That is incorrect, the stock figure on levels.fyi is per year. It does average out over the grant though, ignoring uneven vesting schedules.


Most people give their total compensation as their base salary + (initial grant / vesting period). It is an annual figure, but only a good proxy for year 1.

In later years the situation is more complicated as the stock price will move, you'll receive annual refreshes which are performance dependent, and you might reach a new level. While the base salary changes with levels can be modest, 15% or so, refresher targets can practically double from level to level.


There is definitely a class of staff/seniors making seven figures in FAANG - this may be because of stock growth, 'special' bonus stock awards from extreme performance or retention, matching offers etc.

But yes - these won't be the public / known numbers. These folks have no incentive to make it public and affect their own future numbers.


Depends on your definition of valuable, I suppose. Directors and equivalent ICs (L8 / Principal level) or above can and do get over $1M in annual compensation even before appreciation. At F/G anyways.


Per year? Usually only director and higher levels make $1m+/yearly (not accounting for stock appreciation).


Management tends* to undervalue software development in general, and see software developers as generally replaceable pieces. So, why bother paying above rate when even paying at rate feels like too much for many companies?

Combine that with the fact that it takes a while for the impact of someone's loss to be truly felt (and the fact that developers who leave are often scape goated), and most managers just can't get their head around the idea that a competent software developer is worth $200K/year + benefits.

Not to mention that turnover costs are mostly hidden costs; rarely will anyone attribute a problem to a single individual leaving, and then connect that fact to "we should do a better job retaining people."

*Yes, there are great places to work where this is not the case. That's just not everywhere, even in SaaS companies.


My all-time highest HN comment was this: https://news.ycombinator.com/item?id=23563997

Basically, why do I get such big raises when I switch companies, but getting a nontrivial raise when at a company is like pulling teeth?

How come every company I work for is willing to give me a huge raise and reward me for my achievements at other companies, and not do the same for achievements at that company?

The discussion that followed was illustrative. But I just came to accept it as a fact of life. I wish I could find a place to invest myself in long term, but that has yet to be found...


I remember that thread (and replied to it!).

It's important to remember the whole "30-40% raise when you switch jobs" only really happens at the beginning of your career. Your next job switch will maybe be 20-30%, your next one 10-20%, etc. until you reach the inevitable compensation plateau. I'm over 20 years into my career and my last job change was for +1% or so. No company would offer more.

If one could actually get a 40% bump every job change perpetually through their entire career, someone who starts at $100K would only have to change jobs seven times to reach >$1M. No way on earth that is happening for the vast, vast, vast majority of tech workers who job hop.


Of course, the idea is you reach that upper limit sooner, and making so much more earlier in your career - when properly invested - compounds upon itself dramatically and had enormous implications for one's own financial safety and lifestyle.

And also, thanks for your reply there, nice to hear from you again!


The short answer is that this is how it is in a growth industry with high talent demand. If you were, say, a grocery bagger, you wouldn’t see that kind of salary jump. The moment coding is no longer an in demand talent, this won’t happen anymore. Hope you retire before that happens.


You have to see this from the point of view of a middle-manager whose main concern is his own career and salary. First, it's much easier to manage junior than seniors, more so when you are not an engineer yourself. Also, it's more likely you get a better salary when managing a large team of junior than a small team of senior. Even better, you can become a manager of managers if there is a bunch of juniors to manage. Another problem is that an employee cannot earn more than his boss, and non-tech managers salaries cap at a certain point.


>>Another problem is that an employee cannot earn more than his boss, and non-tech managers salaries cap at a certain point.

This is only a problem in some places and is made up problem by management. Why can't someone make more then there boss, besides ego?


You're right on the facts, but this problem is still pervasive. People are gonna people, everywhere they go.


> Why can't someone make more then there boss, besides ego?

I mean, maybe, but I've never seen anyone even propose a solution to ego so that's still a hard blocker.


"Why is X already solved, except for maybe reason Y" is a HN staple comment though. A few months I came across "Other than nuclear weapons regulations, is there any reason this can't work to fix <blockchain project XYZ>?".


...any chance you have a link, or even just what the article was about so I can search back for an excellent addition to my quotes file?


Turned out to be about hydride tanks for hydrogen storage, but still:

> Hydride tanks don't require those high pressures. Other than nuclear arms treaties, is there a technical reason they don't use those instead?

https://news.ycombinator.com/item?id=27194023


Thanks; it's a little less funny than blockchain, but still good.


It's quite common in sales.


It's a problem that reliably recurs everywhere because organisations are made up of people and people are unwilling to be managers over other people who make more money than them. They quit. You need managers and if you want to keep them they need to make more than their direct reports.


Another way this is done is with reinforcement of social hierarchy outside of comp. This is where you get blatant infantilization of developers and in my experience wildly untrue stereotypes (repeated uncritically as true all over most organizations) about "normal" developers being incompetent at design, UX, requirements gathering, communication generally, understanding business trade-offs and concerns, et c. Nearly all non-junior devs I've known have been at least decent at most or all of those things, actually.

[EDIT] Oh, it's also why devs are compensated like professionals (they haven't been able to figure out how to stop that, yet) but work at open tables crammed together, under management's direct eye, like they're packing cocaine in Colombia or something.


Some things in life are like the laws of physics. You will simply never make more money than your manager, no matter how many economic productivity arguments you can make.



I do not believe a couple of Quora replies are substantial enough evidence to prove an industry wide trend. How do we know those people on Quora aren't prone to sampling bias?


To be pedantic, "laws of physics" are supposed to be universal without exceptions...


> it's much easier to manage junior than seniors, more so when you are not an engineer yourself

I definitely have not found this to be the case. Good senior folks require very little active management.


I believe they are saying that senior engineers will know what to do and give pushback when an ignorant manager gets fixated on unnecessary goals. Juniors are easily told. The product will be worse for it.

In a good team trust and experience are essential parts of the formula.


> problem is that an employee cannot earn more than his boss

Actually this is quite common at FAANG companies.

E.g., I make more than my boss.


>main concern is his own career and salary.

Wait...ICs do not care about their own career and salary? That's news to me (Sr. IC).


There is also the near infinite pipeline of desperate undergrads taking the first decent enough offer that lands in their lap. Wring them dry for a few years and when they leave after realizing what they are actually worth, there are 10 more 22 year old applicants ready to take their place. I'd probably bet that most tech companies outside the most glamorous operate like this. It's just cheaper and that's all most companies care about quarter to quarter, not a deep mature efficient back end or anything that experience and expensive talent brings you.


It is something I never understood.

It happened to me, in my previous company, I was clearly underpaid, but the job was fine, people were nice, nothing to complain about except for the pay. Considering the situation, I looked somewhere else, found an offer for a similar job that was about market rate, went back to my company with the proposal and told them to match the offer. I was even ready to accept slightly less, but I didn't get anything, zero, no negotiation possible. I asked to see my boss the next day, he didn't even ask me why, I think I was already written off.

And I am not an isolated case. The worst part is that I am sure they lose money doing that, because when they hire people at the same skill and experience level, they hire at or above market rate. It is very likely that they hired someone to replace me for more than what I asked them.

Usually, everything else being equal, the more people move, the better they get paid.


Maybe in FAANG world, salaries really do increase linearly like the graphs from the blog showed, but in the F500 corporate and contracting world, the slope starts leveling out after 10 years of experience.

A decent and ambitious dev can definitely gain 30% salary increases after their first few jumps, but once you're at the "senior" level, it's just not happening.

In the first 5-6 years of my career, I jumped about 4 times, each with a large increase: from $55K to $80K to $100K to $120K and finally to $140K about 7 years ago in a relatively high COL city in East Coast US.

As expected, even though my knowledge and skills have really increased over the past 7 years at my current gig, the company gives only the typical 2% inflation raises each year, and there is no equity or bonus system based on seniority.

So now I'm at about $160K, which is still okay for my area, but disappointing considering somebody with similar experience and absolutely no institutional knowledge would be hired for my position at $180K (maybe higher in this market).

But I'm stuck. I can go and play the interview game. And based on what I've seen, at best I'm going to get a salary offer of maybe $180K, and of that $20K increase, I'll end up pocketing maybe $1K / month extra, as all of the extra income will be taxed at my max rate.

Is that worth leaving a company where I've earned respect, have a lot of knowledge, know is tolerable, and where I've got "credibility" and a history with senior executives and management?

It's not for $1K / month, which may even be less if it turns out health insurance has a higher deductible, or I end up having to spend $200 / month more on commuting costs.

I think most seniors hit this same glass ceiling earlier and earlier in their career - by mid to late 30's. And unless they move into management or really strive to jump to the next tier (e.g. FAANG company or finance industry), then there's no real financial incentive to jump, and a lot of risks if your current git is tolerable. And employers know that.


Is that worth leaving a company where I've earned respect, have a lot of knowledge, know is tolerable, and where I've got "credibility" and a history with senior executives and management?

That's where you make the play of going to whoever controls your salary and saying "I've got an offer that pays much better than here. Can you beat it?" People aren't going to look at you differently for it; it's part of business.


> in the F500 corporate and contracting world

Why are you stuck with this world if there's a clear ceiling?

> at best I'm going to get a salary offer of maybe $180K

If you get a $20k increase every 2 years starting from $160k by hopping jobs, that's way more than your yearly 2%. If you're in the right location, the only risk is to quit a job 2 months in because it's actually not what you expected and come back to a company you initially rejected, or start applying again. If you're a dev in your 30s you should have enough money to stay afloat for at least a few months, in which case this is not that big of a risk.

There's also a risk staying in the same company for very long: if you keep doing the same, using the same tech, you can become complacent and your skills irrelevant. At which point staying at your company is not really a choice anymore.


> If you get a $20k increase every 2 years starting from $160k by hopping jobs, that's way more than your yearly 2%.

This isn't how it works. The $180K is the max I could get in my industry, and that's because the previous max in 2014 or so of $140K (which I did get) is basically tied to inflation or about 2.5%-3%. So while I've been getting 1.5%-2% raises for 7-8 years, I've been missing out on that extra 1.5%, which is where the extra $20K comes from that other companies might offer.

But if I took a job at $180K, I'm again up against the salary ceiling in my city and industry. There is no $20K raise to be had after another 1-2 years by jumping again. At best, I might get the full inflation rate raises, instead of being lowballed by a percent or two, and which the difference accumulates to a large $20K or so jump only after 6-7 years more.

> There's also a risk staying in the same company for very long: if you keep doing the same, using the same tech, you can become complacent and your skills irrelevant. At which point staying at your company is not really a choice anymore.

This is definitely true at most corporate tech departments. However, in the contracting world you can jump around to completely different projects and learn a lot of new technologies. So in that sense, I feel I'm okay. The big issue is that you're not exposed to best practices and large scales that you'd see at FAANG. But it's not as bad as being stuck on a single codebase in a single language and framework with a single CI pipeline for 7 years.


> The $180K is the max I could get in my industry

How do you know that for a fact? I think you hint at this a bit in your previous comments, but if your city / field are small to the point that every employer is like any other and that there's no variance in compensation, you're SOL. One way to solve this is remote work, if applicable to your field.


I live in coastal New England, and I faced a similar situation until ~6 years ago, when I started working for all-remote companies.

I've been fortunate to find all-remote employers who pay average non-FAANG silicon valley salaries, regardless of where in the U.S. you live. The result is I'm paid a little (+20%?) higher than I would at a non-fintech company in Boston or NYC.


As someone who will be going back to the office… where did you find those companies and what is the ball park total comp amount we are talking about?


I dunno. Maybe it's not "all about the money."

I was a manager for 25 years (and stayed at the company for almost 27).

When my team was finally dissolved, in 2017, the person with the least tenure had a decade. The person with the most had almost 27 years (he and I started on the same day, in 1990).

The pay was...not so good. The corporation had some fairly lousy HR policies.

I'm told that I was the reason that these folks stayed.

Apparently, I was a half-decent manager. I hated the job, but did it well.

These were a different breed of engineer from what seems to be the benchmark, these days. They were very experienced, senior-level C++ engineers. We did image processing pipelines, and various forms of "engine" code (like that BASF ad: "We don't make the software you use. We make the software you use better."). A lot of my management style involved abstracting the corporate HR policies, and working with my team. They all had families. One actually had a serious medical issue, during his tenure. Most had to deal with various emotional and family issues.

I also completely supported them pursuing any training they wanted; whether or not it directly applied to their work with my team.

I had to deal with each person as an individual. I had to understand their drives, and work with them. I treated them all with the utmost respect.

They worked very hard. They stepped up to the plate, when it was crucial, and I let them have slack, when the dust settled.

It seemed to work for me. YMMV.


That's great to hear that you provided an awesome space for your team. I think we won't see this kind of loyalty much going forward though, the opportunity cost now of not changing jobs for more $ has a greater downside now that 20 years ago. House prices are beyond ridiculous, lockdowns create confusion about the next 12-24 months, the economy is in a terrible state, but somehow the stock market marches forward.

The way I see it, engineers need to make their money now or risk being left out in the cold for when many assets move out of reach from the middle class.

I don't want a yacht, I just want to own a home with no debt. Apparently that is not an easy thing for many people to do anymore.


Unfortunately, I have to agree. My father never made more than $40,000 USD per year, but owned a house in a nice area, and two cars.


https://www.in2013dollars.com/us/inflation/1980?amount=40000

You have to remember inflation though...


I literally had this conversation with my boss yesterday, and I was a bit floored that they don't quite "get" it.

I'm the lead dev at a small co that does work, mostly custom WordPress, for gov / edu / SMB (mostly NGO or trade groups). I'm the senior technical staff... there's a junior dev and a "project manager who codes but doesn't read log files".

I've been working with this company for 7 years and never gotten a raise. We have "unlimited PTO" which really just means I have no idea how many days off I can take. I mostly work with the biz because it used to be quite flexible and was only a 30-hour-a-week commitment. That's become much less flexible as we lost the ability to stack hours without "approval", I've started to be the only person on-call, I now have a junior who more or less reports to me, etc, etc.

I'm looking for work now, mostly because the cost of realestate where I am is outpacing my ability to save for a down payment.

The thing that got me a bit worked up is that when I asked my boss if they'd ever done the math on what it'd cost to replacement (even leaving out the cost of training) and their response was that they were 100% sure I'd make more money at another company-- they are just paying me what they feel like they can afford.

Then they gave me an immediate 5% raise and 1.5% cash bonus.

None of this makes one bit of sense to me... if I leave, they are going to have to find someone (or several someones) who can operate containers in GCP, write WP/Gutenberg blocks, Figma->PHP WP themes from scratch, and write integrations/ imports/ scrapes for these sites they build.

I've been interviewing and know what that kind of work pays, and how much the folks charge for that... but this boss of mine seems prepared to let me quit rather than up my pay. For full disclosure, I'm making 70K/yr+ health insurance and who the hell knows how many vacation days.

It's fun to do job interviews after all this time, and pretty gratifying that folks are so interested to speak with me, but I'm a bit worried how this person is going to get the stuff done that I've been doing at the price they've been selling the work.


I really struggled with this a few years back. I was adamant that I didn't want to "play the salary matching game." My boss insisted they didn't have the budget for a raise. I didn't want to job hunt, then bring my new offer to my boss, etc. I let myself be underpaid for at least 3 years because I was sure that my results should speak for themselves. Then I got really bitter and fed up. I got a job offer that was a 50% raise. I took it to my boss and immediately our company magically had a 50% raise in the budget. I quit in the middle of that interview because I couldn't stomach the idea that he'd been intentionally underpaying me all that time.

It changed my outlook on companies and playing the salary matching game completely. While I'm still in demand, I'm always looking for a better offer. I am planning on this bursting sometime. In the meantime, I'm going to get paid.


We got bought by Accenture some time back.

After we were on system amd thelr regular processes were in place suddenly a lot of people got a massive raise to match the min amount of money this position at this seniority level has to earn.

So far so good. But imagine the surprise of management when people weren't happy about the raise (10 20+ percent in not few cases) but a lot of resentment was voiced for being paid too little for years stating that there isn't enough money for raises and once big corporate brother rules that there is a minimum salary to be paid the money can be shelled out.

I can totally relate with the colleagues who are currently looking at other options because they feel that they were lied to over the years.


This is because many businesses are ran from an accounting perspective.

When they give you a huge raise, payroll costs are up. Yet you won't necessarily deliver a revenue increase to match it. So it's a financial loss.

This might trigger you to leave, but accounting doesn't care about future potential events.

Similarly, I could make the point to my boss that an additional monitor, would increase my productivity by 20%.

Accounting disagrees. Hardware costs are now up 20%, which is real money spent. Yet there's nothing in the books suggesting more revenue. So another financial loss. "Productivity" is not revenue, it's an abstract concept in knowledge work.

It's a very one dimensional way to look at things, and far from a good one, but it might explain some things.


yep. This is a business led by accountants. I've also seen businesses led by sales people (great sales people, btw) - that wouldn't understand anything other than selling features. The best jobs have been with companies who have a technical leader. It still has downsides, but it's night and day compared to the other 2.


If this is what they can afford to pay and you move on then they will get to decide whether they can eliminate your position (maybe they can focus on a different part of their business and quit building custom WordPress sites) or pay more. Or get by with someone too junior to be able to do the work but hope that customers won't notice. Or maybe close the company down.


To be brutally honest, just go get another job with higher pay, if you can. It's not your company.


I was working on a startup that could tell an employer if their employees were looking for a new job so they had a chance to try and retain them instead of paying the huge cost of having to hire, train, put strain on the team, etc.

I talked mostly to startups between 10 and 400 people, but the problem I heard from most leaders was "if they are thinking about leaving, fuck em, they are dead to me already". I tried to reason with them, but it was fought as if held like religious belief. I mean if it's your baby they are unhappy with, I guess you can get defensive and maybe you are still in a scrappy mindset, but it was a bit frustrating for me as my idea was not hitting very well :/

My wife was considering leaving her job, but not because she hated the work, or the company, but because she wasn't challenged, given opportunity or paid for her effort, when colleagues got paid more to do 1/20th of the work. If she was managed and compensated properly, she would have been more than happy to be retained, and I imagine there are a lot of others in that scenario (but more who just want to escape their manager of course, which is also very good valuable for the boss to have when trying to retain people).


Were you troubled that the startup was trying to surreptitiously expose employees' job-hunting activities?

I would think that if a manager was unaware of the job-hunting, that was intentional on the part of the employee.


>I talked mostly to startups between 10 and 400 people, but the problem I heard from most leaders was "if they are thinking about leaving, fuck em, they are dead to me already". I tried to reason with them, but it was fought as if held like religious belief. I mean if it's your baby they are unhappy with, I guess you can get defensive and maybe you are still in a scrappy mindset, but it was a bit frustrating for me as my idea was not hitting very well :/

I've seen HR on several places referring employee changing companies as "treason", not only casually but on internal communication. So with that framing, and the expectancy of employee loyalty, I wouldn't expect retention to be a high priority.


> they gain domain knowledge that is specific to that company, and that stuff is incredibly valuable. The wild thing is that it’s only valuable to that one company!

From the engineer point of view, this is a bad deal as the knowledge they get is precisely not transferrable to another company. So staying is a risk (these skills won't even exist elsewhere) and there is a lost opportunity for the employee. They could be at another job, learning actually transferrable skills, thus improving their standing on the market.

Solution: minimize company-specific knowledge, make it easy to grok and not company-specific. To be a bit blunt: your flavour of pile of poo codebase isn't particularly interesting so why should I learn it if compensation doesn't match the missed opportunity?


Author here! My intention with "domain knowledge" point is mostly about all the non-coding stuff. Things like how your company functions, who to talk to about different issues, deep product knowledge and understanding the customers. I actually think transferrable skills grow as well, usually more on the technical side but also on the soft skills side in a generic way. I think the non-transferrable stuff is somewhat unavoidable because of the nature of products, domains, and organizations being meaningfully different.


I'm looking forward to seeing the follow up post on what sorts of ranges this philosophy turns into. Most companies that I have seen post their bands massively underpay people.


Many engineers are on their way out when they announce their departure. If they said: "hey, I'm thinking about joining this other company for a better compensation", that would be a topic of discussion. Most engineers instead tell me: "hey, I signed a contract with this other company. This is my last day".

The other point is that money is not the only motivator (esp. in our industry). People just like change, either more responsibility, or less responsibility, maybe more autonomy or more direction, maybe different leadership, etc.

Last, signing bonuses are quite large...


Especially for younger engineers (I'm thinking of software engineers in this case), it isn't just about money, but also experience. It is really easy to get type-cast into a specific role in the company and it can be hard to break out. One developer I interviewed spent 10 years maintaining one pearl script. Just one. He wondered why he was having trouble finding a job. Don't be that guy.

But it is also about the money. When you can get a 20% bump by switching jobs...hard to pass that up.


20% used to be good. These days, it’s something like 35-80%, it seems, according to Blind. My last job swap resulted in a 100% pay increase (10 YoE).


At the end of the day you were underpaying them, so I'm not sure putting the "blame" on the employee is the right way to frame this.


It's like being in a relationship and breaking up because one is unhappy but refusing to talk to the other person about it. If you're unhappy with your pay and that's the only reason you're thinking about quitting, bring it up, what's the worst that could happen? To the people that say "retaliation", I find that highly unlikely. Every single place I've worked at, at least tried to accommodate me.


It's more like: you realize your SO for the past year has been putting in the bare minimum effort into the relationship and decide it's not even worth the conversation.


Missed opportunity really. That's a year of not having a conversation about something that's bothering you. Sure people can live their lives however they want, but talking about issues, for me, on average resulted in better outcomes than not talking. That applies to romantic relationships as well as professional ones.

Somehow people seem to think it has to be one sided when it comes to professional relationships with your employer. Maybe it's a lack of structured, routine, two sided feedback that makes people not bring up issues around compensation. Maybe employers should ask proactively if the employee is happy with their compensation.


A company is not out there comparing salaries with salaries at other companies (not all, anyway). That would be too much pressure on a company to determine what compensation should be for that specific person. Not everyone can get into the top companies, so it's up to the employees themselves to determine what it means to be underpaid.


> so it's up to the employees themselves to determine what it means to be underpaid

You can say that all you want, but at the end of the day it's you that's losing talent.


Yeah, programers move around a lot. I'm not saying don't pay them competitively, but a) you can't compete with Google, and b) there is a huge delta of salaries in the industry.


Unless the outcome of that conversation is a systematic review of how reward works for all employees & a counter-offer with no risk that breaking the kayfabe about the company mission harmed my future aspirations within the company, the conversation is too risky to have. The problem will be back in a year.


> Last, signing bonuses are quite large...

Is it a US-specific thing? Never heard of anyone getting it.


I didn't know about this until working in the US. Yeah, engineers here are royalty. They are better paid than doctors and lawyers. In other countries, a programmer is like a plumber.


Well, HN and the tech industry are extremely American...


I would never accept a counter offer anyway. Seems like leaving is too traumatic to the relationship.


Had a friend negotiate his salary and stay with the company over 6 years. Got pretty high up now that he has that much seniority.


They don't? I was given an 11% raise (without negotiating) this year because the tech company I work for wants me to stay.

I could probably get more by leaving and finding a new job (15-25%) but 11% is more than enough to convince me to stay. Also, there are factors other than money at play, such as not having someone breathing down your neck, having coworkers who are nice, respecting your superiors, and so on.

I have a friend who recently left a position at a startup paying ~200K (which is a lot here, we're not in SF/NY) for a 145K position purely to avoid dsyfunction, stress, and incompetence.


Your anecdote proves the point. If your friend was paid more, they might not have left.

But in essence what you highlight also shows why companies don't pay to keep people to stay. Instead of paying someone money who hates their job, they might prefer paying less money to a new grad who isn't burnt out on their culture yet.


>I’ve watched talented engineers leave companies for greener pastures after painfully short tenures. I’m even guilty of this myself — I left an amazing company after less than two years to join Ethena as VP of Engineering.

Engineers can leave after months and still get jobs. You're not guilty of anything for leaving after 2 years for a VP position.


Also director and VP positions skip the leetcode.


Leetcode is one reason people don’t job hop. If you actually have a job, you don’t have time to spend on the silly, non-job-related problems.

Leetcode doesn’t filter for skill, it filters for who has too much time on their hands.


Absolutely. And is such a horrible metric because it let's in people who are essentially using their time to game the system instead of thinking deeply about programming.


I wonder why.


Many flaws with the argument, here is one:

It is hard if not impossible to attribute an individual employee's performance to company growth. Many variables can impact company growth - so even if engineering does their job,product many not and vice versa.

Even if everyone does their job exceedingly well, a sub optimal strategy could kill the company. Or the market could shift. How do you account when company stops growing? If the spending will only go up, how will the company justify the increase in budget when there are bad times.


> It is hard if not impossible to attribute an individual employee's performance to company growth. Many variables can impact company growth - so even if engineering does their job,product many not and vice versa.

A somewhat related anecdote that I love: In an online lending company where I was a manager before, I had the Data Science team reporting to me. At some point, one of the interns created a variable that improved the ML risk scoring model in such a way that the loan default decreased in about 2%. That is HUGE for a portfolio that has something like 10% default. This intern's variable saved the company a tremendous amount of money... yet the company did not give him anything for an improvement that was 100% measurable in $.


What if a company actively encouraged its employees to interview at competitors, and to welcome, even expect, external offers as part of discussions around professional growth, roles, and compensation? They could call it "peer review."

The company would offload the work of finding market rates onto its competitors while potentially gaining insights into competitors' operational logic. And as a machiavellian bonus, this arrangement might depress its own employees' market rates because other companies might be hesitant to extend offers to candidates they suspect are not serious.


That's what Netflix does: https://www.businessinsider.com/netflix-encourages-employees... (version without paywall: https://archive.is/mdMr9).

Also check out their culture document, which is quite interesting as well: https://jobs.netflix.com/culture


There’s a paradox here.

I notice developers who switch jobs a lot claim to do so to “grow”. But they might not really stay anywhere long enough to get good mentorship and feedback. Growth takes tough feedback that we often don’t want to hear.

There’s almost no market incentive to “grow”, and much more incentive to job hop, never leaving a honeymoon phase with an employer.

Why would you grow as a developer? It’s much easier to switch jobs for a pay raise.

The market is hot for developers, that there’s very market pressure to grow, TBH. (That is if your priority is purely financial, which often is not the full picture)


How many engineers leave for salary as opposed to other reasons?

When I started my career after the dotcom bus, salaries were quite low. At one point, I was making less at each position after yet another layoff. Then the market improved, and I was making considerably more with each new job.

Nowadays, I still job hop, but primarily because I do not like the role I am in. Companies will over promise and then never deliver. Bad managers. Many many bad managers.


On the one hand Mr. Dean rightly recognizes that longer-tenured developers bring more company-specific and domain-specific expertise to the table and they should be paid attractively to prevent them from leaving and taking that knowledge with them.

On the other hand he touts his use of a compensation formula, reducing engineering salary to a formula rather than taking into account an individual's background, experience, expertise, demeanor, and individual impact. (To be fair, he does emphasize that the formula will include "performance" in some way, but I've always been leery of boiling down performance to a simple equation. We've all been in roles where people have had material impacts other than lines of code committed, features completed, or KPI scores.)

I suppose I fundamentally agree with the author's premise that tech salaries should rise with the overall market to keep institutional knowledge from walking out the door, but on the other hand I don't think following a simple equation is the best way to get there.


I think the market has demonstrated institutional knowledge is worth $0 at most companies.


It might be valued that way presently, but that doesn't mean that's the worth. The companies that rightly assess the situation and determine that the cost of mistakes made because institutional knowledge is gone or the cost to productivity of retaining replacement personnel is high enough to justify an additional 2% - 6% annual salary increase across the board will outperform the companies that are constantly paying the training toll.

How many times have you had a deployment go wrong shortly after the one guy who knew how everything worked left? What did it cost the company in terms of developer hours, productivity, opportunity cost? How many times have you witnessed a new hire take 30 - 90 days to get even halfway up to the speed and productivity levels of someone who's been with the company for a year or two? If you're swapping one employee for a small handful of failures plus a new, at-market employee who has half the productivity level for a full quarter then you're easily paying a 25% premium to let that employee go, when you could've retained them and made them feel appreciated for a 6% annual raise. It's frustratingly straightforward to determine which result is better for the company's bottom line.


A couple thoughts here:

Using money as a mechanism for alignment is not always effective or useful in creative fields. Engineers join a company for a variety of reasons, such as wanting to be part of the mission, coworkers, personal development, brand/location/perks/benefits, and so on. If somebody wants to leave, it's because they have fallen out of alignment. When people are out of alignment they can grow resentful or hard to motivate, and that in turns creates a bad state of affairs for both an employee and the company. There's an opportunity cost here where somebody could join the company who has better alignment.

Another way to look at this is that some level of turnover can be a good thing. In the same way that some universities will not allow former students to become professors in order to inject new thinking, companies benefit from new people coming in and injecting new ways of thinking into their organizations. So encouraging people to stay to maintain organizational memory is probably bad over the long term.


I think the answer is relatively simple. It is cheaper for the company to let a usually small percentage of their employees leave than it is to give larger pay raises to all their employees.


> If a developer of a certain caliber is able to demand a given salary on the open market, why isn’t their existing company paying them that very same amount?

One possibility would be it's because of the price point that the manager has in his head for that individual. I don't remember the actual term from Dan Ariely's book, but it was about becoming attached to the first price you hear. So if you know the current salary of employee X, and they want more, you could be reluctant. But an unknown person that you want to hire will ask for more, and that might be fine.

Another possibility is that the management doesn't always know who they should keep, or simply they have a different perspective on who or what is valuable. So a regular employee might wonder that they let a person go, but their contributions were maybe either unknown or not as valued by the management.


I think the term you may have been looking for is "anchoring."


I’ve changed jobs a few times and achieved great compensation. But each hop required arduous months of networking, study, and interviewing, all on top of a full time job. I know other engineers who are more talented than me, older, and get paid half as much, because they don’t have the personality type to go through that gauntlet. Some of these people work at companies that pay very well, but their managers have successfully cowed them from demanding promotions they deserve. Their employers are getting an amazing value. Why would they rock the boat?

In short, the software engineering interview (and leveling) process is designed to discriminate between employees with different levels of competence signaling and negotiation skill, so each employee can be paid as little as possible.


This hits home for me so hard. I just left a job after 5 years of playing the loyal soldier. It's been almost 2 years since I got a promotion without a raise. My manager has been constantly working with the HR to get me as much aligned with what I should get but his hands are tied by the corporate bs that he needs to work with. I got an offer from another similar revenue/size company and I was in two minds. The company literally asked me what I wanted and then just gave it to me (nearly twice what I'm earning today). It's a shame that my current company not only didn't keep up with the market, but also dragged its feet for 2 years to keep up with its own internal compensation structure.


> then for whatever reason find that it’s much easier to get recognition for that growth outside that company.

It is interesting that 99% opinion out there between engineers community is always the same. For you to get a better pay rise / career leap, you have to move company. I'm not sure why this is always the case, I guess it is different for those who joined startup like Netflix, Stripe, etc before they go viral.

Actually at this point because I'm still young, I'm sure I can do career jump many times for the next decade. But yeah, at one point having 1 company that appreciate you with good compensation is kind of like the end goal when I'm pretty old and don't have the energy to keep moving


This is something I assume we've all noticed. I just switched companies a couple of months ago and that's the first time the company I was leaving threw the brief case full of money at me. Interesting that 6 months ago I was only worth a 2.3% raise, but suddenly I was now worth a 25% raise. Didn't matter, I believe workers should make unlimited PTO a demand and I let them know that was another reason I was leaving... death to limited time off, long live unlimited.

Back to the point. I imagine somewhere in the next few years I will get another offer at 25% bump after a few years of small 2.5% bumps. Just the way it works. I chuckle, but then I think there must be something I don't know.


To reply to the title and not the article, tech companies do pay engineers to stay…just probably not you. That’s the point of RSUs, LTI, and other grants that are unlocked through retention. More get released to employees during their tenure based on performance. If you aren’t being paid to stay, chances are that was a systemic consequence of performance. Not always, but usually.

There are pros and cons to losing employees, and quite often it’s Pareto optimal to let people move on to bring in new talent. Engineers are generally paid pretty well, so money is rarely what a departure is about. I’ve seen a lot of engineers go, and only once was money the first reason.


While I agree with the premise, this reads like the wishes of a budding new head of engineering that hasn't yet been ground down by HR. I wish him luck.

The most successful company I've ever worked for had over 300 employees and 0 in HR.


A few interesting thoughts in here. I had tended to think of the social stigma against discussing salaries as being detrimental to workers and probably encouraged by companies to save a few bucks. But on the flip side, if a company was to be scrupulously honest and made their best effort to pay according to actual value to the company and let everyone know openly how much that was, I expect there would be a lot of drama and hurt feelings over evaluations of exactly who was contributing how much. Maybe it's best to let those sleeping dogs lie after all.


Established tech companies can and do pay their engineers to stay using stock grants. The upside to the company is they can modify those grants based on market forces and performance, the compensation is not (entirely) a fixed bottom line cost. The upside to the employee is they can earn some multiplier of their base salary for some number of years.

If you are a smaller company or start-up where you cannot give tradable equity then you have to offer something else. But if Amazon are hiring in your city then best to not try to compete.


The most important phrase in that whole link:

    in proportion to their impact
Perhaps if software teams didn't write such shitty software it would be easier to qualify things like profit sharing and equity. I would certainly prefer to have half the salary if that means I were earning a nice slice of the quarterly profit.

Unless you are selling software to a customer software is always a cost center. It is a tool, a means to end, which may enable business down the road but at any moment is just a money sink. That said it is generally lower risk for all parties to allow developers to write shitty software than attempt to connect software releases to revenue change.

In the world of web most developers I have worked with over my nearly 2 decades toil in configurations and composition. There is little or no application creation, and the application creation that does occur does so by a few internally trusted individuals irrespective of their pay or title.

To be very clear shitty software decisions almost always come down to a single question: Is a given decision primarily focused on business goals or developer preferences. For example is Spring MVC, Angular, or whatever a consideration because it will save the company $10 million over the next 2 years or is it because the company is more invested in hiring developers than internally training them?


The biggest simplification that I disagree with in this post is that impact rises monotonically.

It's true that long-tenured engineers (if they're good) can do amazing things. Things that other engineers don't have the implicit knowledge or political capital to do. The problem is that once that project is over, it's not guaranteed that the next project will be as impactful.

So ... do you pay them for their impact? And promote them? Knowing you're guaranteed nothing the next quarter?

Or do you put up barriers to promotion? "Sustained performance" or "multiple successful projects?"

I'd love to see an approach to IC comp that's variable. Land a huge project; get a bonus. Everything past Senior Engineer is temporary; if you want to be paid like Senior Staff or Principal, do the work in that year. I suspect orgs could justify being more generous with bonuses because it's not recurring.

It's at odds to a lot of the way engineers look at comp, but it would align money with what individual businesses need in a more interesting way than the current "plan on your RSUs going up by 50% next year" comp plans at FAANG.


> It's true that long-tenured engineers (if they're good) can do amazing things. Things that other engineers don't have the implicit knowledge or political capital to do. The problem is that once that project is over, it's not guaranteed that the next project will be as impactful.

You hinted at this by mentioning political capital, but in my experience as engineers gain experience at the company their impact largely grows in ways that aren't obviously visible. It's not like they are churning out work or managing teams that have ever increasing product impact, it's that their job responsibilities expand to include things like:

  - Convincing potential hires they should join the company.
  - Speaking frankly to leaders when newer employees don't feel comfortable doing it.
  - Seeing large cross-cutting issues that require time and experience at the company to identify.
  - Mentoring newer employees so they get up to speed and become productive quickly.
  - Arbiters of information and documentation that tends to never get written down. "Person X can help you learn about Y, Team Z is responsible for that, etc."
These kinds of activities are critical to highly efficient companies, but rarely ever acknowledged as impact. At least I've rarely ever seen these kinds of things show up in regular performance reviews, and yet it's painfully obvious when these activities are missing.


I wonder if there's some tacit understanding between HR/recruiting/biz at tech companies that paying for retention will lead to engineering comp running wild across the board and make all of these businesses more expensive to run.

Feel free to teach me a lesson, but I feel this could be possible because:

- If people were paid to stay, then the supply of engineers in recruiting pipelines would decrease.

- If top performers were paid to stay, then the mere existence of a "counter-offer" mechanism would open up the door for bidding wars, where each bid is actually positive indicator for the quality of the talent. Today bidding wars largely only exist for somebody with multiple new offers, where neither company actually has a great measure of the talent.

- Retention pay is likely a compounding expense for the employer. Finance departments hates compounding liabilities.

Altogether would it make the labor market more efficient? Probably. Would it make businesses less profitable? Probably.


Because the millenial MBAs that have taken over tech believe that software engineers are a commodity and not an asset.


I haven't read it yet but from the headline...

They do, eventually - there's a term: "golden handcuffs"


Because they don't want to inflate their salary bill across hundreds of thousands of people.

You can't just give one guy a raise. Especially in this age of Level.fyi, salary transparency works both ways.

Basically they are cycling through every other strategy other than an across the board pay band raise.


In urban tech centers, wages increased sharply over the last 10 years. Both due to base wage increase and tech stock appreciation.

Once you are within a company you will be given catch-up raises but in a fast moving market you will always be able to create a bidding war for your talent and increase your pay beyond what the employer will offer you.

You have 3 options.

1. Climb the ranks. Technical or managerial. This takes time and is rewarded generously at most tech companies.

2. Get lucky with insane stock appreciation. Stay four years. Leave when your income drops in year 5.

3. Leave every couple years for significantly more money, by combination of up-leveling and getting the now higher market rate.

Number 3 is the easiest path.


The Bridgerton example is silly and not comparable. His character is barely in the other books, so of course he's not in the other seasons. It's like asking why Professor Quirrell isn't in the second Harry Potter film.


Companies consider any employee who is not selling (not bringing in dough) and who is not an exec - a liability.

HR's exists to keep minimizing liabilities - maintaining set of excuses to enforce minimal possible pays, ensuring employees have little or no say over important matters, prioritizing diversity over talent and painting a good face over all the necessary corp BS to maximize profits.

Engineers are necessary evil that "cost lots of money but doesn't bring any revenues". This of course an idiotic point of view but that's how execs are thinking.


What world are you living in? Engineers are treated like royalty at almost every good tech company. Heck, most of the founders are engineers by trade.


Keyword is: "good" (tech company). Majority are not.

The moment engineer became founder - tables are turned.


Articles like these vastly overestimate people's desires to switch jobs. Yes one good engineer left last quarter because they were underpaid and someone gave them a better offer, but a hundred others stayed put. Things still overwhelmingly worked in the company's favor overall.

And add the fact that technical interviews are still designed to be as painful a process as possible, so much so that people I know have given up guaranteed raises just to not have to go through it again.


Also, just because the job market is hot doesn't mean there aren't TONS of chumps.

The number of people out there who are happy being underpaid because of inertia far, far exceeds the number of people who will actively leave a job for another to get a bigger pay day.

Companies are caught because if they give the subset who are actively dissatisfied a raise, they are giving the "inert employees" a raise as well.

Hence they have a huge disincentive to give anyone a raise.


In most companies a good engineer overgrows his position after few years.

There’s no economical value of holding him back.

It’s cheaper to hire a replacement within planned budget.

Another point — in well organized business any engineer in any position is a replaceable unit.

Otherwise business is not scalable.

So companies do the right thing.

The right question is — why many engineers are staying for so long, even though its not profitable for them after some time/experience?


> we intend to create a formula that takes into account title, years of tenure, and performance to create a compensation graph that scales with company impact as closely as possible. By making it predictable...

Performance is hard to measure. It is highly dependent on the biases of the person measuring. So despite having a "formula", the outcome is not at a all predictable.


It's a sellers market right now, so jumping job to job is beneficial. Companies are willing to pay top dollar and salaries are on the rise.

I like this approach. It incentivizes and rewards. Even if things changed and this turned into a buyer's market, it should help with employee happiness. Buyer's markets tend to drop employee happiness as employees feel trapped.


To answer your question, yes they do.

Ofc this would be dependent on how critical that specific personnel to the group or company overall.

One thing to note though, when the employer is handed over the 2 week notice, for the employee, the process has been at least months in making. I don't think at that point, it is merely a matter of money, sometimes people do want to shake things up.


Unless the engineer doesn't provide some business value way beyond expectations and a promotion is done, it will all come down to the cfo and HR, that's the reality. That pair has financial objectives and they have data and experience to know if hiring new(with all costs involved) or increase a salary makes more sense to their bottom line.


The analysis looks very reductive and seems to ignore the scientific knowledge about what motivates employees to quit/stay.

One thing we know for sure: most people don't quit a company, they quit a manager. Companies are traditionally bad at identifying good managers. I think poor loyalty is mostly symptomatic of poor management.


Agreed with everything in this post.

Engineering compensation at big tech is too rigid to award high performers adequately. Some folks double the impact of others in the same role / level, and make 20% more, at most.

Leaving and joining a competitor moves you to market rate. You fall behind each year at the job / role in this market.


Finance departments set grids of pay that have varying degrees of complexity. The problem is that they tend to stick to these grids regardless of the impact of net talent loss. The thinking is, the company as a whole is better off sticking to the grid than overpaying any employee.


Strictly if they aren't pro-actively paying competitively, they either won't honestly match and or if they belatedly do, you shouldn't trust them because they will repeat it again.

This isn't just for programmers or engineers - it's any job.


Simple, you work 5+ years at a company you earn a pension, extra days off, and a larger salary.

Even McDonalds and fast food joints do it. They have benefits that cost a lot if the employee continues to work there.

Always finding new employees via citizens or H1B Visa workers.


Here’s a relevant MonkeyUser comic (I had shared this in a previous post): https://www.monkeyuser.com/2020/new-hire/


Probably because it doesn't work long term. Sure a bit of extra money can keep someone around for a short duration. Eventually that person is going to leave for the underlying reasons that aren't financially motivated.


First of all, there ARE engineers companies are paying to stay. Those are anecdotal 20%, doing 80% of impact. But this is actually irrelevant.

The point is that companies should compensate their top-impacting engineers with equity, not money.


I think special in the tech world, money is by far not the most important thing, because we all get enought money for a happy life. There are many other factors as well.


I like the approach. It seems to assume that impact is easy to measure though. It’s actually very hard to measure problem avoidance versus problem solving.


What is the probability that the job you are currently in generates the most value for any company? Given that your skillset has changed too.


I dunno, I tried causing a positive impact, but management is deaf. That $5M new software we don't need? Don't bother explaining. You will be ignored. They will spend a fortune on it, fire/recruit, and realise it wasn't needed 2 years down the line when the execs have been made famous for being early adopters of the technology. They probably got to speak at some conference or were made an ad about how great they are

Best to keep my head down, don't want to push elbows with this lot


This isn't really a tech issue. This is an issue in all fields.

Companies just do not value their own employees over new ones.


Engineers are socially inept and oppressed. Until that changes, they will continue to be exploited.


"Pay to stay" is just a stop gap. More than likely they leave within a short time anyway.


The churn spurs innovation - people coming from elsewhere with new methodologies and perspectives.


The churn spurs innovation - people coming into the team with new methodologies and perspectives.


Pay employees based on the value that they provide to the company and not the minimum amount that the market determines they should make?

What are you, a communist? :)


Article is a thinly veiled recruitment ad for this tiny company.


Being paid to stay can be its own special hell.


great content marketing campaign aimed at hiring for this company. paying engineers well is a concept as old as google.


to keep their costs down via direcr (eg, low salarary) and indirect (eg, chilling effects, market manipulation, etc)


And bring back the defined pension.


Because they’re a commodity.


What about non-engineers?


>At Ethena, our track record of transparency, open feedback channels and an experienced management team put us in a position to make these types of bold policies that other companies may struggle to operationalize.

Never fails to make me smile watching capitalists advocate for planned economies :)


This isn't going to end well for Matthew, well if he doesn't work the back side of the curve, let me explain;

The challenge is performance is transitory and pay is forever. Specifically, you will have engineers who happen to be on a project at a time when they can have a big impact, and they do and you want to reward that. But then the next few years might be polishing that project's stability and corner cases which will "feel" like very little impact. As a result if you change their pay to reflect their impact when they first deliver, and leave it like that, then the next few years will "feel" like the curve is inverted and your paying and not getting the impact that you would expect from that level of pay.

This is why, invariably, engineer pay tends to evolve into "base pay" + "bonus pay" which can be thought of as the cost of keeping you around and the appreciation for what you have done for us this year. Many people make the "bonus pay" a fraction of your base pay, in that way an increase in your base pay will be reflected in larger bonuses later. Google famously did this and then added a twist which was called a "personal multiplier"(PM). This PM could range from 0 to 3, and the trick was it was kept secret. In that way you could never know whether or not your manager was "playing favorites"[1]. But it gave them a nice talking point about being "open" about how you would be compensated while not letting you convert the how into actual numbers.

The second thing is that everyone is different. And even when they are a lot the same, they are different. Sometimes people will reach a compensation level that meets all of their needs, and lets them save for retirement, and they don't "need" any more than that. Tandem had a great term for that, it was called people who "retired in grade" which was code for someone who was not being motivated by pay any more so they weren't working as hard as it was possible to work them.

The third thing is that sociopaths love a score. They really really do. All you have to do to get the most out of a sociopath is tell them how you are going to score them and let them see how they score relative to other people. (you'll say "pay" in your discussions but the sociopath will hear "score.") These folks will invest all of their time and effort in "winning", and because they are sociopaths they won't necessarily use that tactic of "work harder than those you are competing with." They may in fact spend all of their time developing schemes to sabotage other efforts in order that their effort stands out. Really not a great place to be, really.

The bottom line is that compensation is hard, doing it well requires that you be honest about what you would pay someone to replace the person you are evaluating and verifying that you are paying them at least that much. And when people start going the other way, you need a plan for that too (you can fire them of course, but as the article mentions they have lots of domain specific knowledge that is handy). Generally successful companies move those people to working on projects that are important but not urgent.

[1] To no ones surprise, the managers were playing favorites.


There are some great rationales from people here who hire, and gave me a different viewpoint, so I appreciate why companies do that. They do so because of economic reasons - people stop becoming productive after a year, as Kranar notes, or people don't want to leave because it's a pain in the ass to apply for a new job as well as leaving friends behind.

.

One thing I personally have said for a long time, is that when you are just starting your career, you should get it in your head to change jobs as much as possible - so through your 20s to mid-30s. The reason is because a job move will almost always increase your pay, much more than any company ever will.

The trajectory of income earnings at your early stages will be the most dramatic because there is a ceiling, for the most part (there will always be outliers), on how much you can earn, no matter what. You'll never see a programmer making $2 million, doing programming, for example. So if you start up at $60,000, just for example, the faster you get to $150K or $200K, if possible in your specialty if you have one, the better, because incremental increases will slow down at that point, no matter what. It will be much more difficult to get a job at $200K, as it will be to get to $75K. (Don't worry about the exact numbers, I'm just using them as an example).

When you're in your in the 32 years old to 35 years old, you can start looking for a long-term job that has your values and interests.

It used to be that companies wanted people at their jobs for a long time because it showed stability, and that they would stay with the new company a long time. I'm sure there are companies like that still out there, but if you change jobs a lot, like every 2 years, hiring companies will more likely look at your history and think you are a "hot commodity" that everyone wants to hire which causes more competition from hiring companies.

There's also the fact that if you go from $50K to &75K to $100K over 6 years, rather than $60K to $76K over 6 years, the hiring company will find it much easier to increase th pay the person making $100K to $130K, rather than pay the $76K person to $130K. Even if both have the same exact skill level. It's just human nature. And it is kind of true. The person making $100K knows their value and goes out and gets it, the other is more complacent, whether you think that or not or have all kinds of reasons why this is not true. Those are your reasons, not the hiring company's reasons.

Finally, the other thing about changing jobs a lot at the beginning of your career and making more money is that when you do get a raise, let's say 10% raise for the two people in this example, the person staying at the same company for 6 years and goes from $50K to $78K will get a raise of $7,800 (and the same with a bonus), while the person going from $50K to $100K will get go get a $10,000 raise (and bonus). And that difference will keep getting larger the more money you make, obviously.

Fuck loyalty to the company - they have zero for you. And your friends will still be your friends as you all disburse over time to new companies, and you will have a nice network over the country. Plus you will make new friends at your new company and expand your network even more.

And, by the way, your absolute best way to get more job offers and higher pay, is by giving talks and publishing. I know one guy that gives technical talks twice a week, anywhere there's two or more people. I talked to him about it, and he said that he gets at 2-5 job offers per day sent to him. When you do public speaking, you become a thought leader, or industry leader. The same goes if you publish something - in a well-known website or a chapter in a book compilation, or whatever. You are again a thought leader.


Many big companies don't need 90% of their existing engineers so they don't care if most of them leave.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: