FMPOV a senior is comfortable with:
- understanding (most of) the business.
- understanding (most of) the technology.
- relatively good communication skills.
- being able to deliver.
- writing nice code (this is subjective and possibly not empirically true, there are probably many seniors who do not necessary write good code)
It seems to me that many devs, after 3 or 4 years in a place get into a stagnation point where they look for new challenges.
What else can be done?
I think many companies (including mine) offer the "communicator" grow path. Where your role is more about talking/being a guru, but what if you are a good engineer and want to continue doing that?
Does anyone have ideas over this topic?
Thanks
Individual Contributor:
=> Lead or Principal Engineer => Staff Engineer
=> Architect => Senior Architect
=> Site Reliability Engineer => Senior Site Reliability Engineer => etc.
Management:
=> Engineering Manager => Senior Engineering Manager => Tech Director => etc.
Process:
=> Technical Program Manager => Senior Program Product Manager => etc.
=> Developer Advocate
Business:
=> Product Manager => Senior Product Manager => etc.
=> CTO at a startup (team of 10 or less)
Any time a Senior Dev comes to me saying they want to grow, I asked them a very simple question: what do you really want?
It's a simple question, but the majority of them can't answer it. They don't know what they want. They just see colleagues get promoted left and right and have FOMO, so they panic and think "I have to push to be promoted too, let's become a Principal or Architect!"
So first, it's about helping them figure out what they want: is it more autonomy, or a larger scope, or weight in the decision making process, or owning a full tech scope in a small environment, etc.?
Once you know what they want, then you can plan what positions they can start targeting, and from there you can identify which skills they have to improve and which projects they have to get involved in to build credibility and get hired for it.
From my experience, the skills they have to develop end up being the same regardless of the job targeted: interpersonal communication, politics, business acumen, negotiating, public speaking, and so on.
What path to follow is a decision you have to make.
- Keep doing all of that, plus level-up all your co-workers
- Learn other things, write about them
- Change areas: Front-end -> Backend -> Infrastructure or Tooling
- Lead (technical) projects with small teams
- Find companies with a concentration of amazingly capable developer to work with and learn from
If the company is open for R&D and experimentation, then you can pitch an idea, which ideally aligns with company business, and get an approval to implement it yourself or with a bunch of teammates.