Hacker News new | past | comments | ask | show | jobs | submit login
Developer salary growth is an inverted hockey stick (hirelite.com)
33 points by nathanh on Feb 22, 2011 | hide | past | favorite | 41 comments



Five years of experience as a programmer is like becoming a "made man" in a crime family. Before, you're nothing. After, you're trusted and respected.

I was in the same job from years 2-5 and didn't see much of a raise. Then when I got a new job it was more than double the salary. And it does seem like you have to leave to go somewhere else, or else you're a prophet without honor.

It's also clear from the graph that after 5-10 years of experience, much of the increase in income growth will be expected to come from non-salary compensation. Which may be equity, bonuses or stock plans, but it's all about getting a piece of the action. Which, again, makes programming sound like it's the mob. Sorry about that.


Was there anything you did as far as negotiating the salary at the new job or did they offer you that much straight up?


This was years ago but I mention it since the demand for developers was similar.

I was going from a really low-paid games job to doing application programming for a large startup. Game programming tends to have even more depressed starting salaries than usual, although this was back when everyone was still salaried.

My former boss actually predicted that I "could make twice as much somewhere else" when I left, and the new employer in fact offered that straight up.


In economics the reverse hockey stick growth is known as diminishing marginal returns. This simply means the market values the earliest years of experience as much more beneficial to a developers skill than the later.

While I understand the idea behind hiring young and inexperienced, it should be noted that the wage rates are there for a reason. The training costs/possible managerial time may be greater for the average college graduate. (Clearly not always true- I am just trying to postulate why the market values experience this way).


In economics the reverse hockey stick growth is known as diminishing marginal returns. This simply means the market values the earliest years of experience as much more beneficial to a developers skill than the later.

I wonder which part of the market it is that champions valuing developers this way; is it the companies that value that additional experience less, or is it the developers who diminish the additional value more experience adds? They both ultimately agree, as but I wonder which side is making the harder compromise here to get to that agreement.

I can't help but see this graph, though, and get the impression that after a certain number of years, people just stop caring so much. It might be that they grow apathetic. It might also be that the asymptote is the level at which salary stops mattering, and people focus on other things. I'd kind of believe that; you can been pretty comfortable most places at $100-120k/yr, and might start worrying more about things that go beyond mere comfort.


You're right about training costs for college graduates. Another thing to consider which isn't directly mentioned in the post is training across a (programming) language difference. If someone is a C# developer and wants to join a company that uses Ruby or Scala, they might be willing to take a pay cut to get experience with new technologies.


That's an excellent point. Personally I've never considered that because I feel that experience 'programming' beats experience 'programming $language', at least for people who are above average.

Above average means giving a shit about being a developer, not just being in it for the employment.


This is true in most industries. You either move on to a management position or stagnate. The problem is it doesn't really work in the development world where you can get better and better the more deeply you use and understand the technology. Plus it has the side effect of pushing highly technical people with no management skills out of jobs they're good at and into jobs they can't do well (imagine Woz trying to be a manager)

That's why many big tech companies have moved to a "level" system (to the best of my Knowledge Microsoft started this trend but I could be wrong). In that type of system you can continue to be a developer but move up in level and salary. That way great developers can stay great developers and not be penalized for it.


>That's why many big tech companies have moved to a "level" system

Although you have to do it right. Netscape had such a system, with levels ranging from T1 to T7. I started at T4. Two years later, I was doing work that, according to the written definitions, should have put me into T5. I asked my manager if I could get promoted; he bumped it up to his director. About four months later, the director answered me: yes, I did meet the written definition, but, no, I couldn't have a promotion, because they didn't actually use the written definitions. They were guidelines, but the real standard for promoting to level N was comparing the person to other people who were already at level N...and there were no T5s in the company.

Basically, it was a firebreak, which provided the appearance of a career path, without providing the reality. (I expect this wasn't on purpose, but that was the effect.) Three months later, I moved to another company, hired as what Netscape would've called a T7.


There is an interesting subtext in this article, which is to suggest that you take more risks as you get closer to the asymptote of salary growth, because it's the way to avoid diminishing returns for the additional skills you've learned between hitting the level of "experienced" and now.

It's the opposite advice that makes up common wisdom, which is to take risks when you are young, inexperienced and without responsibilities, and then settle into the comfortable long-term job with small raises once you get past that phase. I'm not surprised by this; if technical skills compound at all, it would seem that a developer's value would trend exponential and not logarithmic. That is, so long as they don't weary and stagnate.

But then, there is also value for the inexperienced in a startup, in that you'll learn a ton, and be given a lot of responsibility and autonomy. It might be that common wisdom is only half-broken.

Granted, there are opportunity costs involved. You might be in a position where you have to trade capitalistic striving for a paycheck, as a ribbonfarm article posted here a while back put it. It's as much being aware of those opportunity costs, though, as it is knowing whether or not you are in a position to need to accept them.


Not quite. I think this is conventional wisdom:

If you take a risk and co-found your own startup with 0 years of experience, then even if you tank 2 years later, you are likely to wind up close to the 5 years of experience point of the hockey stick when applying for a job.

Basically, the startup gives you a small chance of huge upside, and on the downside, you become a normal W-2 salaried employee but begin at a point farther along than someone who played it safe the entire time.

Whether this happens in practice is probably highly dependent on whether the risk taker demonstrated some goodness during the failed startup.


If you take a risk and co-found your own startup with 0 years of experience, then even if you tank 2 years later, you are likely to wind up close to the 5 years of experience point of the hockey stick when applying for a job.

That's probably closer to the conventional wisdom around HN, but it is a far cry from conventional wisdom amongst the masses. The wisdom amongst the masses is that if you co-found or join a startup, you are playing roulette with your financial security.

But the article's point -- which I agree with -- is that even if you accelerate this process of getting to that 5 year threshold, you are doing yourself a disservice fiscally by settling in at the plateau unless you have a good reason forcing you into settling.

You're likely still learning more, and becoming more valuable, but it becomes much more difficult to extract that value through salary. So, it becomes beneficial to join companies where that only makes up a part of the total compensation package.


I certainly don't think that. If you're incompetent you can get lucky, have a moderately successful failure, and still know 4/5ths of fuckall. And you may then become that most dangerous of individuals, the ignorant 'expert'.


Skills don't really compound, it's not like interest where you gain 10%/year on your existing skill set.

We forget stuff, and things we learn don't always enhance/build on things we already know.


This has created a pretty serious issue at my current job. My experience is increasing in value faster than policy lets my salary appreciate.

Policy is forcing me to find a job elsewhere. I cannot rationalize continually taking a relative pay cut to stay where I am.


It's more of a 180-degree rotated hockey stick.


All hockey sticks are.


Only if both ends are considered the same or outside of flatland.


Just thinking out loud here.

Could it be that after 5 or so years engineers are in long term relationships, perhaps kids, etc and thus are less inclined to rock the boat and ask for a significant raise.

Could it be that a lot of developers leave after about 5 years or so and go into other fields (management, startups, etc) so that the people left in the job for 10+ years are actually comfortable with just plodding along?

Then again I'm left thinking that it could be because there actually isn't much of a difference between a developer with 5 and one with 10 years of experience (in the general sense).

This is interesting to me, since I've just gone past the whole 5 years of experience thing, hit a limit with one company, and moved elsewhere for nearly 2x the money. Wondering what/where I should go next.


It seems to me that this assumes developers never get promoted (which makes the long term look unappetizing). But developers become lead developers, architects, and (gasp) managers.


How do I get a job at 0 years working remote from Houston?


I've been working remotely for 5 years doing all sorts of web development. The two things that have helped the the most are:

1) Open source contributions.

2) Personal projects.

I still haven't made any money from any of those but putting them in the emails I send to offers found on the different job boards have always put me ahead in the line of people applying.

If you're desperate for money you can always go to sites like oDesk and applying for stuff there. You'll have to accept $15-$30 per hour (or even lower when starting) but once you get a good reputation you can make a decent salary out of that.

Finally, write me to federico@toptal.com if you have a semi-decent Github profile and I'm sure we can reach an arrangement!


Companies are having a tough time getting comfortable with remote developers.

Perhaps you could email a few Austin startups, tell them specifically what you'd like to help them with, ask to work remotely, and offer to visit their office once per month or quarter.

Austin has a growing startup/tech scene, and they're having a bit of trouble finding developers to fill the demand, so they may be willing to be more flexible.


when you figure that out, let me know. I have only been able to get partial work from home here in Houston, and that is usually given grudgingly and to your detriment to follow rigorously.


A labeled y axis or error bars would be nice...just to dispel that vague link-spammy feeling.


The y axis doesn't have specific units because they vary so much by location. I tried to mention a few specific data points below the graph to provide a bit more context. Good point about the error bars. I'll try to include them in an update to the post.


any chance you'd release the raw data? my email is in my profile, i'd be happy to share the results.


I'd probably call it a logarithmic function where dying is a problem in more than just a "boundary value" sort of a way ;)


This got blocked by the proxy server at work. Can anyone summarize (if a summary is even needed beyond the title)?


I think they're telling you to find a new place to work.


Speculation: maybe the proxy server blocked it because the domain name includes the word "hire", and the company is trying to keep people from finding a new place to work.


This Websense category is filtered: Blogs and Personal Sites.


Though that could be a lie to make you not know they are blocking you from looking at 'hire' websites.


Either way, I find much of the best information on some narrow topics are on sites that could be described as "blogs".


Strange, where I work the firewall blocked the site also, but calls it: "Dating/Personals".


Early on, compensation grows quickly with experience, especially from 0 years to 5 years (a bit less than doubling). Then, the more experience you have the less effect another year of experience will have on the salary you can command. After about 15 years, it doesn't matter much at all.

Developers stand to gain a lot by switching jobs after their first few years in the industry. Companies stand to gain a lot by hiring and retaining new developers.


http://i.imgur.com/Y59Rq.png

Basically, developer salaries go up dramatically after the first year or three. Get a new job after that point, and reap the rewards.


For a moment I feared to see that chart the other way round (starting high, ending low).


Anyone have a sense of how true this is at big places like Google and Microsoft?


One thing not taken into account in this discussion is the natural limitation of career growth. Everyone has a cap on their advancement. Some devs hit that cap after 4 years, some after ten. But a smaller and smaller percentage of employees are promoted to a higher level after the requisite amount of experience.

At Google and Microsoft there is very large percentage (~60%)of employees in the T4/SDEII bracket. This is the 2-5 year experience bracket. The percentage of employees in a level exponentially tapers off when compared against higher levels. This could be one explanation of the graph as presented.

At the companies you mention, the graph is accurate when plotted against population but incorrect when plotted against level.

Mid to higher levels see approx linear growth in salary and compensation until the top echelon. The compensation difference between two levels is approximately 10% the starting salary of a college hire. However, this highest levels including directors, tech managers and partners see clearly non-continuous bump in salary and equity (2-5x salary, 10-50x stock).


I'm surprised nobody has discussed the selection bias going on here. The better programmers are the ones that will stay on. IDK what the general turnover is in coding, but it makes sense that some people won't be able to hack it, appearing to boost the salaries of the "better" workers.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: