Hacker News new | past | comments | ask | show | jobs | submit login
Employees That Stay In Companies Longer Get Paid Less (forbes.com)
437 points by camz on June 22, 2014 | hide | past | web | favorite | 198 comments

Switching jobs works well when developers are in their 20's. But I've found in the 30's that a number of factors combine to make it much less attractive:

1) Each jump becomes less and less. There's an invisible salary cap for software engineers. By the time a software engineer is in their 30's, they've jumped a few times and are already close to the maximum.

2) There are costs associated with switching jobs. There's a risk that the new job could be far worse (team, boss, culture, etc.). And you start at zero reputation and connections at a new company. The lack of reputation often means less flexibility and influence since the others at the company don't trust you yet. The rewards are greater than the costs in the 20's, but usually not in the 30's.

3) It also happens to be the time when many get married and have babies. This increases the risk factor.

4) For total compensation there seems to be two tiers of companies, the top tech (google, facebook, amazon, etc.) and everyone else. I've noticed the big difference is not the base salary (top tech only pays a few % more). The really big difference is cash bonus + stock (RSU).

5) Unfortunately, the interview skills required to get into the top tech companies is biased against older software engineers. For an engineer in their 30's college is a long time ago. They could spend time getting algorithm books and studying, but there's less free time at this stage in life. So the only big jump that's worth it financially (top tech company) is very difficult to do.

Young developers should save 50% of their after tax income.

In some ways, this industry is awesome: to be able to make six figures in your early 20s is an incredible benefit and potential head start on financial independence.

In other ways, this industry is incredibly cruel: you will run into age discrimination and the other headwinds mentioned in your mid 30s, if not earlier.

I tell the folks I mentor to think of themselves as professional athletes with a 15, maybe 20 year career.

"I tell the folks I mentor to think of themselves as professional athletes with a 15, maybe 20 year career."

what terrible advice! Please stop "mentoring"

"Young developers should save 50% of their after tax income." I wonder how long it's been since you were young. While saving early is likely a good idea, it's also the time that student loans, young families, buying houses etc are all huge costs that very likely making saving much impossible. It's also a time to have fun, travel, enjoy life.

I've been a software developer for 27 years and have encountered none of the "incredibly cruel" discriminations you suggest. It's definitely true and I see this often that many as they age don't bother to stay current, they get stuck in old ways and don't want to keep up to date. But for those that do, those that stay at the forefront of their field there's no discrimination. You just have to be better than the rest, whether you're 20 or 50.

please please stop telling people this nonsense.

I actually think more people should act as if their career is going to end in 20 years. Thinking in these terms really drives home what you need to do if you want actual financial independence. Even if the goal is not realistically attainable, it shows you exactly where you stand.

Let's say you think $1M is good enough for your notion of financial independence. Well, how can you accumulate that amount in 20 years? One way would be to invest $2750/month. If you can manage an average annual return of 4%, you'll hit the $1M mark right after 20 years. If you start at 25 (giving you a buffer period after college to grow some roots), you'll be good by the time you're 45.

Note that in this case, "financial independence" doesn't necessarily have to mean that you're wealthy enough to live your picture perfect life without ever working a day again. It could simply mean that you've reached a point where you don't need to save more and could take a 50% paycut without any serious long-term implications for your retirement. An example might be that you make low six figures up until age 45, surpass the $1M mark in investments, and then you get hit by ageism and your income drops by half for whatever reason. You're not going to be saving much anymore unless you make lifestyle changes, but you've still got the million bucks in the bank. The drop in income has impacted your ability to save and invest more, but it has had no effect on the savings you've already amassed, and it's still good enough to sustain your comfortable lifestyle with more modest savings.

Keep in mind software dev salaries often aren't as high in states outside of CA and NY, especially when working for smaller companies and companies that aren't tech-centered. Saving $2750 per month would be far too difficult for many software devs in other parts of the US.

I do agree that saving a lot early on is a good idea though.

One big life hack is to learn to balance salary with cost of living. It isn't always about pursuing the highest possible salary, because that might mean you're paying most of it in rent.

Consider a $75k salary in Texas. That's $4766/month net (or thereabout), due to lack of state income tax. Let's say you pay $1k/month in rent (very realistic for most of Texas). That leaves you with $3766. That $2750/month figure won't be too far off if you don't have any dependents and live frugally, especially if you take advantage of tax-advantaged savings (like a 401(k)).

The thing is, you can make more than $75k in Texas, especially once you've got a few years of experience under your belt. So while I completely agree that it's not going to be attainable for everybody, I think it's not so far off as many might think.

Absolutely. Unfortunately, I live in a state where housing costs tend to be unusually high, with salary not that much higher than average to compensate (Maryland).

I just got out of DC myself - the salary in the region definitely does not match up to the housing costs. You can get a little smaller apartment in Silicon Valley for ~$2k and make significantly more money out west, which was a powerful incentive to move out of DC for me.

Saving is especially a challenge for me since I have an extraordinary amount of debt from a bad family situation financially - it's a miracle I landed in such a high powered career as software engineering. I have more debt than most in the profession I believe (~$200k, no house or car), which is just a bad luck of the draw. However, for me this underscores how much harder I have to work to succeed even more so that I have more of a fighting chance against my financial odds.

What stops you from moving to Texas (or someplace else)?

I may move in the next few years. Just not practical for me right now. Plus, I generally like Maryland's other aspects.

That take-home isn't realistic. Even in Texas, you are still paying substantial federal taxes.

It's completely accurate. It already takes into account federal taxes, medicare, and social security witholdings. It does not take into account 401(k) deductions. It also assumes no copay on insurance, which is the case at many tech companies.

I've done a lot of work in human longevity estimates. I strongly recommend you think of your life planning as lasting 60 years after college. If you think you can work twenty and live for forty off that, well for you.

There is a demographic shift and a lot of things are going to be different in 30 years. Plan for life-long learning and be able to be valuable in a changing environment. My 2c.

I think you might have misunderstood me (or I've misunderstood you). The whole point I was trying to drive home is that life is long--60 years after college is a good number--and so acting as if you only have 20 years of good work to prepare for that shows how important saving really is. Like I wrote at the end of my post, the idea isn't to literally retire after 20 years of working, but rather to get yourself in a position where you could suffer a large loss of income--say 50%--without a major impact on your retirement prospects.

The idea is to use the most productive and highest-earning period of your life (per the hypothesis that the tech industry is ageist) to amass savings, so that you don't have to worry about socking away for retirement later on in your career if you ever do face problems with your age.

Ouch. From Tokyo... That seems impossible for me in my current track. Thanks for the dose of reality. Time to think things over.

I appreciate your interest in this topic and don't mind the personal criticism. I am sure some younger developers will read this, so for that reason I will respond to some of your points.

<< I wonder how long it's been since you were young. While saving early is likely a good idea, it's also the time that student loans, young families, buying houses etc are all huge costs that very likely making saving much impossible. It's also a time to have fun, travel, enjoy life. >>

These are all great excuses for not saving. Life doesn't care about your excuses. You either find a way to do it, or you don't. Some people will have such severe extenuating circumstances that saving much or anything is impossible, and my heart goes out to those people (and my respect for fighting an even harder battle than the rest of us). But the majority of young, employed developers can do it. Having fun, traveling and enjoying life in your 20s sounds great (and you can afford some of that even saving half your net income); but what about being in debt and living paycheck to paycheck in your 40s, with the stress of a spouse and kids to support? Having substantially no safety net to quit your job or take risks, so that you become enslaved to a safe job even if you hate it? The parable of the Ant and the Grasshopper is as true today as it was 2500 years ago when Aesop put it into his book of fables. And the truth is, having fun, traveling and enjoying life is great at almost any age, and much easier to do (and more enjoyable) with some financial independence. Saving when you are very young yields such huge benefits due to compound interest over time that it looks like a magic trick.

As for me, my experience is anecdotal but I did live through some incredibly hard times, including living in my car and with roommates in shitty apartments, and eating off the dollar menu at McDonalds for a long time (not recommended), and making a lot of other sacrifices in my personal life to get to where I wanted. I also had a lot of fun, traveled very cheaply with lifelong friends and had a great time. It's a balance, but not one that most people seem to strike very well.

<< I've been a software developer for 27 years and have encountered none of the "incredibly cruel" discriminations you suggest. It's definitely true and I see this often that many as they age don't bother to stay current, they get stuck in old ways and don't want to keep up to date. >>

I didn't imply that your interviewer would be ''incredibly cruel'' as in they would sneer and snicker at your age and you would encounter an environment of overt hostility and rudeness. I meant the transition from being ''hot'' and persistently courted by many companies and recruiters to no longer being as desirable can be confusing, painful mental whiplash. Having known a few professional athletes, the parallels are actually pretty apt - it's hard to go from the spotlight to the background for anyone. I agree with you that many don't bother to stay current as they age, and they should. Continuing education is not stressed enough in our field.

<< But for those that do, those that stay at the forefront of their field there's no discrimination. You just have to be better than the rest, whether you're 20 or 50. >>

I think this is demonstrably false, with a few rare exceptions. There is an age bias in our industry and it doesn't help anyone to pretend like it doesn't exist. In most startups and some company cultures it is worse, and in some company cultures it doesn't exisit at all, and in most companies it probably falls somewhere in between. I'm not saying that developers are unemployable after a certain age - they aren't, it's still very easy, relatively speaking, for them to find a job, but it might not be the job they want or the company they want to work for. Financinal independence gives them the freedom to pick and choose, or start their own company, rather than becoming sucked into slavery within a system that appreciates them progressively less and less each year.

Great response. I'll pile on:

Many people retire at 50 or 60 and don't die until 80 or 90 these days. Thats 20 - 30 years of living often while dealing with very high medical bills and health problems which can make work impossible. Everyone (not just programmers) should realize that their retirement situation is similar to professional athletes.

Programming is a hot field now and won't be in 20 years. Everyone in every country in the world is learning to program. Thanks to the internet its going to be a global employment market. Competition is going to go up. Salaries are going to go down.

Movies and popular culture say you have to enjoy your youth. I can sympathize with that, but as much as it sucks to work hard during your twenties, it would suck a lot more to work hard during your 60s or 70s when you are less healthy. Don't procrastinate.

If you save 60% of your salary you can retire in 13 years. If you save 80% of your salary you can retire in 6 years.

I built a tool that does this math for you: http://networthify.com/calculator/earlyretirement

"such huge benefits due to compound interest over time that it looks like a magic trick."

Not at realistic rates of return.

And after the real rate of inflation and taxes.

But that's in part because we're now in a period of financial repression: https://en.wikipedia.org/wiki/Financial_repression

But lots of that is still true, e.g. it's vital to have a reserve.

"And after the real rate of inflation and taxes."


"it's vital to have a reserve."


Agreed that it can be difficult to save right out of college. Due to my relatively low entry-level salary, as well as college loans and living expenses, I didn't start really saving/investing until I'd been out for ~4 years.

The problem is, though, starting saving/investing even just a couple years sooner can turn into much higher returns down the road, so it's a good idea to start that trend as early as possible. If you can find investments with a higher yield than your loan interest rate, it can make sense to pay the minimum on your loans and carry the debt for a while.

Nowadays I do save more than 50% of my income, but I also have no dependents or debt.

>> I've been a software developer for 27 years and have encountered none of the "incredibly cruel" discriminations you suggest. It's definitely true and I see this often that many as they age don't bother to stay current,

It happened to me. I did and do stay current, there is a perception among management, especially in UI development that only college grads get the new stuff. The old folks only know how to do back-end well is their perception. This is why enterprises fail, clueless management.

As a 20-something developer, I appreciate and agree with your insights.

Also, I give you credit for responding in a mature way to some of the overly harsh responses to your comment. I guess that some level of gruffness comes with the territory of HN's matter-of-fact debate culture.

> Young developers should save 50% of their after tax income.

As someone who travels overseas once or twice a year, goes out all the time, I still manage to save>50% of my income. I don't have a car, cycle everywhere, live in a great share house, always look for deals (for traveling and eating out), and stay in the cheaper hotels/bus it around.

Do you have a partner that agrees with that lifestyle? That is where my asceticism runs aground.

...or live somewhere where it's possible to live that way.

Exactly the same problem for me. It's hard to save when your partner doesn't want to do it for various reasons

Yes and no. Saving cash makes little sense in the current financial environment, once you have your rainy day fund of 3 months living expenses. Buy an apartment or a house and put the extra cash into overpayments, you can't retire after 15 years but you could own your home free and clear.

Keeping it cash? No. Putting it in a 401K, IRA, or market based account certainly does have much greater benefits. And of course, once that grows you can most certainly retire after 15 years. Or at least be financially independent and choose your working environment.

People should try to save early however for most people working a "normal" software development job being able to retire after working for 15 years is unrealistic. Learning to live frugally and to invest wisely are useful traits though.

I've never switched jobs to make more money. In every situation where I switched a job my current employer was willing to match my offer. I will switch jobs to work with smarter people, to work on more interesting problems, to work with newer technologies, or to fight boredom. In theory I would switch to a job with lower pay to satisfy other requirements but luckily I never had to do so.

I don't think there's much to the professional athlete analogy. There is virtually no "demand" for more professional athletes while the demand for good software developers is ever growing and is unlikely to show any sign of slowing down. There are cycles but the trend is up. It is also really hard to be a good software developer and requires a combination of aptitude and attitude.

I work for a US startup and I know we do not discriminate by age (if anything older developers are over-represented). In companies like Google, Microsoft, Apple, more experienced developers (in their 40s and 50s) are pretty well represented (keep in mind that as you go back in time the % developers is naturally less simply because the industry was much much smaller). Saying that I realize that in some places simply being a bit older would be seen as a poor fit and definitely someone who is just starting to code in their 50s is not going to be looked at the same as someone out of MIT.

Another thing to realize is that software development is an immensely wide field. I think your advice is reasonable for someone who has only started writing code in school, works in relatively "easy" areas where a lot of expertise isn't required, is really in it for the money and approaches things with that sort of cold success driven attitude. People who have talent, go deep into their fields of study and are highly motivated are probably looking at a much longer successful career. [EDIT: In other words it depends on what types of software you work on, your abilities and passion, and your further ability to maintain your abilities and passion and expand your knowledge.]

That said there's absolutely no way to project what the world economy or job market will look like 20 years from today. There are likely to be pretty big changes. One can imagine a much larger % of the population working remotely. One can imagine some breakthroughs related to aging that will make the entire age issue moot. Who knows. My advice to juniors is to strive to be the best at what you do. If you're the best you'll always have a job. Professional athletes don't always stop working when they're 30-something, they can become a higher paid coach. They can work on TV. Lots of options. By the way the average age of athletes has also been creeping up.

> In every situation where I switched a job my current employer was willing to match my offer.

Doesn't that bother you?

That means in every instance, your current employer agrees that you're in fact worth more than they were paying. Why weren't they paying you that in the first place?

For these kinds of negotiations, I'd expect a 6-month back payment at the matched offer rate.

The answer to why your employer isn't paying your "worth" is because there's no such thing (or at least it's incredibly hard to measure). There's no real price discovery happening (and even in markets where there is discovery prices can fluctuate wildly).

Here's one interpretation: People are willing to get paid less if there's something else that can make up for that fact. I wasn't looking to trade something else for money which is why the "deal" of offering me more money didn't work. I see it as more about culture.

But then again, if I look back, the things that I am looking for have also changed. So sometimes "It's not you it's me" :-) is really true. I used to work for a great company for a long while and I'd still be very happily working there if they hadn't been acquired and flushed down the toilet (culture + business broken). In a sense selling the company is the most selfish act a company can perform vs. its employees. Otherwise I might have been making a little less money, producing a little more value and a little happier. Our economy sucks at optimizing these things.

"In companies like Google, Microsoft, Apple, more experienced developers (in their 40s and 50s) are pretty well represented"

For sure, that's one of the prime reasons I moved to a tech megacorp from the startup world, I wanted to be at a place where I wasn't the "senior developer" at the age of 30. Smart companies value experienced engineers.

I think a lot of the people who got the short end of the stick are the ones who followed the traditional path of staying in a single company forever and developing their skills in a single area - specialization is a blessing and a curse.

save 50% of their after tax income

That rules out living in SF or London, for example.

This is a great explanation. It's also called "golden-handcuffs".

In your 30's, I think you need to start thinking about exit-strategy (saving enough to live financially independent), rather than hopping to yet another job.

Then, you can job hop down in salary and do something more fun.

Effectively you need to become a force multiplier, leverage your high level experience into a role that allows you to add value to 10 to 20 people rather than just yourself. eg. You were a 10X coder, now become a 10X manager.

Also, if you spent your 20s building up contacts it becomes pretty easy to start a business serving the needs of your particular niche in the industry.

Management and starting a company that grows beyond 8 people require pretty much the same leadership skills.

I have no idea what makes you think a 10X developer can just "become" a 10X manager. This tendency of programmers to think they are automatically qualified, let alone interested, in being a manager is baffling to me. They are two mostly unrelated disciplines and in my experience, most programmers are not cut out to be managers.

Agreed, and also I suspect (or maybe this is just a silly hope) that the best developers in a company can often make more than their manager, even if their manager is great.

Now, moving up to director or VP level or higher (assuming you have the aptitude and desire), is a different story.

Yes, the best devs will generally make more than their mgr, however, the best mgrs will make far more than the the best devs.

And as you said, the target is really a VP/Director type position, using mgmt as a stepping stone.

It's like how a Sergeant makes more than an Lt in the Army, however, the progression in the officer core quickly outstrips the best an enlisted man can hope for.

The great thing about leadership roles is they're typically very transferable, there's not many orgs that don't need good leaders.

> It's like how a Sergeant makes more than an Lt in the Army, however, the progression in the officer core quickly outstrips the best an enlisted man can hope for.

Not in the U.S. Army. Most junior NCOs make less than even a fresh Academy graduate. The NCOs making more than a junior lieutenant have all been in the service for 10+ years.

Agree completely. I have a team leader and a manger, with junior to intermediate experience in development and zero formal training in management. Frustrating to work for. I guess if we were both to apply for the same job, it would be a case of "well that guy has management experience", and give it to my team leader, despite the fact is is a poor coder, and an even worse manager.

A subtler effect is the income vs cost disparity. Suppose you make 60k and consider 50k to be a minimum income to live comfortably well a 70k job doubles your disposable income which is a big deal. Now suppose you make 120k and get a similar percentage bump to 140k. Except your minimum standard of living is still 50k. Sure, it's a larger Monitary increase but it's no where near doubling your disposable income and would have minimal lifestyle impacts.

"Unfortunately, the interview skills required to get into the top tech companies is biased against older software engineers"

Maybe that's a good thing. A "top tier company" will squash you like a flea if they don't need you or if profits need to be boosted for stockholders and heads need to be cut.

For sure any company can do this. But my feeling, observing business over many years, is that a company that is extremely attractive to job seekers has less to loose by doing so. They will always have talent lining up at the doors wanting to work there no matter how tight the labor market is later on.

> 4) For total compensation there seems to be two tiers of companies, the top tech (google, facebook, amazon, etc.) and everyone else. I've noticed the big difference is not the base salary (top tech only pays a few % more). The really big difference is cash bonus + stock (RSU).

This is partially true (IMHO). What the other companies provide is potentially higher upside with a lot greater risk. Younger people, or rather those with less life responsibilities, are more likely to make that trade-off. Equity in a startup might go 10x or even 100x or, hell, 0x. None of these is likely to apply for Google, Microsoft, Facebook, Amazon, etc.

> 5) Unfortunately, the interview skills required to get into the top tech companies is biased against older software engineers.

I disagree with this assertion. To be a software engineer is to be in a constant state of learning. Period. It's true that those with less life responsibilities will have more time and greater inclination to spend outside work time learning new things. I mean this in a general rather than specific sense. But that's not biased against older engineers. Those with more life responsibilities have simply made certain choices.

Put it this way: in many professions married people with children work full time and then go study part-time to get a Masters or some other qualification. It's demanding, sure, but it's a choice and it's certainly possible.

I think it's true that in Silicon Valley there is _some_ bias against older engineers. You see this in terms of starting salaries and signing bonuses for the better grads from Stanford, MIT, CMU, etc. These can be a significant percentage of what someone with 10 years experience working at exactly the same company is earning.

But life responsibilities or not, no one owes you a living. Those who invest time to maintain and improve their craft are, as a whole, going to do better in the long run. There's nothing ageist about that.

>> I disagree with this assertion. To be a software engineer is to be in a constant state of learning.

3 years ago at age 47 I interviewed at a promising game company in Austin, TX. The first thing the smug young guy said after weighing my resume by holding it in the air in the palm of his hand was, "pretty long resume, huh?".

I game every day, I developed a simple game for fun in the 90s'. I get gaming and what gamers like. I can do programming, hold my own with new or old technologies, do front-end, back-end, embedded, you name it and the most important thing he had to say to me was, "pretty long resume, huh?".

Come to think of it, many places I've interviewed at in Austin are like that, I call it the UT attitude.

>> And you start at zero reputation and connections at a new company.

As an employee, so true. It takes me about a year after switching and I'm 50.

>> Unfortunately, the interview skills required to get into the top tech companies is biased against older software engineers.

Also true, I have a recent story that proves this, can't share it though.

"For total compensation there seems to be two tiers of companies, the top tech (google, facebook, amazon, etc.) and everyone else" - not really, though, it's the financial sector. We are talking about global picture, right? Or is the discussion focused on just one single country?

For 5. having a lot of experience interviewing the kids coming out of college can outweigh the fact that college was a long time ago. If you interview 1-2 candidates per week for 10 years, that's 500-1000 interviews!

Or spend an hour a week toying around with basic data structures and algos.

Google, Facebook, Amazon paying significantly more is a myth, even if you include all the "benefits" (most of which most of us would never use).

According to Glassdoor, Google pays 200k average and up 300k for software engineers. The industry average hangs around 100k for pretty much any salary data on the internet.

Quote from my manager after a candidate turned down our offer: "We're not Google". This is responding to the candidate's "unreasonable" salary expectations.

So yes, I do believe there are companies paying significantly more.

You're just looking at base salaries-

Senior Software Engineers earn over 200k after bonus and stock: http://www.glassdoor.com/Salary/Google-Senior-Software-Engin...

Staff Software Engineers earn over 300k after bonus and stock: http://www.glassdoor.com/Salary/Google-Staff-Software-Engine...

This shows that while Google has "standard" base salaries, employees make a lot more through bonus and stock.

there are 4400 software engineers, but only 285 senior software engineers that shared their salaries. Not sure if that's the actual ratio, but I'm sure it's not too far off.

After you've worked for 4+ years, a typical yearly RSU refresher adds up to around $80k+/yr. Add in $150k+ base salary and bonus and it can easily hit $200-300k or higher.

You're saying you get a yearly refresher that adds $80K/year? After 4 years, assuming no increase in stock price or your grant, the equity portion alone of your compensation would be $320K/year.

I think he means you get an 80k refresher every year that vests over 4 years (20k/year). After 4 years, you have a full pipeline and 4 tranches (80k/year total) vest every year.

They pay significantly more. Microsoft is another that pays a lot, especially to poach from those three.

It is not uncommon for a very good engineer with 5+ years experience to earn above $400K / year (total = base + bonus (if issued) + stocks).

But only in US.

This is what I am thinking. I get a fraction of that in Spain, and I am towards the top end of the scale.

My ass

Here's a recent, public example that I can recall.


This "loyalty penalty" is far from new. It was totally obvious to me, and to many of those around me, over twenty years ago. If you stayed at one company, you'd fall behind the industry-wide trend. You'd start to see people who were more junior overall, and clearly less familiar with your product, hired with salaries above yours. If you wanted to keep up with that industry trend, you were forced to keep moving. I even know people who deliberately did "out and back" jumps to leap-frog over others at the same original company.

Where I part ways with the author is regarding what goes through employers' heads to perpetuate this. People who decide compensation seem to be in denial about the fact that people leave, or that their actions have any impact on how often that happens. Their biggest worry seems to be that if they make an adjustment for one person then everyone else will demand one as well . . . as though the cost of making such adjustments even across the board is greater than the cost of having to re-hire half the team every year. As a result they make such adjustments rarely, and try to keep them all hush-hush so nobody finds out, but it never works. People who were hired because they're smart tend to figure things out.

Obviously, some companies have figured out that plain old-fashioned money is sometimes the key to employee retention. Google has sucked in and kept a lot of people this way, for example. Unfortunately, the current wage inflation has its own down side. Maybe some day we'll find a place between these two extremes that doesn't either screw employees or stifle innovation by smaller competitors.

Also Google participated in an industry wide conspiracy to keep wages down and keep other companies from poaching or even hiring applicants from Google.

> I even know people who deliberately did "out and back" jumps to leap-frog over others at the same original company.

This is commonly known as a valid strategy at the place I work. It's very difficult to come in giving a shit about my code when the future of my position is a dead end.

The company I previously worked at advertised a position to work alongside me at my same level doing the same work, the salary being offered was 50% higher than my salary at the time.

I took this to my manager and all he had to say was "there's nothing I can do, I don't set these things"

It's downright insulting to see this kind of behaviour.

They were obviously discriminating against you. Equal pay for equal work, right?

your right, been the case since I started in the 80's. Still the case, best way to get payrise to to show a offer and then they will struggle matching and then say you can expect a substantial payrise over the next few years, or some other excuse.

But what I have seen in the 80's, 90's, 00 and today are people who leave for a new job, then come back a few years later and in that process get paid more than there last job of which the company would not match the offer or come close.

This is why the only real way in many companies to get a pay-rise is a job change/promotion and this and as true work is often not valued and gauged by management tier then we end up with lots of managers. Sounds familiar too many in large companies.

But then in contrast in the 80's older people got paid more and younger people got paid less and personally experienced that in many situations when I would of got much more if I was just older, no more experience, just age. Now I'm older, that situation has changed and more bias towards younger people in many situations, experience ignored. But young people will burn 80 hours learning and doing work which the older person could of probably done in half the time if not less. But we all go thru that learning curve.

Not all companies still this bad, some better, but at the same time introduce new issues and with that the price of some free food to entrap employee's into doing extra free hours that far out-way they food investment is an area most overlook in a young industry like IT. Acting, accountants and other longer established trades have much more solid practice and rewards and protection. Heck who wouldn't want a repeat-fee like actors every time your code was run.

> best way to get payrise to to show a offer and then they will struggle matching and then say you can expect a substantial payrise over the next few years, or some other excuse.

No, the best way is to keep abreast of what new hires are getting paid, and make sure you are staying ahead.

>> Their biggest worry seems to be that if they make an adjustment for one person then everyone else will demand one as well

Though this is true, but its come back to you in some other form though.

Salaries are never a secret, and generally once you get to know a new hire's salary, hired at your level and experience being higher than yours- What follows is resentment. Generally if you ask for a raise you won't get one, and will likely leave.

There's also the pervasive attitude that people will stay because of the projects, culture, people, etc., and don't care so much about the money. That can be true to a certain extent[1], but I think the people who make salary-bump decisions think way too much of it.

[1] I suspect this is actually very true when an employee starts fresh at a new company, but, over time, the money (or lack of it) becomes more and more important.

I cringe when I hear people say they love programming so much they'd do it for free. It may be true but don't say it out loud!

Who generates work through staff turnover? HR

Who sets retention policies? HR

For those of us in software development, an important thing to think about is what this does to code. The industry is full of old codebases tended by people who were never involved in the planning and initial design of those systems. Knowledge transfer rarely happens sufficiently to prevent accelerating maintenance headaches.

I think that we really need to find different ways of developing software to deal with this reality. A commenter here mentions the London financials community and people job hopping < 12-18 months. I've heard terrible horror stories about some of that code.

This is interesting, because I've also seen something that is quite the opposite. A codebase where an initially a small but quite inexperienced team wrote most of the original code and while these people are in fact still around they've been promoted to management roles based on their seniority in the company. Usually they never really advanced that far as software developers and are neither really experienced technically nor good technical managers.

These people protect and maintain the original code, architectures and practices almost reflexively. They resist better practices and refactoring, as well as education as they fear it will expose what they don't know. These companies also become a revolving door for anyone with any experience or talent for obvious reasons.

Honestly, I think the one of the worst problems for both codebase and technical culture is not beginning with a team of sufficient expertise and experience that can grow and mature appropriately over time.

The problem with technical management is often that good developers stay where they are (they are NEEDED), but bad developers are often promoted because it's convenient, and because they don't exactly cling to their technical position - they're expendable.

So you have people that were bad coders to begin with and that don't have lots of technical know-how and experience making decisions that impact the project in very bad ways (like choosing absolutely the wrong frameworks or tools that HAVE to be used).

Also, good engineering skill isn't rewarded, because - of course! - a management or team lead position has more status and salary than a technical position, because it's worth so much more to the company.

> These people protect and maintain the original code

If business depends on robustness of that code - of course they protect it.

> They resist better practices and refactoring

How do you know that they resist "better" practices?

It could be they resist fancy practices that would cause more problems than they would solve.

So you just presume I'm exaggerating? On the basis of what exactly?

There is nothing robust about mountains of spaghetti code. If anything these businesses are spending countless dollars paying the interest on the technical debt left here. What's worse is it impacts their long term competitiveness as it resists even incremental improvements. Besides, there is nothing fancy about basic practices like solid design, proper planning or even just the appropriate use of tools for source control and build processes.

I had one junior guy who had been working for some years confess to me that he hadn't learned much in all his years of working. The reason? He was always chasing better pay, which in software development almost always means changing employers, and he never stayed long enough to learn the ropes of any job.

Granted, he was a junior developer, but I can see this applying to people with more "seniority" (measured in years, obviously).

You become senior developer not by advancing technically. You just request salary that's too high for junior developer on your next job hop. If they want to hire you (and some will want to) they have to hire you as developer or senior developer. Also being older helps.

Once you are senior developer no one even dreams of offering you position of developer or junior developer.

I've been told that I would be in a entry-level position because I hadn't professionally worked with Python before, even though I had masses of experience in Perl, with Python being my free-time/side project language. Apparently I would be a "Senior Perl developer" but a "Entry-Level Python developer." (and this was at a start-up, not some big corp with an HR department)

Yeah. What I said works for corporations. Start-ups tend to be as creative with ranks as with everything else.

in your case, the right answer is, "k, good luck with that"

How often did he change employers? I can't see how changing often somehow prevents learning. Even if he changes his employer every year, there should easily be enough time to learn.

I'd guess that someone who jumps ship every year or two years will know more than someone of equivalent experience who's stayed at the same place for a decade. I learn the most the first six months at a new job.

Relatedly, there's the big benefit of much higher knowledge transfer of best practices in markets where job mobility is high. Individual companies, of course, end up giving up equal amounts of knowledge to peers and competitors, but ecosystems which support job mobility will outperform those that look down on it.

Sure, you learn the most in your first 6 months by quantity but that doesn't mean you learn the most valuable things. You won't learn anything of depth in half a year.

Can you give some concrete examples of in depth learning that one can't learn in a year?

Oh, lawd, help me.

Kidding. You ask a legitimate question. This is by no means a comprehensive answer, but...

1. Domain knowledge. I think most of us enjoy the creative and problem solving parts of software engineering. That takes domain knowledge and domain knowledge takes time. You will get an intro to your domain in a year, but mastery? I would bet against it.

2. Working on a hard project from start to finish and sticking around for the lessons learned after. This is just a math problem. You're useless for at least 30 days no matter how good you are. (More like 90 IMO...). So if you start working on a larger project with a new team, and that project takes 6 months, your year is ending rapidly.

3. Mastering truly large code bases. Not everything is a rails app. Some things are just hard. Mastery is difficult to achieve.

4. Engineering leadership. Even if you don't want to be on a management track, it's important for a seasoned, senior-level engineer to be able to lead/drive a project from start to finish.

...And I suppose you may think "But I do all of those." And maybe you do? Or maybe it's just really hard to see something that you're convinced isn't there.

Domain knowledge is only useful if you work in the same domain year after year. That's often not the case. Atleast I've worked with three completely different domains the past year.

Exactly. And you can't learn domain knowledge that quickly. And there is a pile of money and senior-level engineering positions available to those who can marry understanding of the technology with domain expertise.

Impact of architectural and design decisions. How hard to decipher certain code parts you are so proud about today are a year later - my experience is that people used to work on small projects or who change projects a lot generate hard to maintain/understand code.

Learning non-trivial codebase often takes much more time. I worked on bigger projects and someone who worked there only six months would not be allowed to do bigger or core changes.

Then there is domain knowledge (finance, healthcare, law, etc) if you do that kind of software. Six months is enough to learn surface in anything non-trivial and everything is much more effective if developer already learned that.

Of course, last two points are not really valid for small projects world.

Most of the things you describe are deep, but also very narrow and domain-specific; frequently it is also very company-specific. Such knowledge is far less transferable than one might imagine.

"Most of the things you describe are deep, but also very narrow and domain-specific; frequently it is also very company-specific. Such knowledge is far less transferable than one might imagine."

Agreed. It is the quickest way to become a 10x employee but unfortunately your current company won't give you a substantial raise for knowing their product and domain well and it is not transferable to other workplaces.

Working on a big/long running project end to end. If you jump ship after a year you won't really understand the impact of a lot of the decisions you made months ago.

Most companies wont let you make any high risk or big impact decisions in your first year of employment with them (regardless of whether you get hired at a junior or senior or tech lead level).

Experience in solving the more difficult problems that require expertise with the companies particular stack and internal architecture.

And many more. There are ways to mitigate these problems but few do.

About once a year, sometimes less. The constant shifting of tech stacks, architecture, domain, and also that he didn't have to maintain anything long term meant he was constantly at junior level.

Good point. I've worked at 8 places in a 15 year career and have never seen a good code base. I've seen lots of clever code and some spots where the code quality was good but tight, clean , efficient, un-bloated, well doc'd code with automated tests on a large scale: nah, nicht.

Pair programming fixes the turnover problem

It trades it for the problem: convince people to pair program.

How? High turnover + pair programming = paying significant amounts of money to upskill your staff who then leave.

It is no different to simply investing in a lot of employee training. Yes you keep the knowledge... But you are paying far more than if you just paid your staff enough to stay.

How is that related at all?

(If my company forced us to pair program, I'd leave in a heartbeat.)

HR is really a problem here (at least in the software industry). Pay is usually based on title and how many people you manage, but I think that's pathological for managing developers because developers aren't interchangeable. You have huge variances in skills and knowledge. The thing is, development skills scale in a way most job skills can't. You can have at developer that has 10x more impact than other developers. (It's not common, but it certainly happens). But those people are definitely not making 10x more. Or even really 2x more.

I think companies really need to realize that they have to compensate their best developers to get them to stay even if they're not giving them management responsibilities, because the good ones are going to realize they're good and either job hop or freelance. Saying "we can only give you this much because your title is X and we don't have an open management position, but we really value you!" is a great way to lose your best people.

> Saying "we can only give you this much because your title is X and we don't have an open management position, but we really value you!" is a great way to lose your best people.

This resonates with me so much. I've left a few companies after having conversations which ended with my manager saying exactly this. In most cases they have ended up hiring somebody else at a salary higher than mine.

It really confuses me. I usually don't want to leave these companies because the work is good and finding a new job can be stressful. They usually don't want me to leave because I do good work and finding a replacement is costly. I don't understand why all this bureaucracy and nonsense about job titles has to get in the way of finding a middle ground.

I don't want to sound like a new age hippy here, but if you were to think of emotional capital as something you have to expend when you make hard decisions, I think managers have to expend a lot more emotional capital on decisions like this then they would like. And if they have to do that, it distracts them from other things.

So, to avoid expending that emotional capital, they create abstract rules and entities that they can point to and say "aww shucks, I wish we could give you more money, but This Other Thing won't let me" (whether that be HR, or a pay scale, or other things). It's usually phrased in a way to say that it's about promoting fairness or organizational principles or something like that, and it is to a point, but I think it's just as much about avoiding the hard work of managing.

The problem is that at a certain point, these abstract entities (HR and "the rules") gain more power than the managers themselves, and now the organization is incapable of doing what it needs to do because the structure it has put into place is more suited to protecting the status quo than it is to making hard but rational decisions.

That is what you get when you isolate decision maker from consequences of his decisions. HR does not feel the pain of you leaving, so he does not care. However, he has trouble to find a new person for low salary, so he is forced to raise the offer.

HR may not see the loss of institutional knowledge of high worker turnover, but they do see a lot of the more monetary costs: with all that constant hiring of replacements going on, HR sure needs a bigger budget next year! We might be looking at an incentive problem, amongst others.

a couple decades back, when my dad was working for one of the big telecom companies, they invented a new job title specifically so they could promote him with the appropriate pay bump while also keeping him coding instead of managing. (They later hired/promoted others with the same title.)

I thought it was a great solution. If a dinosaur like a telecom company can do it, why can't others?

Yeah, this is a fairly common compromise, and even helps in the stupid cases where you can't give person A a job title higher than person B who will be mortified if they don't have the best sounding job title, but you still need to give person A a raise and a feeling of advancement (so glad I don't work at a place like this anymore). So you give them some variation on their current job title (it's not a promotion over you, person B!) and a raise, and call it a day.

It depends on how effectively bureaucratic the bureaucracy is. If all workers have to have a job title that's already in the database, and all job titles have an assigned salary, then you're out of luck.

This has been extremely fascinating reading about job titles. I'll never understand why people care about them.

You should care about them. They facilitate movement in between companies. If you're a "manager" at a major organization but are actually doing VP level work and are getting paid like a VP, it will be very difficult for you to convince another company that they should hire you as a VP. You'll also get lots of cold calls from recruiters about jobs that you are severely overqualified for.

>>I think that's pathological for managing developers because developers aren't interchangeable.

Actually in most cases we are super easily interchangeable. Java related technologies, that involve interacting with databases and presenting data in some way(HTML etc) is what most business software is out there. Developers working in such domains are pretty easily replaceable. Almost like cogs in a wheel.

Pay is based on title because managers are perceived as decision makers, who direct the overall direction of the company. Maintain business contacts and relationships and are supposed be the one's who replace the cogs in the wheel.

This is really dependent on how much of the "developer" role is developing and how much is software engineering. Are the developers literally taking design documents (UML diagrams, use cases,etc) and just typing in the code or are they actually doing some analysis.

There is also the domain knowledge acquired by the developers over the course of time. I will tell you that I was part of a transition to an outside contracting company for a legacy site. The business knowledge gained and the ability to deliver solutions as a result of that enabled a much faster time to market than these guys could ever provide.

HR but mostly due to computing being still a young trade and with that unlike many other long estabilished trade they are far more protected and clearer qualifications/rewards. Take construction, a contract builder for example in the UK can pay a couple of hundred pound to cover there National Insurance TAX and that's it for the year, no matter what they earn. IT contractors will not only not have access to a equivalent system but now on many contracts get classed by the TAX laws under a law just for them called IR35 that they pay a vastly higher rate without any flat rate option.

But when many trades can do one recognised exam and that's it and IT those exams change every year and so do the ones you need with there being no single acknowledged qualification that carries with time. Well you can see how as an industry it is a nightmare when you compare it towards other trades.

Put it another way, people will happily pay almost half the cost of the car to have it fixed and the time and parts all get paid for at a rate the garage and part makers all do well.

Have a problem with a PC and the true cost in time and effort to fix it can if properly paid for outstrip the total cost of a PC. Yes there is much waiting but the distractions etc do eat more time on an install than if truly costed would not be as cheap. Hence shops will do this in batch's and automate as much as possible, but still. Often easier to reinstall than clear out and de-virus some users PC and they treat you as if you built it and wrote the operating system and thing everything is a 5 second quick fix as computers are fast.

But as for HR, well they are in many companies a liability regarding IT staff. Personally had an interview were I had two interviews, one IT manager recruiting and tech geek and the other with HR. HR interview was first and she (mostly women in HR, some gender imbalance their that gets ignored unlike other trades) said, your bit too young for the type of money your asking for and was very belitterling in attitude.

Had tech interview, wiped the floor and was offered more than I was asking for, turned it down as no way was I going to expose myself to such an HR department like that. But sadly seen many unsuitable people in HR regarding IT staff and it is as you say an issue more than people truly admit. How else do you explain rejections for being over-qualified -- those are most of the time HR filtering and you never even make the tech managers desk, though not like the manager is technical these-days either.

What you say about IR35 is a bit misleading. The point of IR35 was to close a massive tax loophole where people who were in effect employees working for a single employee avoided national insurance payments by being working for their own company, and paying themselves most of their income via dividends, this avoiding NI.

This is no way affected only IT.

Some contracts ends up getting taxed higher if you run them via an intermediary company (because the company gets charged employers national insurance contributions), but this reflects the fact that the contracting company gets away without paying NI, and so a contractor can generally get away with demanding a higher hourly/daily fee even for long term contracts.

There may certainly be some people that get unfairly affected, but the situation prior to IR35 was also quite negative, in that some people could drastically cut their taxes just by spending a couple of hundred pounds setting up a company, and bill their employer and pay themselves dividends, instead of being a paid employee of the same company.

This article should create a fun discussion, but be aware that it's most likely completely bogus. I suspect it suffers from survivor bias: anyone who is in a position to jump ship and get a 20% raise consistently is not average.

If you try to change jobs every 2 years and are not great at your current position, you'll likely be sorely disappointed.

Based on my experience, it's more about the corporate structure of assigning promotions and raises.

Depending on the job, 2 years is plenty of time to get well acquainted with the work flow of a position. The jumping ship happens when someone is ready to move up, get more responsibility and more pay, but it isn't happening.

At my last job, after 6 months I felt like I had a firm grasp on what I was doing. After 1 year I was starting to get bored because the work was too easy -- I was good at it, and often consulted by my seniors and juniors. My company did performance reviews every 6 months, and only reviewed for promotions and raises once a year.

At one year six months, I met with my boss and told him I was ready to take on more responsibility. The response -- "Yeah, I'm really happy with your work and will make sure that's clear on your next performance review". Was I going to wait another 6 months? No. I jumped ship and got the responsibility and big pay raise elsewhere.

I don't think it has anything to do with abandoning a job you're not good at. It has to do with wanting more responsibility and pay. Ship jumpers probably feel like their job is too easy and that they are good at their current position, as is implied by your survivorship hypothesis. The good talent is the one jumping ship.

I think that's one of the important parts of the article; corporate management is either unwilling or completely incapable of differentiating between average and exceptional talent and often doesn't reward the latter properly. This means the only option for exceptional talent to be justly rewarded is to continually jump ship.

IMO that's terrible business practice, especially in software development.

I wouldn't even say talent, necessarily. Every year you work somewhere is another notch against all the jobs that want 10+ years iOS experience. But all industries are like that, and want more years of experience, and often will pay you that 20% difference just because you have worked in the industry longer.

Agree with this. One of the side effects of this is your top performers are always jumping and the people who tend to stay the longest tend to be average or below average.

or they might just enjoy there jobs enough to not need to move.

Everyone has their "jump ship" price

I tend to disagree. People jumping too much here and there are not "fighters", and I certainly do not want them in my team. I might prefer "average" but ones that I can trust rather than top performer who can leave anytime. It's not just about technical skills...

This is known as the Dead Sea effect.

And it goes beyond that. Salary isn't the only compensation you receive. There are also benefits like 401k (often with match), stock grants/options, health care, bonuses, etc. If you just look at my salary, I've averaged a 4% raise each year for the last 5 years. But if you look at my full compensation, it's more like a 50% raise the first year, and a 4% raise each year after that. I've had offers to go to other places, but they often don't include the other forms of compensation. (Or they do, but the stock is worthless, or the health insurance isn't very good, for example.)

I disagree. Software engineering skill and software engineering job interview skills are only tangentially related. The only thing jumping ship regularly says is you jump ship regularly.

So if they are any good, someone should stand up and say, we should pay this person what they want, if they want to work remote and there are no specific restrictions placed upon them by their job requirements; let them. Keep them. That must not be happening in those cases though or they wouldn't be jumping, that's the point of the article.

My reply was to:

If you try to change jobs every 2 years and are not great at your current position, you'll likely be sorely disappointed.

As you say Joe Dev wasn't good enough at their job for anyone to work to keep them, but somehow they have to be excellent to land a job somewhere else every 2 years. My point is Joe Dev is excellent at something, but that is interviewing. It says nothing about his actual job skills except that they aren't so great as to have a company bend over backwards to keep him.

As long as I've been in tech industry, 25yrs, the (at times only) way to get a raise was to change jobs. I've only have experience with small/mid-size companies, No "corporate"/"enterprise" type jobs. Expect dynamic is much different there.

I have been in the industry for around 11 years now. Seems that I have already reached the top of the payscale where I am (Spain).

I think there are companies out there that will pay more than what I am on, but trying to differentiate myself is becoming a problem. I don't have experience in NoSQL / big data / whatever buzzword, because I choose the right tool for the job, not the latest fad. Hell I even got an email from a company looking for "big data" developers. I asked what size there data was, as usually I see a relation database being better suited to most problems. No reply after that.

Anecdotally, I've seen a lot of developers that I worked with who weren't particularly great (or even good), job hop quite successfully. I think it depends on the local marketplace more than individual skills. (And the ability to interview well).

Absolutely- and one of the reasons they job-hop is because they can obfuscate their lack of competence for six months or so and then either leave or are reassigned/fired.

True but then the article also brings up the point that most corporate bureaucracies are unable to notice talent and promote it on a faster timescale than the rest of the organization. In such cases if you know you're good enough to get better pay elsewhere then there is no reason not to.

This is fascinating that there is actually hard evidence for this, but it's not surprising to me given my own experiences.

When I first started out as an "intermediate" software developer (after a couple years as doing contract work) I was poached twice within a year of taking a position, both times the offers were at least 30% higher, an amount my existing employers where highly unlikely to match (in fact in the second case I knew this because I had already attempted to negotiate a salary increase with them before leaving).

These were, as they say, offers I couldn't refuse. To financially cripple myself for the sake of loyalty would have been stupid. Moreover I felt it would also be stupid to remain with an organization that clearly had broken retention policies for employees.

What's somewhat surprising is that this occurred in Vancouver, a city that is notorious for low pay in the tech sector. Nowadays, if I wasn't doing my own startup I'm quite certain I would have received another offer of at least a 50% increase by now.

As a potential employer now I'm trying to figure out how best to ensure that I'm not making the same mistakes I saw at the places I worked for. Best as I can figure out, at least in Vancouver, this means paying salaries that exceed expectations and typical local numbers and look more like what people would be getting if they looked outside of Vancouver. I think this also means regular raises and bonuses so people don't feel like staying is going to hurt them financially.

Overpay your people and give them insane perks, benefits, upside, and an environment they won't find anywhere else.

Have you seen any of Daniel Pink's work on what motivates people in business? It might inspire you to focus on other incentives than just pay salary increases.


>Autonomy >Mastery >Purpose

That's great. Really. Then you get invited to the company holiday party at the CEO's house. Meet his six children who are in college and traveling the world. Then you realize you and hundreds of others paid for that by living in a rental townhouse. True story.

There's no amount of motivation for me that will make up for a raw deal in pay.

One is not likely to get to the same place in life as that CEO by job-hopping as a software engineer.

One is not likely to get to the same place in life as that CEO. You can stop the sentence there. The rest of your statement makes you sound judgmental against job-hopping.

Capital distribution in the US is a Paretian/long tail distribution. It is statistically very unlikely for anyone, regardless of their actions, to get to the same place in life as that CEO if they are from anywhere in the bottom 90%.


Fair. I had originally wrote "One will not get to the same place...", but wanted to modify it to allow for exceptional cases. Went too far modifying it.

I agree that nearly everybody is unlikely to reach the same place in life as that CEO. If that were not the case, truly we would be living in a utopia.

I haven't seen that, but the "alternative rewards" suggestion seems to comes up a lot when talking about retention. However, it's at best disingenuous if the goal of doing those things is to pay people less. You're just not fully aligned with your employees needs. I would argue that if a company really does those things well then they are also dealing with the salary issue well.

Unless the motivation of salary (read: financial independence) is taken off the table, it will always be a significant factor in employee satisfaction, in spite of other factors. The gap between staying and leaving is just far too large to ignore it.

I know someone who currently works somewhere they intensely dislike being but they pay well over the local market and while he would take somewhat of a pay cut to be somewhere else, the gap is larger than that. Perhaps when he's more financially independent this will change but for now he's still earning that independence, and working somewhere that pays well means achieving that far sooner.

Warren Buffett does not pay market salaries to his top level managers. Those managers can get a significant hike if they switch yet most stick with Buffett because they like working for him.

Though you haven't really provided anything to backup the claim that Buffet's managers stick with him (I'd honestly be interested to read more about that) I'll take it at face value, as it seems sensible. However, as a specific example this is at the extremes, to the point of being absurd really. Few, if any, companies are their industry's equivalent of Warren Buffet, nor will they ever be. That doesn't necessarily make them bad companies either.

Besides, I'd hazard a guess is that the issue of being paid "enough" is well past the point of being an issue for any of these top level managers. They are all probably almost absurdly well compensated. This doesn't disprove the assertion that for the vast majority of positions and salary ranges, differences in salary, as the article discusses are significant to the extreme. is a point below which it does make a difference.

In the end there is little real benefit to these managers to be gained from walking away from one of the best and most well known people in finance for money you don't need.

Buffett said it himself in couple of his annual reports although I cannot remember right now which one.

I will reply tomorrow if I can remember till then you can read what Charlie Munger (Berkshire Hathway's VP) has to say on this

http://www.gsb.stanford.edu/sites/default/files/38_Munger_0.... ( Page 3)

and check out Alice Schroeder's comments


"As a potential employer now I'm trying to figure out how best to ensure that I'm not making the same mistakes I saw at the places I worked for."

Why don't you just ask them? I bet they have a huge list of stuff they dream about, and are dying to have you listen to them. You don't have to promise them anything, just give them a stress-free option to talk about what they want. And then listen to them. For the best responses, don't collect their opinions as a group, collect them individually.

I've known people who stay for 4 months at a new higher-paying gig and then leave. Because the paycheck and new title didn't make up for the toxic culture/culture clash that they dove into. Since you see them more than you see your real friends, the people you work with become your extended family of sorts.

"If all you get from work is a paycheck, you are underpaid" -Jim Rohn

Daniel Pink says it best. The best jobs give you autonomy, mastery, and purpose. Even better, if you create a business that does the same.


Beyond a certain point where a person can afford the basics, housing, food, healthcare, ability to go on vacation, provide for family. A higher paycheck might not necessarily translate to feeling better.

The little things -- bad toxic co-workers, a long commute, un-interesting projects, clueless managements, unfairness, all those things might seem minor at first in face of a large paycheck but just like water grinding a rock, those little things every day will eat your soul.

For enough money, I'm willing to bet anyone will "suck it up"

Of course, if you get paid half the market salary, you're also getting underpaid.

This isn't a tradeoff: in my experience, the places that treat their employees well by providing a good work environment and not trying to nickel and dime them are also the places that pay well. Seek those out, and reward them and yourself by working for them.

Actually from my experience , toxic places pay more because they have problems retaining talent(or just anybody).

Top recruiters have known this for a long time and call it marking to market. The article nails what's going on but the implementation is a little more nuanced. You don't just switch jobs every few years to lock in pay raises.

When you're in a hot market where labor demand outstrips supply, you should leave multiple times. For example, most people are shocked at how high software salaries are when they actually take a look at GlassDoor. The market is hot, you should be using it to increase your pay. When supply outstrips demand, you should stay at your current company and your above market pay. The other thing is you should get what you can when you come in the door because some companies go multiple years without pay increases and, when they do, they use a percentage of your existing salary (1-3%).

If you're not leaving, you're getting screwed, plain and simple. At Oracle, there were high performers and they came in 5-10 years ago and only received small raises. You'd see senior developers at 100k after being there for 10 years and then you'd see a new grad from MIT hired in at 100k. You wouldn't really see VPs promoted from within but you'd see them hired in from the outside all the time. One woman left at 75-80k for maternity leave and got hired back in at 125k for the same position.

Moral of the story is be prepared to seek and get your actual market value because it's probably higher than you think.

I've been saying this for years now, so its somewhat comforting to see someone else repeat it with a bit more evidence than my personal anecdata.

The main reason, in my opinion, is that corporate promotion practices have not responded to the incredible amount of intercompany competition for labor. At my current employer, the promotion process is a 3 month nightmare which requires an incredible amount of an employee's (and his/her manager's) time, including the compilation of a detailed packet which describes the reasons for why the promotion is deserved and involving an approval process through a separate committee. Meanwhile, any software engineer at one of the big guys can walk down the street to one of their competitors, say "I want a job," and probably have a seat and a 15% raise by the end of lunch time. With pay, benefits, perks, and culture being about the same at any of these companies, its easy to see why a career-focused individual would choose to jump ship every two years.

The thing is a lot of people value the security or aren't aware of the difference between market and their pay. Let's say this is 80% of people.

If you're corporate HR, you can retain 80% of your top talent without big pay increases and promotions while knowing that you'll lose the top 20%. This may be palatable whereas it wouldn't be if you were only retaining 60%.

I think Google and FB were the first to figure out that you could get the top 5%, that they would make a big difference in your org. You'd have to greatly increase compensation but those individuals are probably contributing and worth more than that.

Depending on the job market it can also be very expensive (time vs yield) to hunt for job offers. If there are hardly any offers, and if the companies all look like rather bad employers, or the job looks like it will pay probably less than you already make, then you waste lots of time on nothing. So people just stay at their jobs.

I'd really really like to have something like Stackoverflow jobs (i.e. well-described jobs), but also with information what they would pay (seriously: this should be public; hiring is a business decision, and hiding the price only wastes people's time), and with something like the company's kununu profile linked directly, so I can see how well they treat their employees.

Maybe software development is different from more traditional professions, but if you can hire a top performer for 20% higher salary, they'll probably be as productive as 5-10 average developers, so it's really worth it. Well, over here nobody in HR seems to share that opinion.

I think the people doing the 2-year-hop are the ones with a lot of inbound interest. The last two jobs I've had (including my current job) came to me through a direct inquiry from someone at the company (not a recruiter / headhunter). The thing with consistent inbound interest is that it creates zero incentive for putting up with non-regular advancement / promotion (except the 'devil you don't know' risk, but that can be ameliorated by asking around. It's not hard to avoid a completely blind scenario) because the perception of "job hopping" becomes irrelevant. I suppose at some point the inbound interest might taper off but until it does, it's almost irresponsible to ignore better offers.

You can retain 80% of your talent. You will be able to retain approximately 0% of your top talent, which is certainly a number less than 20% of your total talent pool.

You may be surprised how many top engineers have no idea what they're worth, and can't self-promote worth a damn. I've known some incredibly talented, capable people being woefully underpaid, and not ever trading up.

Most organizations don't need the top 20% talent to solve their problems to make a profit.

I forgot to mention that every time you change, assuming you have a PTO balance, you also get that paid out as a bonus.

Very much this.

In London, certainly within Financial Tech, it is almost expected that you will job hop every few years, so the employers tend to price this in, with small incremental pay rises, little training, but often reasonable bonuses, to at least keep you there for about three years.

We also saw this was more prevalent with our offshore outsourced colleagues - over there anyone with even a modicum of skill would job hop every 6-18 months. Each time to lock in a payrise.

Employers will give you the shaft without a heartbeat of second thought; never seen why they should expect more from their "resources".

The one missing piece here is the age of the employee. Of course this is true when you start out. Does it still hold after you acquire 15 years experience? Isn't that when the stagnation and preference towards younger worker bees supposed to happen? The article is kind of useless without that one piece. It does not give the whole picture.

> It’s a fact that employees are underpaid.

I just have to comment on that line in the conclusion of the article... When Forbes, Forbes!, states unequivocally that employees are underpaid, it's probably time to sit up and take notice.

Here on HN, we would rather fully understand and rationally discuss the publishers claims rather than taking their conclusion as final word solely based on the Forbes name.

This is absolutely true. The best opportunity to set your pay is when you get the offer letter, after that it's all nickel and dime increases. The next best time to adjust your pay is when you announce you're leaving for a better role somewhere else. You have to be your own agent and demand the market rate for your role, skill set, and number of roles you're being asked to cover. The only time your,manager might jump your pay without asking is when they realize you are drastically underpaid and could leave any time.

My best raises occurred when I went back to a previous employer after working somewhere else for a few years. Sure, job hop every three of four years, but also consider going back to work for previous explorers.

Some companies have a limit on the number of times you can work for them, in order to prevent people from hopping and coming back for more money. I think a previous company I worked at had a limit of 2 employment periods, which they instituted (supposedly) after a large number of people took voluntary separation and then came back later after the company started growing more. The next time a voluntary separation came up the policy was implemented to prevent another round of that happening.

This seems equal parts petty and self-defeating to me.

No one except the worst performers are going to stay at a place when they see market salaries rising substantially everywhere else. So what this does is hamstring the company from re-hiring the top performers who could easily get new, higher-paying jobs at other companies.

Equally bad is that the weak employees will have gained substantial organizational power, so they'll be making decisions by virtue of time served instead of skill and knowledge.

I know of one case where a manager avoided that clause by bringing the person back again as a full-time contractor, which effectively doubled the previous salary...

At a megacorp a fairly senior guy said to me, "This company is a great first, third, and fifth job."

Having worked for a number of years in the Valley, I can say that the salary part is true. However, now that I work at a large tech company that's public, the big thing that's missing from this is stock / RSUs. After doing my taxes, I realized how much of my compensation came from them and it makes a difference in a couple percentage points for base salary look small. On top of that, companies give refresher stock so that you accrue more of it the longer you stay.

After 4 years and earned all of that initial grant, it probably will make more financial sense to move on as the refresher grants don't come close to the initial grant. It also is a point where salary disparity might be significantly different (depending on economic conditions).

This is only true for those rare positions (senior/upper management) that offer such equity grants, or if you lucked into one of those one-in-a-million rocketship growth companies. I've been in the tech industry as an engineer and lower/middle manager for 15+ years and equity has never ended up making up even a tiny fraction of my compensation. Often it ends up being worthless (underwater options). I suspect my situation is the more common one.

This is plausible, though I'd be more confident in the numbers if someone could get data on total earnings over a period. Apart from salaries, those are impacted in either direction by, at least: voluntary termination and/or signing bonuses (in the plus column) and periods of unemployment between jobs (in the minus column). I don't know if those would change the totals significantly, but it's a fairly dangerous assumption to take two different groups and assume 10-year earnings are really [10 x $avg_salary], and therefore that comparing $avg_salary gives the full picture.

Companies (with middle management) work like a family... all things optimized to welcome a new kid or take care of a crying child. As a senior (outside of executives) you are expected to shoulder the responsibility. This setup may look odd in light of this article. The only reason it works and is working fine is the setup feels natural and many have accepted it. Employees who couldn't express their concerns in a smart way were seen as misfits. At the same time employees, worth even a tiny bit, who cried smart every 6 months were take care of.

There are limits on how many times you get taken care of for crying as the articled mentioned and finding another family is a perfect thing to do when you reach the limit. That new company is all ready to repeat the cycle for you.

Unfortunately, in many companies the middle management is a pack of caring elders and the people who didn't exercise smart crying. Another reason why it(accept 3% annual raise, don't expect more) became a norm. -- from a middle manager

This assumes that you are guaranteed a 10% - 20% raise with every jump, but my experience is that you operate within bands, and once you reach the top of your band, higher offers are rare. If you want to get higher offers you need to have been promoted to the next job level.

As an example, if you are a junior software engineer, you can only earn more as a senior software engineer, and again as a project manager, and again as a product / line manager.

And the only way you get promoted to the next band is by staying for a set amount of time at a company to get promoted. Outright offers from a lower job level to a higher one is rare without demonstrated ability to do the job.

So yes over the short term, jumping ship often is more lucrative, but you'll hit a glass ceiling and have difficulty breaking through to the next level.

You know, reading this thoroughly - the statistic is alittle unclear in the title.

The real stat is -- Over the course of a 10 year career, if you don't stay at any jobs for more than 2 years, then you make 50% more. This becomes a larger number if the career length increases.

I found this absolutely true in my short stint as a software engineer so far (1 1/2 years) - I have switched jobs twice, the first switch giving a 50% raise, and the second giving an 80% raise.

Companies don't seem to be interested in retaining quality talent these days (or developing it), and get used to paying a certain amount for that talent, even if he/she is worth a lot more. It is in each person's self-interest to then seek out the compensation & promotion the person deserves, assuming all other things being equal.

My experience is the absolute opposite, but maybe that's the difference between the US (or CA) market and the German one. Germany seems to pay people by seniority, not by their abilities (which, I think, sometimes causes unemployment for older developers). Maybe it's an "equality" thing - so all developers your age will make roughly the same.

Even with excellent reviews by my bosses (not to mention being a well-respected team member and the go-to guy of choice for technical questions), they wouldn't even give me a 10% pay increase. Switching jobs also didn't help (I got maybe 3% more), but at least a single company didn't get to reap all the profit from having me around.

Right now, I don't even bother anymore. All public job offers are for consulting companies, which seems to be very profitable (basically: you get paid less than the internal employees at companies that hire you, and the consulting company keeps 70% of the hourly rate they get paid; you get maybe 30%).

Sometimes there are article what nice salaries you're supposed to get, but if there aren't even jobs available?

Start a consulting company with one employee.

Lots of people actually do that, but it involves lots of work that you might not want to do if you're interested in (and really good at) software development.

Why not consider freelancing? When I'm hiring full time positions I don't normally see anything wrong with someone who's going to a new job every couple of years - but I'd definitely have some big, red flags for someone who was jumping ships every nine months.

This is because hiring takes time, and is expensive. If the person I'm hiring is only going to be staying around for nine months, I'd be better off hiring a freelancer. To put it another way: what changed in those nine months for you? You must have felt at month 1 the compensation was reasonable?

Whereas with freelancing you a) are always getting the market rate, and b) can move around with impunity.

To be fair, my second move was mainly to relocate to the Valley (in large part for personal reasons, although it doesn't hurt that it's an attractive region for salary). I'm hoping to stay at this particular job for longer before switching, and I think for my next move, it would have to be a lead developer position (I have turned down several high profile lead developer jobs already due to my feeling not ready yet) - freelancing full-time definitely does sound attractive from an income perspective since I do charge a significant rate, but I'm worried about freelancing being a static gig professionally. I also like working on teams since I can learn a lot from others, and teach others as well.

Even with the cost of hiring, I have been an extraordinarily valuable asset to the places I have worked, far more so than they have anticipated. I have gotten high praise for my quality of work and working well on a team (& across teams). I think employers just never expected me to progress professionally so quickly.

I feel like the ability to job hop like this will be in fairly small, concentrated geographic areas. In areas that aren't as concentrated it'll end up being pretty hard to do this.

It's also a culture thing.

In the USA, selling yourself like you're the absolute King is ok, but in Germany many people would consider you an arrogant snob that's full of it, if you pretend too hard. They'd also consider someone who job-hops every year to apparently not be able to take responsibility and do their job well, and maybe to be problematic to work with (or they'd not need to run so often).

Switching jobs after 3-4 years is pretty normal, though. It shows that you can keep a job, and if you can show that you also learned something, that's good.

Must be very comfortable for employers.

To me it's pretty obvious and it's because of a simple, logical dynamic. If you apply for a better role within your firm, your current boss works against you. They may either block your move completely, or delay it. If you apply for a better role in another firm and get an offer, there's no way for your current employers to act against your interest.

Companies can foster better internal mobility but they can never change this basic dynamic.

Dead men's shoes, this is called. You can only get promoted if the guy above you, for whatever reason, goes away.

My dad figured this out in the 80s. Changed jobs every couple of years for a bigger title and more money. It seems obvious to me anecdotally.

The article alludes to data backing up what they're saying, but (as far as I can tell) doesn't actually reference any. It is just a collection of anecdotes.

I have found that as I've been at companies longer, I'm more able to make certain things happen and I'm more capable of making a difference. That ability corresponds to an increase in my pay.

Longest job 2.3 years..

This is the best thing about contracting. With every new contract, you get to adjust your rate :)

I know few people who are working for company more than 5 years and are underpaid. But when I asked them, they were more concerned about seniority not about paycheques.

Or maybe just "the kind of employees who get paid less also are the kind of people who have a harder time getting new jobs." Correlation != causation.

"You don't go anywhere and for more money seated in the same seat".

Job hopping worked for me, the only time I've done so.

Back in 2011, a friend of mine offered an opportunity to switch from where I was working (a small community college in Southern California) to eBay in San Jose.

The jump in pay was pretty good (I believe I was making about $70K at the college at the time and the new job at eBay was starting me off at $90K, along with some RSUs and a bonus potential). (Sidebar: the pay was actually better initially when they first called me at $105K, but then they called me the next day and told me they had made a mistake and dropped it down to $90K...even though that really ticked me off, I ended up accepting anyway because it was still a pretty awesome opportunity for a small-town guy like myself to work for a big company like eBay).

I'm pretty risk averse so while I was there I was looking at a number of things, such as benefits (health / retirement), longevity / raise opportunities in the future, rent prices, work enjoyment etc. (looking at some of the comments people have made related to doing stuff in your 20's versus your 30's...I'm in my mid-20's but I probably act as risk-averse as a 40 year old). Even more so now that I'm married with a little one (and a bun in the oven).

Even though in $$ I was making considerably more, once I included the increased cost of rent in to live in San Jose (versus Imperial County, CA), I actually didn't seem to be making a whole lot more. Plus, I didn't quite feel like I had the same amount of responsibility / enjoyment out of the work I was doing compared to the projects I was able to direct / build at my old job.

So shortly after starting at eBay, when I found out my old job was getting upgraded into a management position (primarily due to the inability to upgrade a "regular" position to a higher salary) I opted to go back, even though my new salary would be a bit less than the eBay one ($80K) overall it'd be a decent jump since my overall costs were the same.

Since then, I've been able to complete all of those projects I came back to finish, along with a slew of new ones that have come up since then, but at the same time, I've had to start letting go of some of my development duties and replace them with management ones (mainly because my staff are non-developers...I'm really the only one handling online services and my other staff handle printing, publications/copying, and mail duties for the campus). It's been enjoyable, but at the same time I still want to become a better developer and it gets harder to do that at work now (and as someone else has mentioned, free time starts dwindling too).

Recently, after staying at the same salary for about two years, the management pay scale at the college was revamped, and as a newer manager I was able to receive a sizable increase because of it to my current salary of about $89K. For where I live that sort of salary is hard to find (i.e. it's damn near impossible).

Fast-forwarding to today, I like to keep my eye out for jobs (either in Craigslist or in the Who's Hiring threads each) in the Bay Area or closer, in San Diego, that would offer the "full package": a great location, environment / team, salary and while I've seen a few good options, it seems the most difficult thing to get across in an email or resume is demonstrating how much of an asset I could be as an employee.

I'm not really complaining (things are definitely in the good-great range currently) but I'm always looking for additional opportunities to continue learning and become better at writing software (and being able to focus on that full-time again would definitely be great, and I could still bring my additional skills as an entrepreneur/manager to the table).

In the meantime, I went ahead and scraped our local Chamber of Commerce websites and sent out some old-fashioned snail mail letters to local businesses asking if there were any pain points or tasks that take up a lot of employee time that could potentially be automated or solved with software. I figure if I can get some interesting projects out of that it would be worth it and give me an enjoyable coding project to work on that solved a problem. So far, I've only received one response from a local liquid fertilizer / trucking company so after finishing this message I'm going to go take a closer look at the info that business provided me on Friday to see what I can do for them :-).

P.S. I'm always willing to go and try out for a company...and luckily, I just happen to be on vacation for the next two weeks hint hint.

because people who don't ask for a raise have more chances of getting a job, for longer.

ask for a raise, expect to get fired.

The conclusion of the article- that the easiest way to ensure you secure large raises every few years is to job hop, is probably true. But I think it takes a very defeatist attitude towards negotiating raises with present employers:

"In 2014, the average employee is going to earn less than a 1% raise and there is very little that we can do to change management’s decision. "

Most good managers know that it costs much more to find a new employee than to retain an experienced one- it takes a lot of time and effort to find a suitable candidate, and then to train them. I believe that given an opportunity, they'd rather pay up a larger raise than originally budgeted, to keep a good performer, than to have to find a replacement. But this rarely happens.

Why? I blame poor communication and avoidance. Most employees are loath to negotiate with their employers, and they're usually not very good at it when they do. Negotiating is hard- it can be scary, uncomfortable and awkward to "demand" hire pay from your manager. It's easier to just think "there's nothing I can do to change their minds, so I'll just have to go find a new job elsewhere". That path allows you to avoid negotiating and still be offered a 10%-20% raise.

What would happen if, before any employee decided to leave for a new job, they met with their manager to discuss the situation? And really thoroughly discuss it- meaning a well prepared case for a solid raise: An outline of the employees successes during the year, details of how they've contributed to the company's bottom line (even in a tangential way), hard stats on what the current job market pays for a someone with their experience, and a soft/gentle reminder of the costs of finding/training a replacement. All done in a calm and professional way.

Would every single manager just hand them a 20% raise and an apology? No. But managers are business minded, and are usually evaluated based on the costs and revenues associated with their team. I'd like to think that given a convincing argument like the one above, a good number of them would respond logically and offer larger, more reasonable raises.

Ideally a high performing employee shouldn't have to do that- management should recognize their contributions and the costs of find a replacement. But that's not reality. Pushing for a 10-20% raise for employees at the annual budget meeting would be met with responses that a manager is prematurely trying to solve a problem that hasn't yet presented itself.

So I believe the best solution is for employees to have those difficult negotiation meetings before they decide to jump ship. It won't work every time, but it'd work more than not having those discussions at all.

Or, I could send out a resume on Monday and have a new job offer by Friday, one that includes a 20% raise and a hiring bonus.

Grueling, painful negotiation processes are, well, grueling and painful. The revealed preference of software engineers shows that the concrete benefits of jumping ship quickly outweigh the merely potential benefits of negotiating a raise at considerable stress.

I can see how it makes business sense for companies in the industry to try to make negotiation easy and the norm, and when they decide to, they'll find plenty of willing partners.

I think a lot of companies aren't even willing to negotiate if you don't have an offer letter in hand though. In large/medium sized companies, usually the manager doesn't even have the power to give you more, even if he/she wanted to.

And H1Bs are cheap.

TL;DR - this is explained by: 1. Sociopathic corporate philosophies 2. Risk-mitigation against lack of competence and/or integrity of the parties involved in the transaction (HR, low-level manager, employee).

My initial response to this was cynical and pithy: if corporations were people, they would be sociopaths (in far larger proportions than the actual human population). In this case, they seem to have zero regard for fairness, but rather only how they can use others to maximize the benefit to themselves.

Upon further reflection though, it is more complicated, and there are many factors and actors in play.

There is a misguided but universally accepted belief that corporations' supreme obligation is to maximize shareholder returns, and that it would be immoral to NOT take any lawful action that would increase profits. The net effect of this is equivalent to having a single sociopathic business owner who will do anything to maximize their own profits without regard for fairness except when a deficit of fairness begins to negatively impact this end. The effects of this philosophy impact decision makers directly and indirectly throughout the organization, and this phenomenon is one of the results. Being fair or rational in treatment of employees is not mandatory or even the primary driver of decisions.

One way this manifests itself is that management justifies its large salaries and bonuses by minimizing costs, of which employees are often a significant portion. Thus, incentive structures throughout the organization will likely reflect this. It doesn't hurt that executives are likely to be sociopaths to some degree, and this just helps them justify their natural inclinations.

Even in a hypothetical case where all levels of decision makers in a company are benevolent and fair minded, there still remains the difficult problem of determining fair salaries for each employee. Developers aren't truly fungible, but they are difficult to value (especially by those further removed from that role). So, in a sense it is rational to treat them as fungible unless you have a reliably accurate means of differentiating. If an HR person is 100% certain they don't know what is fair outside of averages, it would be a rational decision to let an employee's market price be determined by a public auction process among other companies (aka job hopping), rather than granting a request for a large raise outside the normal range.

Of course, this end could be mostly satisfied merely by matching an offer made by another company (aka job shopping) without requiring the employee to leave and return later. However, that is a very low-friction and low-risk proposition for the employee compared to an actual job hop, so inevitably would see much larger participation if accommodated universally. As HR has no way of knowing what the market rate is for all of its employees, it would also have no way of knowing how much this policy would increase the company's costs if it implemented it and every employee utilized it. If a worst-case scenario would cause substantial destruction profits, this would be a high-risk change to implement, and likely would need other coordinated actions to ensure acceptable long-term profitability and approval from shareholders.

Additionally, there is the risk that the employee had no desire to actually accept the other offer, or even colluded to be given a non-genuine offer (from a friend, for instance) under the condition they had zero intention of accepting the offer. Only once the employee terminates employment and spends a substantial amount of time at another company have they proven the offer was genuine, and that their previous salary truly wasn't sufficient to keep them. That is, without a high level of trust in the employee regarding the offer. It also helps if a trusted party (manager, co-workers, etc) confirms their exceptional value to the company, both in justifying the raise and in indicating there won't be cascading impacts upon the rest of employee salaries.

Diverting from this policy requires additional risk and lower profits, mitigated only by a high degree of integrity and competency in all involved in evaluating fair compensation and the long term cost/benefit of granting a raise vs. hiring someone else. The larger the organization, the less likely it would be a rational decision for upper management to assume this to be the norm. Integrity and competency are impossible to objectively quantify or measure, so for those who manage by metrics, I can see how this would pose a problem.

nowadays where got such thing as loyalty?

every man for themselves already

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact