Does having limited ambition make you a bad dev/engineer, if you keep learning new things and contributing quality code at your current level of responsibility?
Does having limited ambition make you a bad dev/engineer, if you keep learning new things and contributing quality code at your current level of responsibility?
Sure, you might have some specialized knowledge or understand system X better than anybody else, but there's diminishing returns on that, hence why you won't get big raises forever.
As you move up the chain, it eventually stops being about your direct technical contributions and about your ability to multiply the value of everybody under you in your org.
I thought that was the whole point of the IC track: putting a technical person into a role where they can be a multiplier without burdening them with management responsibilities.
Every staff/principle/architect IC I've ever worked with has had that kind of positive effect on the teams around them. Their schedules were indistinguishable from most managers, except they met mostly one on one and they could get a senior engineer's worth of work (impact wise) done in between the meetings instead of paying the management overhead.
I don't disagree that principle engineers can and should have a big multiplying effect, but I also wouldn't consider them strictly IC's either, even if they don't have people managing duties.
Pretty much that, except that I wouldn't use the word "stagnate". What I said was "lag behind the cost of living", which might not have been the most concise way of putting it, but I hoped it would get my point across.
Essentially, the conundrum I've faced too often is that if you're not climbing the ladder, the purchasing power of your salary will start falling, even if your salary rises, because the raises you get reflect the lack of regard the company has for people who aren't climbing the ladder.
Stagnation, for me, would be to stay at the more-or-less same purchasing power. And I would be fine with that.
This will forever strike me as a post hoc rationalization for justifying salary increases when the truth is that the salary increase is just a natural outcome of being granted institutional authority. This is the most visible with the CEOs that fail being given absurd bonuses and then justifying that as necessary to attract top talent. The people that are value divisors are still given huge remunerations precisely because of the position, not because of their impact.
To the exclusionary aspect of the idea, unless your employees are being micromanaged then a large part of their work is discretionary. If they are not being kept in the dark and are not working alone then a large part of their work is also collaborative. Putting these things together, your good employees will field requests from other teams, prioritize them on an ad hoc basis, connect dots and report opportunities amongst themselves: solving problems that influence many more customers than the direct ones they work with. Promoting them will move them out of the circle where they learn about these situations on the ground. Instead of multiplying your capabilities, you may end up dividing your people by removing a key communicator from the employee social network when you promote them. Potentially, everyone recognizes there is a problem, but the problem solver role is a vacuum. Worse if nobody is able to recognize there is a problem now that the person who was able to recognize it is faced with different challenges.
Institutional authority is not isomorphic to collaborative potential (or any general notion of work multiplication). Personal authority, respect, cooperation, skill, insight, all kinds of things can make a person's individual contributions many times greater. All these things are independent of institutional authority and the actual use of institutional authority will almost always come off as a cheap form of insecurity: "Do it because I'm the boss."
The truth is that it is easy to create a hierarchy and challenging to measure impact.
If you're happy with where you are, and happy with your salary and status, then it's fine to stay there! Certainly, as you say, continue to learn new things, make quality contributions, and get your work done.
Many companies will have what they call "terminal levels" for individual contributors (most probably don't really advertise this unless you specifically talk about it with your manager). The idea is that you can work at a level where you can get your day-to-day work done with minimal guidance, even if you need guidance on the bigger picture stuff (like what you should be working on, and why). You should certainly talk to your manager about this, if you feel comfortable. And if you don't, and/or they keep pushing you to climb the ladder further, then yeah, you should probably find a new gig.
One caveat: ageism is still an unfortunate thing in our industry, and as you get into your 40s and beyond, if you're still "only" a "senior software engineer", you may have trouble getting new jobs.
Companies don't want to get stuck with people who are perpetually "junior" and need a lot of hand-holding to get their jobs done. That's of course ok for a while someone is learning and growing, but if they aren't growing out of that, they're a liability and time sink. But once you're past that point, you should be ok. The only problem is if you end up at a weird place where no one wants to progress up through staff/principal/architect/fellow, in which case I wouldn't be surprised if everyone starts getting pressured to up their ambition. But that sort of scenario seems somewhat unlikely?
[0] Well, unless they are in your immediate family and your lack of ambition is putting their livelihood at risk in ways they can't mitigate. But I'm assuming that's not the case here ;)