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.
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.
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.
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.
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.
[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.
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.
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.
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?
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.
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.
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.
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.
http://deliveringhappiness.com/the-motivation-trifecta-auton...
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