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.
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.
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.
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.
I do agree that saving a lot early on is a good idea though.
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.
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.
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.
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.
<< 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.
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:
Not at realistic rates of return.
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.
"it's vital to have a reserve."
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.
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.
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.
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.
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.
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.
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.
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.
That rules out living in SF or London, for example.
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.
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.
Now, moving up to director or VP level or higher (assuming you have the aptitude and desire), is a different story.
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.
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.
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.
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.
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.
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.
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.
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.
It is not uncommon for a very good engineer with 5+ years experience to earn above $400K / year (total = base + bonus (if issued) + stocks).
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.
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.
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.
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.
No, the best way is to keep abreast of what new hires are getting paid, and make sure you are staying ahead.
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.
 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.
Who sets retention policies? HR
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.
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.
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.
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.
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.
Granted, he was a junior developer, but I can see this applying to people with more "seniority" (measured in years, obviously).
Once you are senior developer no one even dreams of offering you position of developer or junior developer.
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.
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.
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.
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.
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.
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.
(If my company forced us to pair program, I'd leave in a heartbeat.)
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.
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.
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.
I thought it was a great solution. If a dinosaur like a telecom company can do it, why can't others?
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.
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.
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.
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.
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.
If you try to change jobs every 2 years and are not great at your current position, you'll likely be sorely disappointed.
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.
IMO that's terrible business practice, especially in software development.
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.
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.
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.
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.
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%.
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.
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.
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.
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
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.
"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.
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.
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.
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.
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.
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.
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.
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".
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.
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.
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).
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
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.
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.
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.
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?
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.
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.
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.
Companies can foster better internal mobility but they can never change this basic dynamic.
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.
This is the best thing about contracting. With every new contract, you get to adjust your rate :)
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.
ask for a raise, expect to get fired.
"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.
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.
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.
every man for themselves already