Company: Microsoft
Date: 2019-07-04
Overall rating: 4/5
Employment status: current
Experience level: Junior

Your success depends more on your team rather than your performance.
Pros: - interesting projects with complex challenges (if you have the luck to end up in a cool team, if not you see it as a cons)
- smart people around you (you don't feel like the smartest man in the room :)))
- a lot of resources available for you to learn.
- senior people are willing to help you or are sharing at least from their knowledge of experience what's the best you can do in a particular situation.
- I ended up in a really new team and the product is written from scratch so I know almost the whole codebase and I know who to ping in case I have questions. Also we're using the latest tech stack so I am up-to-date :)
-
Cons: - you don't have to choose your team. When you come to interview you will be picked by one interviewer, so if you wanted a team that it's not in the interview rounds, bad luck
- your manager can be your "best friend" or your "worst enemy". The bad part is you don't have to chose.
- promotions vary from team to team. You should switch teams if it's not a fair process.
- you thought you don't need to brush your algorithms? guess what, if you want to switch teams you will most likely re-interview (and all the times you want to switch your team, basically you start the process again, but you have your connects)
- pay is less than competition (Google and Facebook and many others still pay you more...)
- there's no free food. God I wish I had that! Besides saving money, an important factor for me would be saving TIME! I'd rather do something else when I arrive home than cooking dinner.
- in some teams you have work-life balance, but for me I feel that there's always something to do or I feel the pressure to ship as fast as I can.