If you’re not a Microsoft engineer and you’re not interested in finding a new reason to bash Microsoft, save yourself some time and skip this column. If you want to know how to build your skills and systematically grow your career as an engineer at Microsoft, read on.
I’ve been managing Microsoft engineers for nearly 15 years. I’ve worked for eight different organizations and more managers than I can recall. While every manager and organization has its own take on promotions, there are some basics everyone follows. Those basics are documented nowhere, until now—right here.
Why am I giving up these “secrets” to getting promoted? Because they aren’t secret. My peers all know them, and I’ve always told my employees this information. After hearing it, my employees all ask, “Why isn’t this written down?” I could speculate that HR is too scared to make it simple, that engineers are too precise to generalize, or that Microsoft organizations cling to the notion that they are each special and unique. Whatever, I don’t care. I’m just going to tell you.
It’s ten years later (May 2020), and while this popular column remains relevant and accurate, a few things have changed in our review system which I’ve updated in Eric Asides.
Most Microsoft engineers know there are six career stages, each with their own Career Stage Profile (CSP), but don’t know what differentiates one stage from the next.
- Entry level (e.g., SDE I)—you’re straight out of college. Your education hasn’t prepared you to work in a professional team environment with money on the line and customers that aren’t figments of your professor’s imagination. You lack experience.
SDE stands for Software Development Engineer, which we’ve recently shortened to Software Engineer (SWE). There are similar stages for the other engineering disciplines.
- Independence (e.g., SDE II)—you can code up anything your lead asks of you. Period. If you don’t know how, you know who to ask, or who to ask who to ask. This is the last time you’ll be differentiated by your coding skills.
- Team leadership (e.g., Senior SDE)—you influence the rest of your team of roughly 3 – 12 engineers. You influence them as their managing lead or as their technical lead. Either way, your impact extends beyond what you can do alone.
- Group leadership (e.g., Principal SDE)—you influence the entire group of roughly 12 – 80 engineers. You influence them as their discipline manager, group manager, architect, or core technology guru. Regardless, you have become a key person in your organization.
- Organization leadership (e.g., Partner SDE)—you influence the entire organization of 80 – 500 engineers. You are the discipline director, general manager, partner architect, or core technology worldwide expert. You have become a partner at the company.
- Industry leadership (e.g., Technical Fellow)—you influence the entire division and with it the entire industry (from 500 to millions of engineers). You are the distinguished engineer, technical fellow, or vice president. Money is probably not a concern of yours anymore unless you have a serious gambling problem.
How do you get promoted from one stage to the next? Let’s take that a stage at a time.
Entry level (e.g., SDE I)
To get promoted from entry level to independence, you need to become independent. Duh. It will likely take you two to three years, depending on your past experience. Don’t try to save the world. Don’t try to impress your vice president. Do your job. Do it well. When something is broken, fix it. Show your manager and your peers that you can handle assignments and get past roadblocks on your own.
Handling assignments on your own doesn’t mean doing so in isolation. It means knowing what questions to ask, who can answer them, and how to get the answers. Even the Lone Ranger had Tonto. (I’m dating myself.)
A few years after this column first posted, Microsoft built collaboration into our review model with the “three circles of impact”: individual accomplishments, contributions to others, and building on the work, ideas, or effort of others. These days, if you code something from scratch that could have been built on others’ work, it hurts your review. If you contribute your code to other projects, it benefits your review.
Often career stages are divided into two levels (in Redmond, SDE I has levels 59 and 60). You’ll get promoted to the second level (level 60) after a year or two if you show progress toward independence. You’ll get promoted to the next stage (level 61) when you actually are independent, assuming your team hasn’t run out of promotion budget.
A common failing at the entry level is complaining instead of solving, aka whining. The world is a messed up place. The workplace is no different. No one else is going to fix your problems. If you’ve got an issue, then propose a solution to your manager and peers and, ideally, implement it. Otherwise, live with the problem and quit your whining.
Independence (e.g., SDE II)
Now you are independent. You can handle any individual assignment with little direction. You still ask plenty of questions and keep your manager informed, but you are the initiator. No one has to tell you what to do.
Why must you be independent before you get promoted into the independence stage? Microsoft wants you to be successful. If you are promoted and fail at the next stage, Microsoft has lost a valuable employee at the previous stage. Demotion is not an option because it kills morale and motivation. So, you only get promoted when Microsoft knows you’ll be successful at the next stage, which is when you’re behaving as if you have already been promoted.
Microsoft expects every engineer to become independent and a team leader, either organizationally or technically. That means you are expected to make it to the team leadership stage, typically after three to five years of independence. If you don’t, you’ll likely be managed out of the company. You can’t plateau as an independent engineer at Microsoft—you need to influence your peers at least at the team level.
When you have established that you are fully independent, regardless of the assignment, you’ll get promoted to the second level within independence. When you are influencing your peers and demonstrating sustained leadership (for 6 – 12 months), you’ll likely get promoted to the team leadership stage.
Switching managers and groups often impacts time between promotions because your new manager will not know how long you’ve been displaying leadership skills. There are a couple of actions you can take to avoid resetting your promotion timetable every time you switch groups or managers:
- Ask your old manager and new manager to discuss your current leadership skills and how long you’ve been demonstrating them. This is different than asking for a promotion—you are simply encouraging a smooth personal development transition.
- If you are going to switch groups and managers, do so within a year or two after being promoted, ideally with the blessing of your current manager. Switching then won’t likely impact your next promotion.
For more on reaching the team leadership stage, read Individual leadership.
Team leadership (Senior)
Sweet! You’ve made it to team leadership. That doesn’t necessarily mean you’re a people manager. It means your impact extends beyond yourself and your own work. Your influence guides the work of your teammates (for example, mentoring, setting the example others follow, making broad design decisions that stick, and establishing quality practices that stick).
From here on out, your coding skills no longer differentiate you from your peers. Everyone has great coding skills when they reach the independence stage. Now, your encouragement and influence skills set you apart. Soft skills. There, I’ve said it. You’ve got to apply all that written and oral persuasion crap you reluctantly muddled through in high school and college.
As for promotions, when you show occasional broad influence within the entire group, you’ll likely be ready for advancement to the second level within team leadership. When you regularly and sustainably (for 6 – 12 months) influence the entire group, you’ll be ready to reach the group leadership stage. Both promotions can take many years. There is no longer an expected timeline, and no guarantee of a promotion. It now depends on business need and ambition, as well as ability.
What about managing cross-team and cross-division dependency relationships? Isn’t that group leadership? No, it’s not. Managing relationships across teams and divisions is part of your regular job. Even entry level engineers need to become good at it. However, when you start influencing strategy and systems of other teams and divisions, you have graduated to group leadership.
I explain the lack of a guaranteed promotion to group leadership in Confusing promotions with rewards. I discuss becoming a group leader in Solving the whole problem. I help you get noticed in You don’t need a publicist. Finally, I cover when you’ve gotten high enough in Permanently high plateau.
Group leadership (Principal)
Wow, you’ve made it to the group leadership stage as a discipline manager, group manager, architect, or core technology guru. Congratulations, that’s a big, difficult step. You got here by thinking and influencing outside the confines of your team.
Influencing a large group necessarily means influencing strategy and systems. I’ve written many columns on each, in particular Controlling your boss for fun and profit and Lead, follow, or get out of the way. It means thinking big and setting a vision. It means less following, less critiquing, and less complaining. Instead, you step out in front and lead toward your vision. It’s scary to stick your neck out, with no one else to cover you. That’s what makes you a leader.
You can be promoted to the second level within the group leadership stage simply by establishing yourself as a strong group leader. However, getting to the organization leadership stage is far more difficult. The company doesn’t need many organization leaders. Very few engineers make it past the group leadership stage, so ambition begins to affect your continued advancement. This is true of any sizable company.
There will be peers of yours who have ambition. They’ll be willing to live overseas, work on unattractive projects with difficult people, travel frequently and at a moment’s notice, be on-call at all hours, and make other sacrifices that you may not be willing to make. All other things being equal, an ambitious person will win because of this willingness to do whatever is asked to reach the next stage. If that doesn’t sound like you, be prepared to plateau at the group leadership stage. You might make it further, but ambition is a key element.
For a clearer sense of being ready for the upper level within any stage, consider your manager’s sense of risk. When you’re new to a stage, you lack the associated experience and thus there’s added risk. Good managers will provide support and guidance to help you grow and reduce the risk. When you’ve demonstrated enough comfort and success in the stage that you’re no longer a risk, you’re ready to be promoted to the upper level.
There are three levels within the group leadership stage. Readiness for the third level is basically readiness for organization leadership without the full business and budgetary commitment of the company. You’re on the so-called “Partner bench.”
Organization and industry leadership (Partner or higher)
As an organization leader—a discipline director, general manager, partner architect, or core technology worldwide expert—you have become a partner at the company. You have special meetings with Steve Ballmer and the executive staff. You get special stock plans and perks because you are responsible for business results as well as work results.
You also are expected to give back to the company. This can mean being moved onto projects that need your expertise, even if you’d prefer to stay where you are physically and organizationally. It can mean being involved in leadership development programs for group leaders, other partners, and new senior hires. It can also mean bumping up against other leaders just as ambitious as you. At this point, you are a grown up. You should be able and willing to handle the politics.
Things only get more competitive to become an industry leader—a distinguished engineer, technical fellow, or vice president. You must be world-famous and the voice for a major business that you helped create. Clearly, ambition and business opportunity play key roles in reaching this stage. It’s not just about being smart. Everyone who reaches the team leadership stage is smart. You’ve really got to persist and persevere, doing whatever is necessary, if you plan to be an industry leader.
For more on being an organization and industry leader, read Making the big time.
Set your course
If you haven’t realized it by now, career development is a series of choices—choosing to work independently, to influence your peers, to think strategically, and to be willing to make sacrifices. How far do you want to go and what are you willing to do in order to achieve your goals? Those are the key questions you need to answer.
Your career is yours. It belongs to you. Mentors can guide you. Loved ones can support you. But in the end, you own your career. Decide what you want to be. Decide what makes you happy and fulfilled as a whole human being. Accept those choices, set your course, and pursue your dreams. Make it so.
thank you very much for this interesting article! Just for the fun of it: what stage (may be even the level) are you on?
Sometime it is non-sense. The perfect world is like in this article but the world is not perfect, neither MS.
Which level is Bill?
Thank you for publishing this.
I don't know the reason why this hasn't been published before, but this is hardly the first time that Microsoft has deliberately withheld critical career information from its own employees. There are many employees that don't know Microsoft is an "up-or-out" company (i.e. either you move up the corporate ladder or you're out). Additionally, there are many employees who have no idea about "promotion velocity", which basically means that the longer you are at a specific level, the harder it becomes to get promoted, regardless of what work you are currently demonstrating.
Employees who do find out about the things listed above as well as your article sometimes find out by becoming a manager and get exposed to the inner workings. Non-managers typically find out via a manager or co-worker who takes them aside in a closed door meeting spoken with hushed voices. There are groups some groups that are open about these issues but from my own personal discussions with many past and current employees, such groups are unfortunately an exception and not the rule.
Eric, thanks a lot, this is very helpful. You are absolutely right — we kind of know how it works, but this is just plain English. I will definitely use this during the review discussions with my team. Thank you.
Eric, thanks a lot, this is very helpful. You are absolutely right — we kind of know how it works, but this is just plain English. I will definitely use this during review discussions with my team. Thank you.
Eric, Thanks for writing. I had seen such blogs, but this was very straight forward, as said in other comment was in plain english.(although the roleposition just varies in other organisations)
Does Manager have influence over any developers? both positive and negative aspects?
This model for being promoted is unfortunate because it underestimates the requirements
of mastery, undervalues the contribution of technical mastery to MS success, and deprives
Microsoft of truly tapping into one of the most important motivators for programmers: the drive
to obtain technical mastery. It is a sad state of affairs when at the Senior band for
Software Design Engineer, it can be said that your coding skills no longer differentiate
you from your peers. It is delusional to believe that, in general, SDEs at the
Senior band are master coders. In general it takes 10 years to become an expert in
something (read Norvig's Teach Yourself Programming in Ten Years, or any number of other
research articles on the subject). The constant, droning message that SDEs they need to
focus on showing leadership and making an impact takes focus away from the one
pursuit that gives folks genuine opportunity to have both meaningful impact and a satisfying
long term career in the field: become a great programmer. Great programmers are neither common
nor a commodity.
I've been a manager at Microsoft for a long time. While I agree with some of these things, I disagree with many of them. For example, to Danroth's point, I know (and have managed) partner level people that are differentiated by their coding. technical skills will always be a differentiator.
I also strongly disagree with the characterization of what it means to be 20/70/10. In my mind, 20/70/10 is just math — it doesn't tell you anything about a person. Not their skills, Not their future, Nothing. It tells you were they fit in a stack and if you know something about the person, you can tell something about the stack. For example, take a group of people that have been in the 20's for the last 5 years. Now put them all in one group and decide (forget the logic of why you'd do this…) to curve them all together. What can you say about the bottom 10 in this group? Nothing except "wow, that shure is a tough set of people to be curved against".
All that hierarchy looks so clumsy! Esp. “Industry leadership” – where is at least one example of MS “invention”, affected a whole industry?? Everywhere they copy (or buy) and even copying they do LATE. Now even worse – MS slowly kills itself with idiotic idea “desktop + mobile = mix of hell knows what”. Who is “inventor” of that self destructing? Who name him “leader” and for which capabilities?? Funny, heh…
I agree that we need not so much “levels” for people writing code, but NOT TWO, dude! At least 4 stages of maturity I can distinguish clearly. Anyway, nothing helps MS now – they lack real leaders like BG and SB. Yes, Ballmer was a bit funny, but way smarter than Nadella. Hope MS will be bought by more advanced company.
There are more number of on-lookers or delegators of work than the number of people who actually does/execute it. As someone said, “Great programmers are neither common nor a commodity.” If it is so simple, why not every Manager at-least spend 10% of their time in doing it. The fact of the matter is, it is not that easy to sustain long doing so.