The worst part is that after a point in your career there's no path to promotion just for doing your job really well. You are expected to always take on new roles and responsibilities, some of which may not be suited for your personality or interests, and the net result often is that you get promoted and make more money but your overall useful output decreases. I know so many amazing engineers who had to essentially give up writing code, prototyping and tinkering – stuff they were really passionate about – to advance to staff+ levels. Now their time is spent in an endless stream of meetings, and the entire organization is worse off because of it.
Some companies have a concept of “terminal levels”, which means if you get to this level and keep doing a good job and have no desire to keep chasing promos, that’s totally fine and they’ll keep increasing your comp according to your value, which does increase as you stay and accumulate institutional knowledge, experience, and reputation (and owed favors, political connections, friends in senior places, accomplishments under your belt, etc etc).
If this is your path I'd strongly recommend tenure in a core revenue generating project. Avoid projects in cost centers, especially those that serve small / non-critical business needs or have potential off-the-shelf replacements that could be purchased and integrated into the business. Don't assume that leadership will be rational about replacing an internal system with an off the shelf one, if someone comes along with a mandate for change all bets are off.
Don't assume you can rely on political capital when your area of work is being turned down, odds are there are a dozen other people that are trying the same thing. Leadership would likely want to retain lower cost junior employees with the rationale that they have potential in addition to being cheaper.
All good advice. I’ve made a career out of never assuming the good fortune will last. Sometimes your standing is rooted high enough to be above the reorg; sometimes it ain’t.
But it's also a Faustian bargain that many engineers knowingly enter into. They are trading their professional coding passion in for more money and status. For some, this isn't much of a loss. For others, it is. It really depends.
I just went from Midwest money to Bay money without moving out of the Midwest as an IC. I'm basically set for life and I know I don't want to be a people manager. Maybe someday I'll be staff/principal but I really don't mind sitting at a terminal level slinging code.
You have the choice of managers knowing what the job is or managers that have never done the job. In general managers that know what the job is are better managers.
True, but there should always be a rewarding progression for someone that doesn't want to be a manager or change role. Because if the only rewarding path they see is to switch employers -or get counter-offers to try and get their wage bumped, then that's a problem. It's also a common theme for companies to be forced to give higher wages to new-hires, leaving their own veterans (that are actually more valuable) behind.