Poll: Full-time software engineers over 200k, how'd you get there?
I'm kind of tired of all of these salary surveys because I don't trust them, but I am curious and think that it would be useful for the HN community to get advice/inspiration from some of the most financially successful engineers.
So, for the developers making more than (plus or minus) $200,000 per year in salary:
How much are you making?
Is your income stable or volatile?
What industry are you in?
Where do you live?
How long did it take to get to your level?
What kind of work do you do?
Do you enjoy it, or is it the stereotypical "highly paid because it's crappy" work?
Is this a short-lived opportunity, or do you expect it to exist in 5 years?
What would your advice be to a 20-year-old aspiring developer? 25? 30?
126 comments
[ 2.3 ms ] story [ 218 ms ] threadAside from thr poll you would factor in bonuses and stock options to reach that level.
And then theres the computer programmers who are actually in management
Making $200k/year is one thing. How many hours you end up effectively working for it is entirely another.
There's cases where making that much means 6 days a week and 12 hours a day. 3700 hours a year of work instead of the 1900 that's full time... you make 200k/year, but it can work out to a little over $50/hr.
On the flip side, if you're able to keep your income effectively tied to the value you generate (a portion of your salary based on money you make or save the company), the multiplier effect is a truer way to effectively boost the average hourly rate you have.
I think that whatever it takes to make a high salary is also what it takes to negotiate this sort of situation. If you're valuable enough to the employer, they'll be willing to make a deal, whether it be for more salary or fewer hours.
Checkout glassdoor.com to find those companies. Be sure to read the reviews (especially the negative ones).
For reference, 150k base should easily get you over 200k total, if not more. 180k, and you are looking at close to 300k. 200k+ base, 400k total.
Anymore than that, you are a VP, you make your own rules.
The other way I've earned significant compensation is by being hired at a senior level, a VP of Dev or really any very senior technical position. At a company with money, these roles can easily make $200k in base salary, and much more with bonuses/equity.
The thing to keep in mind I think is that inflation is a very big factor. Making $120k in 2003 is effectively the same as making $150k in 2013. The numbers keep getting bigger, so $200k salaries really aren't that extravagant.
And it doesn't matter how much you make if you don't save. Plenty of $200k earners save less than $100k earners do. Anyone who can save $50k/yr is going to be a very happy camper in the future, and most young people could easily do that on $120k if they wanted to.
Inflation have been crazy for the last decade, salary is finally starting to catch up, especially this year.
You know things are getting good when recruiters email out the salary numbers on initial contact.
5% (interest rate plus property taxes) of 1.2M = $60K
Borrowing money is cheap recently.
Not really. Housing prices raised significantly in a few markets (the SF Bay area a prime example), but inflation has been average for the past decade. That makes sense considering we had a recession, it canceled out high inflation years like 2007.
http://www.usinflationcalculator.com/inflation/current-infla...
From the FAQ on your link:
> Housing: rent of primary residence, owners’ equivalent rent, fuel oil, bedroom furniture, etc.
So house prices aren't included, just imputed rent.
Disagree. If you have an easy recipe feel free to share :). You have to be a front office VP to be guaranteed this kind of money. Aleynikov made 400k as a senior VP working on HFT infrastructure at Goldman.
1) Get hired in at a 62 or 63
2) Steady promotions (you are good technically, work well with people, and pick good projects, and -- hardest of all -- your management chain doesn't suck) for a few years, until you hit L65 (Principal level)
3) Stock awards over the next 5 years take care of the rest
Seriously, there are groups who actually hire people to fall into the seven percent "knucklehead" bucket, so that none of the (presumably) good employees need to be fired.
I don't miss that stuff at all.
Sadly, very few get it.
I'm with you there. The chances of self-taught web monkeys in companies that are loss leaders making a multiple of the salary of PhD level automotive software engineers in established companies with profits in the hundreds of millions to billions range are pretty slim, so I think we can just write this off as mostly fantasy.
It's not about how you learned it, it's what you know and what you can do. Some of the best programmers I know were self-taught. They keep learning and getting better everyday, and that pays off. It seems silly to write them off based on how they learned.
If we take the $300K+ figure as an outlier, what I see are pretty much peaks at around where I get LinkedIn spam telling me I can make $x. [Edit: to clarify, by "peak", I am referring to peaks if you were to plot the responses in a histogram, not a dollar amount.] I'm going to guess which peak someone is likely to fall in varies with factors like years of experience, when you entered the workforce, how often you changed jobs, luck or whatever. Then I see a significant amount making more and a significant amount making less. I don't think that's all that unbelievable. I don't think it makes sense to overemphasize that the poll is informal and not scientific - the poll still tells you something, even if not really that much, so why dismiss the messenger?
This reminds me of when I lived in Seattle, worked for MSFT and used to read "Mini Microsoft" threads around bonus/promo time. People would post level/base/bonus and how they were evaluated. That too was unscientific, but the company was pretty standardized around titles and how well you could do at bonus time, so it didn't take much to figure out that most of the data was probably accurate - and seeing that, even if it was totally unscientific, served as a reminder of how the place worked and where you fit into it. But then you got a lot of commenters who I think were bitter, jealous, or in denial that it was possible that the guy down the hall was doing better than them. So in a reactionary fashion, they start attacking the other posters, calling them liars, non-employees, whatever.
Edit: it occurred to me that I left the definition of "peak" unspecified. By peak I mean amounts with the largest amount of respondents, not the highest dollar amount.
an oracle DBA/engineer with 10 years of experience can easily clear a quarter million a year.
same with SAP or anyone who has done large Microsoft installations / integrations.
your ego is not allowing you to believe that people make this much money because it means you have somehow been unable to achieve that level of financial success despise your (probably pretty good) tech skills. it pins the blame on you, and your ego can't accept that. it just can't. it would rather deny reality than hurt itself.
just because you don't believe it doesn't mean it's not true.
the main difference between people like that, and people like you, is they know what they're worth, and have the balls to tell someone insulting them with low paying work to fuck off in exactly as many words.
I don't buy "easily" for a second. "Often" - yes.
Just remember how the fallout from the last bubble (which included inflated salaries) affected real industries with hard working real people having real families that did not have anything to do with the ridiculous entitlement and greediness of the entrepreneurial culture. They are the ones that ultimately pay for folks like you. If you are not creating sustainable revenue with your line of work but rely on bean counter tricks you are dead weight in terms of economic value, regardless of your nominal salary.
In my experience, this is exactly the type of thing that PhDs generally don't know, and are often no longer curious enough to learn.
Whenever I am a hiring manager, I am pretty openly biased against hiring PhDs. They definitely start at a disadvantage compared to a highschool dropout in a hiring interview with me.
I sincerely hope whatever fool placed you in charge of hiring learns of this fact, and soon.
Someone who knows what they're doing, presumably.
Being a PhD student myself, I am of course biased on this. But it's frustrating to be generalized as an out-of-touch ivory tower type when that is simply not the case.
* Of course you can. But should you?
After having interviewed thousands of candidates over 15 years, if I see a tilde in your URL on your resume, I'm immediately a little bit less interested.
The most successful that I've seen has always been one of three things. All of these can be traced back to people I know making over $200k in the software industry.
#1) Knowing a niche technology and/or industry, finding a company that needs to staff and going in as a self-employed contractor instead of an employee.
I had friends making $200 an hour in 1999 because of this. I'd like to say they were working in Lotus at the time, but I don't really remember.
Find a company and say "I live right down the street, you need X and it is hard to find, you can either have me show up every day or have someone a few thousand miles work on it" - for some companies it is easily worth the extra $40-$60k to have someone local.
#2) Working on a well known technology but having something important on your resume - and still going in as a self-employed contractor.
Being able to say that you are a major Spring contributor will open doors. Being able to point to your name on the list of authors of Hibernate opens more doors. It doesn't even matter if all you did was help update the docs. It's just a selling point, and it works.
Most enterprise shops will think about it like this; "Either we hire Bob who did some spring work for x-corp, or we pay an additional 40k and we get Lisa who helped write Spring. If you ask me it's worth it to get Lisa".
#3) Biting the Enterprise Application Architecture Bullet - and going in as a self-employed contractor
Can you confidently whiteboard the entire Oracle Enterprise Suite? Can you talk about JMS queues, BI managers, the E-Business Suite and all that, ahem, stuff? There's plenty of companies who have built very complex solutions to simple problems and they need someone that knows how the wiring is supposed to work.
...that's the extent of how I've seen it work. All three share the same trait; find a company in need and pitch yourself as a contractor.
So I missed the whole advice thing. Here's what I'd say:
If all you want to do is make money then get yourself in as a contractor for a specific industry. Let's say that is shipping, or distribution, or something along those lines. The more time you spend doing X work for X industry the more valuable you become. If you can walk into X-Shipping-Corp and you can name-drop things like "Parcel Size Distribution" you'll probably be fast-tracked into compensation discussions.
To give you a real world example, I did lots of travel software work years ago, just being able to walk in and say "I worked with Sabre Worldspan and Galileo" was enough to get me to an offer. Hell, I didn't even need to explain what I knew about them (which wasn't much!).
That's really if you just want to make money. It isn't glamorous work, and it pushes you into a very specific bucket, but you will most-likely be well compensated.
My contracts generally always come in 3 month stretches. In case I haven't received a signed 3-month extension 1 month before the end of a contract I would start looking for my next engagement.
I also make sure I always take calls from recruiters and let them know when my current contract is up for renewal, so that every three months all recruiters I know will call me asking if I'm already available.
I generally also have a decent number of ex-colleagues already lined up which would be interested in hiring me if I were to become available again.
Now of course I don't get 100% utilization, but in practice my holidays and illnesses have had a much bigger impact on that than availability of engagements has.
We probably both agree that freelancing is a way to make more money than you would on a steady salaried job. But it also comes with markedly increased risk, which is why it pays more.
I agree with seeing freelancing as a way to avoid paying a third party for doing sales (marketing & negotiation) and finances (bookkeeping & buffering) for you. In many cases and for many people it's also better to outsource those tasks to your employer.
P.S. Do you think you would have trouble staying 100% utilized if you were charging $100/hr as originally mentioned?
To achieve 100% is moderately difficult and would involve a bit of luck, or some kind of compromise.
The one key I have found is not to sell yourself as a freelance consultant. Form an LLC and pitch as a business. If you need to find a couple other guys to help out for a large project do it. But you can command much higher rates this way.
Can you explain your reasoning for this?
60 hours a week really isn't that stressful. You could probably get there with less total stress by outsourcing cooking, cleaning, etc and working in 3 hour chunks with 1 hour breaks in between.
Remember that 60 hours/wk is only about 50% of your waking hours.
edit: Sorry, I somehow didn't understand you were saying it was a supply problem rather than a stress problem. The answer to supply is much simpler: go to tech meetups in the bay area and sound smart.
The terms didn't feel permanent in this situation, I also couldn't drive myself to work more than 6 hours in a day, so I moved to a position with a salary closer to that which wasn't tied to a weekly timesheet.
I realize that's a controversial thing to say, and I might get downvoted, but screw it. Porn (the well-regulated with paid actors kind) is quite often more honest.
Edits:
Sorry, I have no idea how I thought 'traditional' should be used as a modifier for the word "porn."
I can easily imagine that the people in such companies are well aware that the system they have is overly complex but they don't have the ability/will/breathing-room to change. In such a scenario, I'd be perfect happy to pay top-dollar for someone who can understand it and patch things up. I might even consider them a knight-in-shining-armor.
I remember a great HN submission from a while ago (can't find it now, I'm afraid), where a guy was making a great living out of making MS Access databases available online (or something like that). His work/software was critical to his customers' businesses -- but he'd gotten to the point where he couldn't stand it anymore (and the technical aspects of the company were quite convoluted).
If the salaries are trending up, then at least it's making up for the housing prices, unlike the Bay Area.
When I was 20, I decided I was going to get 20 years of tech/business experience in 10 years. I'm under 35 today.
By age 30, I hoped to have the experience and talent of at least a 40 year old, but have my 30's to chase what I wanted.
I must ask though: I'm not sure what you're wanting to get from asking those questions. They're metrics but how you get to them, and why is more of the "how could I apply some skills to my life", measuring the metrics doesn't get you the results, let alone getting the result in a way that you would be happy with.
I'll share a bit of my story and if you like, feel free to ask, or contact me offline.
When I was 20, I had this habit of not thinking why I'd want to solve a problem, or a challenge, and just do it.
I decided on my 20 in 10 after the dot com crash as a hedge for a life in tech. Get ahead and stay ahead.
How I tied in my passion: I did my best to remember that no matter how reasonably talented I may have been with technology, I felt I wanted to learn about solving problems, and there's only one way to learn to swim, and it isn't by reading, watching, or talking about it.
I feel a deep kinship with focusing on solving problems by seeing them as puzzles. I don't care if the problem is small or big, they're all worthwhile and can make a big difference in someone's life to solve if you truly care about solving problems.
Today, I'm a full stack guy. While I've struggled to find a title the past 10 year that fits, I'm liking "full-stack", combined with one of system/software architect/integrator.
If you're trying to make something do something with hardware or software, I can figure out a proof of concept.
There was no map, or plan to get where I am, or where I'm headed, except solving problems, and puzzles. It's a wonderful compass, and your relationship with challenges and puzzles improves every time.
About 'highly paid because it's crappy work':
The work doesn't get any easier. You get better. At everything. Including your own attitude. If you don't it's easy to say it's boring or unfulfilling. Even greater challenges will await you in whatever you think is perfect, so you'll have to learn the same skills of pushing through to find learn and do what you need. As a byproduct sometimes you end up being that person who took 5 years to learn to recognize what you need to do in an hour.
Everything is crappy when it's either growing out of control, or it's a startup about to fail, or a unholy codebase. You will be guaranteed crap. There is no smooth sailing, ever. The sooner that kind of kool-aid goes out of circulation, the better. Your ability to deal with realities to make and leave it better is an important skill to always work on.
My journey so far has taken me through .NET and J2EE at the same time, and many other languages and frameworks. I am doing a lot of web and mobile stuff now, but I get to back it up with experience in hardware, networking, sys admin work, complex datacenter hosting of critical apps. Full cycle ERP (ie., SAP) installations. Custom middleware to speak between any combination of legal, workflow, shipping, accounting, logistics, retail, and beyond. The common pattern: writing web software to replace desktop software when it seemed unnatural, kind of how mobile-only apps get that feeling today.
Was it boring? Maybe if I wanted to complain that it was really hard. If it seemed like it at first, but then it became one big puzzle that no 20-something had any business doing. Now, I want to keep doing things that I have no business doing.
At a certain point, you can not abstract away the fact that it will take lots of work no matter how good and amazing the tools are. One thing gets easier, something new will pop up.
My expertise is being able to be thrown down any well and coming out time and time again. It attracts more wells. My specialty is pulling together a full-stack to solve what others can't seem to figure out. Over time you do get known as someone who can s...
1- About hitching myself to great growing clients -- I think it's important to help them grow. In a way, either consulting pays for one's learning/growth, or VC funding can, or bootstrapping can.
2- According to some in my life, sometimes I treat my clients too well, to a fault. But clients have turned into friends, and a few even mentors..
3- Delivering more value than what you're paid = your cost doesn't matter as much.
On the other hand, there's no state income tax and the cost of living is lower, so you may come out ahead. Depending on your personal tastes, you may find the lifestyle better as well.
It's not impossible to get paid fairly well down here, of course. I've seen close to $200K offers, although they were for managerial positions rather than individual developer roles.
Quantitative finance
How much are you making?
155k in salary, 100k - 250k in bonus and equity grants.
Is your income stable or volatile?
Salary's been very stable, bonus fluctuates a bit more dependent on the vagaries of the market.
Where do you live?
I live in Boston.
How long did it take to get to your level?
5 years.
What kind of work do you do?
Trading signal research, statistics, machine learning, discrete optimization. Also a lot of time working on infrastructure, operations, and communicating with different stakeholders.
Do you enjoy it, or is it the stereotypical "highly paid because it's crappy" work?
I enjoy it. The work-life balance is great(40 hour weeks), and I work with smart people on interesting problems.
Is this a short-lived opportunity, or do you expect it to exist in 5 years?
Jobs like this will definitely exist in 5 years.
What would your advice be to a 20-year-old aspiring developer? 25? 30?
The world is your oyster if you can master the following:
- doing difficult technical things - knowing the business side of things well and always working towards good outcomes for everyone involved. - communicating well, both in person and in writing - working independently on original, important ideas that are germane to the business activity you're involved with - being friendly, positive, and easy to work with
It also probably helps to pick companies and industries where you're appreciated for all of those things.
The work is mostly very interesting, low-latency java programming, distributed systems, etc on a small highly capable team. 40-50 hours per week.
What sort of problems do you attempt to solve? How much risk are you allowed to take? How much return is expected? Is it true that most quants are ungodly intelligent and frequently come from PhDs in science?
To answer some of the other downthread questions:
- Educational background: Ivy League, comp sci major and math minor. I wasn't the smartest person in any of my classes, but I got my work done well and didn't blow it off.
- I didn't have any connections that helped me get in, but had been pretty interested in the markets for a long time.
- As for chances of getting in, I'd say that it's definitely still possible but harder than it was. Most of the quant finance firms draw from the same pool of seniors graduating from highly selective colleges, and mostly just the good programmers from that group. Finance is also pretty cyclical in its hiring -- most firms were probably hiring record numbers of people right before the financial crisis.
I still have a copy of the cover letter I sent to apply for a job in structured credit products at Bear Stearns.
First, constantly improve throughout your 20s. Learn a new (programming) language, read tech blogs, contribute to open source, etc. This will allow you to sharpen your skills and get into the top X% of the class. Understand operating systems, networking, security, plus higher level stuff (read CIO-focused magazines, technology strategy blogs, etc.) Volunteer for special projects at work whenever possible--these are often worth their weight in gold.
Next, specialize. Go deep in one or two areas. Trends today are on mobility and security, but there are plenty of others. Depends on what you're passionate about, but try to get to the point where you're the smartest person you know in that topic.
Oh yeah, you have to be passionate about it. You aren't a programmer, you're a creator of things. An artist isn't a "paintbrush mover", and you're certainly not a typist. Take it up a level.
To be more strategic, get into financial services. A good percentage of developers make close to $200k after bonuses. Watch the firm though, some place like Goldman will have you working 18+ hrs a day.
Live in an epicenter (San Francisco, LA, NYC, Seattle, and probably a few others).
Ok, most important advice. Change jobs every 3 years. Most developers, no matter how good they are, don't get a 50% raise, but it wouldn't be hard to start around $60k, then jump to $85k, then to $110k, then to $140k. After bonuses at that higher level, you'll be close to $200k.
Don't work 80 hr weeks more than a few times a year. Put in the time and the effort when it's needed, but if you make it a habit, it'll become expected. Work for a company where quality >> # of hours put in.
If you're 20, generalize.
If you're 25, specialize.
If you're 30, take some risks. You'll soon be the "old guy" in the room. Write articles, books, talk at conferences, become an "industry expert" (hint: fake it till you make it)
If you want to do consulting, as opposed to traditional work, you can get to $200k, but you'll probably need to bill out around $120/hr or so. You'll need to specialize in order to get a rate like that, or be available on-site, because whoever hires you would have to think you're better than 4 or 5 people in (insert-outsource-country-of-the-week).
Finally, exploit LinkedIn. Get to know a few good recruiters. Get to know people in the industry who are "going places". Unfortunately, many of the best jobs out there aren't advertised, you have to know people to get in.
That's all I've got. Good luck!
As in, try to learn a bit from everything?
Did you mean 'study an a uni'?
> If you're 25, specialize.
Did you mean 'graduate and find your first job'?
I don't get why people start conversations with asking about money - money is merely a derivative of the value you deliver and your marketing skills in convincing people that you really deliver that value.
I have around 1 year of real work experience before I got this job. I hope that I will make $200k some day but I recognize that it probably won't come too soon. Although I value time off more than money in my hand if I'm working for someone else.
About 3/4 of that was salary. The rest was primarily rolling stock grants vesting. Most of them were a grant of X shares over 5 years (IIRC). I got one grant every year and two in a couple of them (gold star bonuses). Once you have enough of those grants rolling in and they get larger as you continue to "level up," they account for a larger and larger portion of your compensation.
These types of packages are what are known as golden handcuffs. When I quit, I left over $350k in ungranted stock shares on the table.
I really enjoyed the work. I had to make a location change for family reasons, and though they offered it (and I tried it), remote work is not Microsoft's forte.
As for advice, when young: learn. Avoid jobs at either big non-software companies or startups where you (at 20-something) are the most senior software person. At 30, make sure you have been networking well, as the vast majority of senior hires into good positions are done through networking your way to a hiring manager who then sets up the interview. Especially if you are making a field change, as the filtering process for hiring experienced people can be brutal.
I switched to be a first-level manager for a couple of years, but there was no bump in level since it was the same effective scope (12 directs).
- "Avoid jobs at either big non-software companies" - As cool as it may sound to design websites for the NBA, or design systems to help market movies, neither will teach deep technical skills. You'll outgrow your mentors quickly.
- "The vast majority of senior hires into good positions are done through networking your way to a hiring manager who then sets up the interview" If you don't know people once you hit your 30s, people will wonder what's wrong with you. Why can't someone vouch for you? It's a form or ageism, and it may be morally wrong, but be aware that that's what you're up against. It's even more true at 40 or 50. This means networking with your customers, being kind to your suppliers, knowing who your competitors are, and making acquaintance with folks who could be one or two degrees away.
I realized earlier in my career that my success up to that point had far more to do with my ability to communicate well and connect with people than my technical abilities. I stumbled into the accidental profession known as sales/solution/presales engineering and never looked back.
Its great to operate "in the revenue stream". I encourage engineers who enjoy presenting about and helping others understand technology as much or more than creating or operating technology to consider this path. There is far more demand than supply for these roles right now.
Basically I was a Java dev and pretty much knew RoR would be big, and knew there were guys making 100k+ at it (this was 2008). At the time I was making 75k as a Java guy and I just wanted to see if I could become one of the best. So i worked at it night and weekends, virtually non-stop till I got a Ruby position for 85k. That let me spent all my time on Ruby which was helpful. I tried for find every little scrap of info that would help, and overtime I got better.
I got a job for 130k 6 months later and my mind was blown. It was so much money to me it was just unreal. I didn't take it for granted though, I went in and worked my butt off to try and tackle every big problem there was and tried to pre-emt and issues that I saw, so I had a solution as soon as the problem came up. That went on for about a year.
All this time the main thing is that I kept working on all my skills, everything big and complex I could get my hands on that is. So I knew how to troubleshoot any performance issue that came up, etc. I also relentless kept it touch with recruiters. I know a lot of people on HN and Reddit aren't too fond of them but I love them.
I did whatever I could to help them out when they were looking for people, and made good connections because of that. When they emailed me I would just quote a ridiculous rate like $200/hr and be polite about it.
Eventually I formed a contact with a large consulting company and they said they could offer me something good but not what I wanted. I did the interview and go the highest tech score in the country (a lot of that due to the fact that there were slim pickings). They made the offer but I turned them down. They said okay.
A few months later they got desperate and gave me the rate I wanted. I was more than blown away, it didn't seem real at all.
I went to the client location and yeah, it wasn't glorious work but the pay was insane, so I've kept at it. I live pretty frugally, more or less just stocking the money away so when the gravy train ends I won't have to work as much.
What do I attribute it to?
1) Work insanely hard. 40 hour work weeks are good and healthy, but I think it's harder to become super successful without working a lot. As an employee when I was getting paid that 130k I worked 65/hr a week even though I was only getting paid for about 45 of those hours, just because I wanted them to know I was insanely aggressive.
2) Find people's problems and solve them. I always tried to befriend high level people and solve their problems to the point that they see me as invaluable. When I got the 450k job I made friends with all the project directors, found out their problems (like performance) and would fix it and surprise them with it. This helped me to cement my place at the company to the point that I was able to have a lot of control and influence within it.
3) Be nice to people even when they are mean. I get insulted by the client company often. Their developers tell me I'm an idiot. That's sort of the nature of being a consultant. The big thing is that I'm always polite even if I don't think it's warranted. So I'll say "Hmm, interesting, why do you say that". And then politely explain why they are wrong and then make them not feel too bad about it by saying "Actually it's easy to be confused over those things because of..."
That is probably more of a book report than is needed but that's about it. The one thing I will say is that the money, while very good and nice to have, wasn't the end all be all that I thought it would be. I figured I'd easily meet the right woman with all the money I have, but I haven't, in fact the women I have mentioned it to on dates didn't even care (or believe me, or both). I don't really get treated any different...
At my graduation, we had a tremendous speaker. The biggest take away from her speech was (I think she said she got it from a book), life is about juggling balls. Your career ball is like a rubber ball and if you drop it, it will bounce back. The other balls are made out of glass, and it shatters when you drop it. You may be able to rebuild the ball, but it'll never be the same.
That really made me re-think about my focuses. Since I am a recent graduate, I thought being successful was everything, but I was sitting there hearing someone who was successful and very influential in the industry telling me that it's not all that. Balance your life, and make time for the people in your life. When you think back one day, you won't remember that week where you worked that extra 10 hours, you'll remember the time you had with the people you made time for.
I prefer to take the same approach as the $450k Rails dev and always provide a recruiter with good leads if I have them. I have placed friends in good positions because of this and have the option to do the same for myself when I am ready to do something different.
I'm 22 and from what it sounds like, I' on the route that you were on -- was a PHP dev, got a Rails gig where they'd pay me to learn, and now I'm doing 75 hours a week (60 with my employer, 15 of learning on my own time.) I'm rewriting some of my recent client's projects and a new side project every month in Rails.
But good on you, especially for living frugally. I know a lot of people couldn't do it.
== Background (Combination of breadth and depth across EE and CS) ==
Electrical engineer by education, I am a full-stack "technologist" covering everything from semiconductor device physics to analog/digital circuit design to software (C/C++/Java/Python) to specific application domains (electronic displays, natural language understanding, MEMS/sensors, digital image processing and computer vision, augmented reality, thin-film optics, etc.) I also have experience as a team-lead, project and people manager and lead technology architect. Thanks to Coursera, I feel comfortable with more domains including machine learning, databases, etc., though have limited experience with them.
Needless to say I cannot be an expert with all of the above with just 13 years of experience, but have generally impressed folks in their respective domains who see me as an expert in their domain sometimes without realizing that I am doing the same across several domains. An optics guy with more years of experience than me once asked me thrice about my background in the very same meeting as he could not digest the fact that I was barely an optics guy at all.
== Result ==
Within any given job, it does not take people long to recognize the combination of breadth and depth that I have. But this is still a few months for recognition within the team (scale of 5-10 people) and a few years for within the company/department (scale of 100-300+ people).
Moving to a new job brings its own challenges. While everyone who knows me tells me that I should be in high demand, most of the jobs do not demand that broad an expertise, which often means (1) they are not ready to pay :-) for it, and (2) the job does not excite me enough. There are architect-level jobs which are an ideal fit but they are not most of the jobs statistically.
My salary levels (including cash bonus/stocks) have gone well above 200K per year consistently for my last job in the bay area as they recognized me as indispensable for the project that I was leading (~70 people) due to (1) inability to find people with the needed breadth (generalization), and (2) my being on the specific project for several years (specialization). Note that while I was leading a big team, I was still doing a lot of technical work including coding on a weekly basis.
== Advice ==
Some comments here have advised on generalizing / specializing. In my opinion though they are both bets you are place on your career. If you become industry expert in a specific domain and that domain ends up expanding over the next decade, you end up expanding too. Like everywhere else, you have to anticipate the future and be in the game. So generalize to keep your mind open and prepared for new challenges future can bring, but also specialize in an area that you expect to be in demand in the future.
Two, in my experience, high salaries do not come by themselves (i.e., just by you having the skills and experience). You have to create a path for it consciously by constantly figuring your own potential and (asking for) moving towards roles of higher responsibility. You need to time job switches according to your situation -- becoming specialized in skill needed by one company makes you highly valuable for them (= potential for higher salaries), but also fall in trouble if your project/company does not do good in the future.
Specializations that many companies need that also pay highly would not generally remain specializations for long as more people should pour in -- unless there is some barrier to entry like years of education / experience, them failing to recognize the value of this specialization, or simply aptitude or intelligence. The latter does not show up on your CV and so requires using your network and recommendations, which by itself takes several years to build.
Next to generalizing across a wide set of domains is gaining mild levels of familiarity with them just enough for you to become comfortable with t...
Base salaries above $200K/yr are extremely rare, even for high-level managers in substantial companies. In my experience as an employee at companies both large and small moving beyond $150K/yr base salary in a non-executive role is quite unusual. That doesn't mean you can't or won't earn more than that--it's just that once you get to top levels as either an individual contributor or as a manager companies generally want to align as much of your compensation with the company's performance as possible, whether as bonuses, profit-sharing, or stock.
In my experience as a independent consultant $100/hour or more is readily achievable if you have a reasonably rare expertise (e.g. data warehousing/business intelligence) and a track record of delivering high quality results. I generally prefer charging by the day rather than the hour and have billed as high as $1000/day. While there have been many months I've billed $20,000, I've never billed over $200K in a year, work at that level just isn't that easy to find (at least if you're not willing to fly around the world).
I believe that there is a strong political interplay between these two modes of employment. As a consultant I have more than once been the highest paid person at a company--sometimes making more even than the executives. For short periods of time this doesn't seem to be a problem, but pretty consistently around 5-6 months customers become a lot more conscious of the dichotomy--I'm often working alongside people who earn less than half of what I'm billing. I've had more than one case where I've worked for a customer on an initial 2-3 month contract, had it extended on a rolling basis for another 2-3 months, and then found them very serious about finding a full-time engineer to take over my duties (they often offer me the job but usually it's not a great deal). It's also common for them to call me back for additional stints, including cleaning up problems introduced by my replacement. Even though it would probably just be better to have just kept me around they hit a wall with accepting the pay differential.
Anyone can do it today. I still could. I just refuse to, now.
My advice is to not worry about a magic number, as long as you're comfortable and happy. Nowadays I don't even always hit 100 in a year. But we old guys really do get high off of things other than money. Things like a happy wife, a house full of animals, and a sailboat that goes where the wind takes it.
The biggest lesson I've learned in life is that wealth has nothing to do with money and everything to do with time. You should work to live not live to work. Fortunately for many of us, we love what we do but please don't forget that you're only young once.