This subreddit is responsible for answering questions about careers in Computer Science, Computer Engineering, Software Engineering, and other related fields. Respect the reddiquette, and reserve this space for questions concerning careers and degrees only. Please keep the conversation professional.

I'm an upcoming college grad, and I'm starting out at a successful start-up in the midwest. I'll be getting about $83k in total cash compensation my first year, not counting stuff like 401(k) matching, which seemed like a good offer for the area. However, I happen to know that good engineers in Silicon Valley can reach up to $200k in total compensation with about 10 years of experience. Now I don't expect to see numbers quite that high in the midwest or south, but I'm curious what sort of progression I realistically can expect here provided I stay at the top of my game.

Everything I read says that the worst thing you can do as far as compensation goes is to just work for the same place year in and year out and accept the raises they might give you. My employer says that they give very good raises, but I won't know what that means until I've finished a year there.

I read a post on Hacker News from a guy who said he averaged a ~19% raise every year for five years or so by essentially always being on the job search and leveraging new offers every year to get raises from his current employer. He seemed to think this was standard. It clearly worked out great for him, but I do wonder if you could aggravate your employer if you came to them every year saying, "hey, I've got this other great offer..." Am I being too nice or is this something I should seriously consider in this competitive market place?

Another issue I face is that there aren't too many good software places where I'm at. This isn't like Silicon Valley where start-ups are a dime a dozen and you have legends like Google and Facebook. There are no legends here and start-ups are rare. As far as I can tell, there isn't a cooler place to work in the area than the place I've taken an offer at. Another thing is that I really don't want to move to Silicon Valley, at least not at this point in my life, as that would mean abandoning my SO, who wouldn't be able to follow me right now. Plus I like the area I'm in anyway.

Wow, $83K/yr, entry level, in the midwest? Maybe life is different in startups, or you're in Chicago or something, but that's a lot of money over in Pittsburgh. That's 10-year veteran money.

Over the course of ten years, I've basically quadrupled my income. The most money I made in the shortest period of time was when I got serious about contracting. If you're in an area that's not a heavy It area, that's one of the best ways to make the big bucks. It's also a gigantic pain in the ass.

The biggest piece of advice I have regarding salary, though, is this:
Your income is not your score at the game of life. Look at the life you have, and the things you'd like to have and do. Figure out how much that costs. Negotiate/work your way to that salary.

My experience is years old and in a totally different region of country. I haven't done any contracting in Pittsburgh.

When I did it, I had already built a big network with a bunch of state offices in Albany, NY, and was able to get a lot of work that way. The lions share of my work was for a single main client- a training company. I was a contract trainer, and I was making a lot more- a LOT more- doing contracting. In a good month, I could make about 1/4 of my annual salary when I was salaried. But that was a good month.

The biggest thing to keep in mind about contracting is that it's either feast or famine- you might have a really busy month and then everything dries up. The start of a new fiscal year is always terrible, as everybody's trying to be misers with their budgets. The end of a fiscal year is great, as everybody's trying to burn out their budgets.

The variability of income is the main reason you want to increase your rate, and yes, 4x what you'd expect while salaried is a good starting point, if you're working independent. If you go with a contracting firm, you won't be making as much, but they'll do the leg-work of finding contracts and making deals. If a contracting firm likes you, they might even put you on "the bench"- they pay you even if you don't have work, because they don't want you wandering off.

The one thing you need to remember is that contractors have to be able to go where the work is. When I did some work for NYS, it meant traveling all over the state. When I worked for the training company, it meant bouncing around between various locations across different states.

I'll be getting about $83k in total cash compensation my first year, not counting stuff like 401(k) matching, which seemed like a good offer for the area.

I don't know what you do or how good you are at it, but that's a healthy starting salary by just about any measure. When you figure in cost of living differences between the mid-west and Palo Alto or Menlo Park, you're making Facebook quality money.

Everything I read says that the worst thing you can do as far as compensation goes is to just work for the same place year in and year out and accept the raises they might give you.

Well, the worst you can do is not understand your market value and just accept the raises they give you. But if an employer is meeting or beating your market value, then it's not so bad. There is something to be said for moving around, but I wouldn't abandon a good situation just for the sake of moving.

My employer says that they give very good raises, but I won't know what that means until I've finished a year there.

Nobody says they give shitty raises. It might be too late, but I don't hesitate to ask what a standard raise looks like at a company if they dangle the possibility of a "good" raise in front of me.

I read a post on Hacker News from a guy who said he averaged a ~19% raise every year for five years or so by essentially always being on the job search and leveraging new offers every year to get raises from his current employer. He seemed to think this was standard.

Depends on what your starting salary is I suppose, but in general I think it's crazy to expect that you'll increase your earnings by 20% year over year for very long.

It clearly worked out great for him, but I do wonder if you could aggravate your employer if you came to them every year saying, "hey, I've got this other great offer..." Am I being too nice or is this something I should seriously consider in this competitive market place?

This is fine and to be expected so long as you don't go crazy with it (once a year is fine; once a month is not). The thing is, if you walk in there and try to leverage another offer, you need to be ready to walk if they won't meet/beat. And sometimes they won't. If you're bluffing and they call it, Monday morning is pretty awkward.

Another issue I face is that there aren't too many good software places where I'm at. This isn't like Silicon Valley where start-ups are a dime a dozen and you have legends like Google and Facebook. There are no legends here and start-ups are rare.

I wouldn't worry too much about "start ups". They get all the headlines, but most of them are shitty. They typically have bad management (often including bad financial management), low job security, and most of them fail. I mean, evaluate on a case by case basis, but I mostly consider being a "start up" as a liability, not a plus.

Am I being too nice or is this something I should seriously consider in this competitive market place?

In my opinion, the key to negotiating like this is not to do it unless you really intend to take the other job if your manager declines. If it's a legitimate career move, your manager will understand and appreciate being given the chance to retain a valuable employee. If they can't do it and you still stay, though, you look like a jerk and your career (at least with that manager) may suffer. Which is not to say that you should accept and be happy with whatever pittance they'll throw at you, but you're better off pursuing raises via more honest means than threatening to leave.

As for your realistic potential. That's really hard to say... if you're awesome and in a high-margin / high-risk industry then you'll make more. Also, the midwest is pretty diverse. You didn't say where, but expect to make more in Chicago than Green Bay (for example).

If you can make a name for yourself, you might always look to work remote.

I heard a statistic that the vast majority of people that successfully negotiate a raise by leveraging a competing offer, end up leaving the company within a year anyway (even though the boss agreed to give them a raise).

I also heard that employers know this, so if an employee attempts to negotiate that way with them, they will often tell the employee to go ahead and take the better offer. Then, the employer will hire a replacement at a lower (starting) salary.

Now, this is all just based on stuff I've heard, not my personal experience. However, it strongly supports your advice (to be ready to take the competing offer).

Stuff I learned, or think I've learned ...
Salaries can be lucrative without going to the valley, especially when factoring in cost of living. My house costs a 1/5 what an equivalent house would be in the valley.
In some ways it can be easier to negotiate in the midwest, there are 1000s of smart programmers competing in the valley, but how many are there in your town?
Save the money while you can make it, because there's no guarantee its going to last.
Check out the market and see what skills are in demand.
It's not just what you know, but what you can convince people that you know.
You can never stop learning if you want top salary, just learning a technology that is gaining momentum before anyone else does can be lucrative.
Learning niche technologies can also earn you top dollar, but you don't want to get trapped only having experience in something that is dying or dead.
Consulting will make you more money, but hinders you in climbing the corporate ladder.
Most people I know, burned out on consulting at some point.
Quite a few people burn out on coding.
Most people I know are forced to either take a management path or a technical path at some point, choose wisely, once you choose a path it's hard to go back.
If you are the corporate climber type guy, then management can be more lucrative overall.
I still love to code, so I took the technical path, it gets harder to convince people that you know what you are doing when you get older. Everyone wants a rock star, but they're thinking more Adam Levine than Mick Jagger.
On the plus side I feel more secure because I've never seen people saying we need more management, but every place I've been needed more programmers.

$75k for entry level is good pay, and it's even better in a cheaper area like the Midwest. I'm in southern California, 10 years out of college, and make less than $60k, due to not knowing my stuff and being complacent.

I actually pay rent that's high even for SoCal and eat out often. I'm getting by and have a lot of money in my savings account (that increases very slowly) because my parents still give me money. I also don't owe anything.

If you're willing to walk the walk, you could play hardball with your employer and reference other offers / market wage in your area. This will be less and less likely to work if you're already above average pay. My guess is the Hacker News guy either inflated his numbers a bit (after all, this is the internet), and/or started fairly low on the ladder.

You do get better pay by switching jobs, but you don't want to switch jobs too often. When I see a resume with several positions in a row for a year duration or less (excluding internships, obviously), it raises a few flags to me - Why did nobody else want to keep this guy? Is he likely to leave on us just as fast? Etc.

Since $75k + bonus isn't a bad salary at all in the midwest (depending on where you're at, but even in Chicago it'd be decent), I'd say stick with it for a couple years and try and rack up extra bonuses and merit pay. At the 2-3 year mark I'd start looking at what else is out there.

I'm actually am in a similar boat. I'm graduating in may, already hired to work at a local campus of a multinational tech giant. They're paying a bit over 2x the local median household income, and substantially more than my other local prospects, so ill be able to save/invest a huge portion of my income. They're supposed to be pretty good about raises too, but they're basically the only show in town. Still, in absolute terms, I'm starting at a somewhat low pay grade compared to a more competitive job market like Silicon Valley.

I kinda wish we all expressed salaries as f(x) = x - c, where c is the cost of living in whatever town.

Now those are good salaries! Here in Spain cost of living is relatively high, and usually the progression is: Long internship for $13k, then first job if you're lucky for $27k entry/junior level. With more than five years you can get to around $40k, and depending on the field/company if you're good with a lot of experience around $48k.