I have been contemplating jumping ship from Python / C at a small company to Enterprisy Java at medium to large corp.
This comes after the realization of having no visible career path despite being good and working hard and most friends (Java / C#) jumping to $150k+ jobs.
Thank you, responses would really give some helpful insights.
Also, independent contracting is often a better option than employment in most parts of the country, but you have to be independent (1099-MISC, never W2). Being a W2 at a consulting company is just as bad as anywhere else. Independent consulting will get you a 2x bump instantly assuming you can find a full time gig but that's usually not that difficult. Furthermore, as a 1099, you'll be able to put away far more in retirement savings. I recommend an LLC with a 401K (not SAP), max out your personal contributions and then kick in another 6% from your 'company'. You'll be socking away ~50K in retirement alone this way while lowering your taxable income. Compare that to your 16K/year max as W2.
Another trick: if a company ever offers you a larger than usual bonus for some reason (i.e. retention, goal met etc) leave the next year when it shows up on your W2 and ask the next employer to merely 'match' your current W2 without breaking out base salary and bonus. I've scored 50% pay increases this way.
Following the above methods, I was making $180K+ at my 8 year mark and $230K+ at my 12 year mark. Most of this happened in the midwest although I currently live in the bay area.
I am really trying to understand how someone is worth $230k+
I am a server-side guy with a CS degree, proficient with C, C++, Java, bash scripting, and some .NET, PHP, Node.js, and I have never gotten close to even $180k in salary, and I have been working for almost 20 years, and I am in the Bay Area.
As you grow in seniority, frequent jumps start hurting you.
Unfortunately, I have failed to see such jumps in compensation for offers that I received, but I'll admit, I haven't worked with most buzzword technologies (eg: big data).
Got 90k job out of college in NYC. Worked on a legacy PHP app with some Python, Java, Hadoop occasionally in there.
Negotiated salary to 100k + 10k bonus after one year and good performance reviews.
Next year asked for a bonus increase. 120k total now.
Started getting bored at the job. Asked around, got a 135k offer from another company. Went to my current employer and said if I don't get 150k I'm leaving. They said they could do 140k. I went back to the other company and told them their offer and they gave me 150k.
It has less to do with skillset or language choice than it does with just being able to negotiate and iterate on offers and take the opportunity when you can.
Sometimes when you are in a strong position, you gotta bluff. If they call it, then no worries as you have nothing to lose. If they don't call your bluff, you may just have got a $15K raise :)
Sorry for not mentioning what areas I had in mind. I was talking about friends in Dallas, Atlanta, New York and Raleigh among others.
We are talking 5-8 years of experience.
I have seen and tried to follow the advice in this thread and it has not worked out.
Maybe I'm doing something wrong, or I'm just not good enough yet. I get a lot of interview calls, but the salaries offered are nowhere in the ballpark of $150k.
Also, every friend of mine, that I have spoken to, is doing either Java or C#, none that I know mention Python. When they offer me referrals I politely turn them down due to lack of experience in the Java and C# stacks.
I'm not a ninja or a rockstar but I get work done. My current role is one that requires me to learn all sorts of new things and thus my resume is a splattering of all kinds of skills.
I just want to stop worrying about my future and focus on enjoying family, hobbies and hobby projects instead. (But then who doesn't?)
It would also help me greatly if people could mention if the advice being given has worked out for them also.
I don't want to sound mean/ungrateful/rude, I really do appreciate all the help.
I'm a Java guy, but I can only work remotely (as I'm from Romania/EU), and it seems all the job posts are either Python or Ruby.
Too bad we can't trade jobs.
Scott Adams talks about how one can dramatically increase their odds of success by learning multiple skills. You might imagine adding languages to your skill set is a smart play. Learning the Art of Negotiation on top of those skills is a force multiplier.
Incidentally, Adams book is a brilliant read, full of solid, unconventional career advice > http://www.goodreads.com/book/show/17859574-how-to-fail-at-a...
I ended up doing Groovy, then Java, and now I'm in the government version of "Enterprisy Java" and I feel stuck myself. 150k isn't that much if it leaves you empty inside.
Doesn't that 150k lets you afford other fun stuff?
I think my stuckness has more to do with working at a place that's always a few steps behind the private sector, so nothing I'm doing really translates well into finding new work. It doesn't help my confidence, that's for sure.
Besides, if anyone is looking for an experienced Java 7, Spring 3.2, Oracle dev, I probably don't want to work there either!
I know the way out is side projects, building a portfolio, contributing, etc.. and being able to prove (to myself too) that I can do more than what I'm doing currently..
It's the odd coupling of frustration and complacency that I need to figure my way out of.
That said, due to its high cost of living, $150K isn't that outrageous in San Francisco. You can use online cost of living adjusters to see what the equivalent salary would be in areas you're familiar with.
Living and making $90k in Atlanta is the equivalent of living and making $150k in San Francisco.
http://money.cnn.com/calculator/pf/cost-of-living/
Anyways, like other people have mentioned timing can be very useful. In trying to leave I was offered raises and from one guy a chance to take on whatever role I wanted to. Still leaving though.
Most programers will tell you that the pay scale in software is like a hockey stick curve. Up really fast then flat line. Therefore, you move to the top of the S curve and then stick around long enough to approximate O(n).