Earlier quoted context omitted.
Dealing with people and communication can be learned. I get it. By nature I was very much an introvert except for certain scenarios when I was in my comfort zone until at least my mid 30s. I was an only child, the stereotypical short, fat kid with a computer growing up in the 80s (still short, became a gym rat, part time fitness instructor and only stopped the latter as my other obligations became greater). Horrible…
> But you can only add so much value to an organization typing on a keyboard. In my understanding, non-junior software development jobs never were about typing on the keyboard. Senior software engineer is a fancy name for a problem solver, and code is just a specialized tool they can build to possibly achieve the goal. It always was about talking to stakeholders, figuring out what the heck they actually want today, h…
Junior - you are told what to do (business objective) and how to do it (technical).
Mid - you are told what to do (business objective). But you are expected to use your experience to figure out the “how”. You should be able to lead a decently complicated feature/epic/work stream either by yourself or with others and mentoring other juniors.
Senior - You are expected to lead major projects that involve multiple epics with multiple developers, talk to “the business”, disambiguate, deal with XYProblems, communicate trade offs between time, cost, meeting requirements, etc. Now you also start having to deal with cross team coordination.
Staff - cross team impact, dealing much more with business strategy and setting technical direction.
As an IC, the only things you have at your disposal are your relationships and reputation. Both require soft skills.
Leveling guidelines: