Promotion process at Microsoft (FAANG)

Posted by : on

Category : Software Engineering Life


What we are going to talk about

I have been working for Microsoft for 2 years already, previously I worked for different outsource companies (in total about 4 years). Today I’m going to talk about the promotion process and why PROMO IS BROKEN in such big tech companies like Microsoft and all FAANG (Facebook, Amazon, Apple, Netflix and Google).

Just to mention: when I’m speaking about big tech companies I will refer to FAANG.

Disclaimer: since anything we are discussing might be the subject of NDA - everything I’m speaking about IS NOT about my current working company or any other companies I was working for. It comes from my imagination and dreams (no).

I also recorded video about it on my YouTube channel, so you can listen to it, instead of reading this article:

FAANG companies interview

The interview process in FAANG is pretty hard to pass, and hard to prepare compared to outsource companies. I had interviews at Microsoft and at Amazon, and they are pretty similar.

The main part of the interview is called the “interview loop”. This is a bunch of interviews (4-5) that are coming one by one during the day. Before it you most probably will solve some easy “leetcode” questions online, and maybe 1 pre screening interview with the hiring manager.

The hardest part is this interview loop, because it consists of the “leetcode” question, system design, OOP and behavioral questions. For me it took about 2-3 months of preparation.

Outsource companies interview

In outsource companies the interview process is quite different.

Usually it is just 1, maximum 2 interviews. Mostly it consists of “knowledge checking” questions. Basically, during 1-2 hours the interviewer asks you questions from different areas: databases & storages, networking, TCP/IP stack, testing, SDLC, algorithms & DS (theory only), design principles. Since I was .NET software engineer the biggest chunk of questions was addressed to .NET / C# internals: async/await, multithreading, GC, etc.

I almost never had algorithms coding part as in FAANG companies, or just at least coding part as well as system design, even for Senior positions. I personally think there is pretty big inflation of titles in outstuf/outsource companies, but it is not a topic for today.

Outsource companies promotions

You might check my LinkedIn, I have worked for 3 different outsource companies before Microsoft.

The process of promotion was the same everywhere: you need to meet some criterias + pass evaluation process. Evaluation process is just an interview conducted by an internal employee who holds a higher position than you in the same area. Among usual criterias are an increased level of English, mentoring as mentor or mentee, interviews, etc.

The most important part here is that it does not depend on your current project activity, you can just do your work, prepare for evaluation and you will get a promotion. If there’s no budget at all or if you’ve failed in your project, resulting in the loss of customer trust, then there might be exceptions.

So if you want to be promoted - you just need to do your regular job on the project, and learn to pass evaluation + some additional duties like English or mentoring.

I liked this method, because

  • it gives you incentive to learn constantly
  • it keeps your knowledge up to date, which brings confidence in skills and even if some layoffs happen - you can start going to interviews within a couple of days.
  • it is straightforward, and there is no unclarity whether your effort is needed or not

FAANG companies promotions

In FAANG companies it is a different process. There is only 1 time in a big tech company when your technical skills are evaluated - during the initial interview. Once it is done - no matter how you grow technically - it will not change anything, there is no evaluation process.

You still might have an internal interview with another team, but usually you cannot change titles when changing teams, even if you are Middle but performed like Principal Architect.

To be promoted you only need 1 thing: IMPACT. In simple words it is how much you did on the project and how visible these efforts are. Both amount and visibility should be kept at the same time. With either one - probability decreases drastically, you can learn from this guy: Lessons Learned After 25 Years At Microsoft (linkedin.com)

I have seen stories when people were doing tons of impact with overtime sometimes, but this impact was not visible to leadership. You cannot get a promotion with this, because there is not enough justification.

There are few problems with this approach:

  • First thing, it has nothing to do with your actual technical and nontechnical growth. It is just the amount of work done. You might be on the very same level and get promoted. This way you remember less technical stuff that is useful for your job and interviews, so you are putting yourself in a weaker position having bigger dependency on your company. Besides that for me it is unnatural to be promoted without skill growth.
  • Usually you don’t pick up the feature, but it is assigned to you according to priority. If you have a bad feature - there is nothing you can do. You might try to escalate it to your skip manager, but it might be a bad thing to do, since your direct manager is the one who submits your promotion.
  • The promotion cycles are set according to budget, you cannot get promotion whenever you deserve it. If you lose a cycle - you have to wait another one, which is at least 3 months more.
  • On the higher levels you are expected to take more ownership and contribute to the success of others more as well. It means that you will have even less time to deliver features and make an impact, because whenever somebody touches part of the project that you know, or whenever something happened related to this part - you are supposed to jump in and help people to resolve problems.
  • There is an unspoken rule, at least 1 year should pass before you get your next promotion, no matter what you do.

In such companies there is a good culture, at least from what I have seen, work life balance, learning time, etc so it is still possible to just do your job from 9 till 6, but then it is very hard to get any kind of promotion.

On top of that, most of that time compensation increase will not be that big. It is kind of a rule that you will have more benefits if you put your effort into interview preparation instead of promotion. I respect how companies did it: when you try to get a promotion - you will be so busy with it, that you just don’t have time to have interviews and offers.

One of the best strategies in this case is: 3-4 months before the promo - you are doing a lot of impact, closing features, ownership, sometimes overtime, other times - just chill and learn, cause any way your impact will be forgotten.

Conclusion

This is an experience that I have seen and heard so far. Please share how it was for you. \

My contacts: LinkedIn, Instagram, Telegram.

My projects:

Pet 4 Pet: https://pet-4-pet.com

Symptom Diary: https://symptom-diary.com


About Andrii Bui

Hi, my name is Andrii. I'm Software Engineer at Microsoft with 5 years of experience.