Taro Logo

Reflecting on a decade

Senior Software Engineer
Former Employee
Worked at Microsoft for 9 years
June 17, 2015
Redmond, Washington
4.0
RecommendsNegative OutlookApproves of CEO
Pros

Foundation - Microsoft is a great place to learn and to explore.

Sure, the first year of employment, you'll be trying to figure out our process around planning, developing, testing, code reviews, checking in code, opening bugs, tracking bugs to builds, the build process, and talking to others in a 'diplomatic' manner. But you'll learn how software is delivered and be able to articulate it.

Microsoft is good at formalizing workflows, which is good if you've never worked with a large team. You'll think of things from security, efficiency, even variable and method names (for public APIs). They have a team dedicated to reviewing and teaching you.

Structure - If you're a fan of process and structure, there's a lot. Some people hate it, but if you ask "why?" instead of complain, you'll often see a reason. If not, you can always find ways to improve it.

Movement - Microsoft is huge and works on many things. The benefit of being able to transfer teams to learn new things is amazing. I started working at Microsoft on the front end of some silly application that no longer exists. A year later, I was working on the kernel drivers of their embedded platform.

Security - You'll always be able to pay your bills. There's only ever been one layoff in my 9 years at Microsoft that has shocked me. Benefits are spectacular.

Flexible - As structured as the process goes, managers are always willing to be flexible on hours. It's great for life balance as the demand of life outside of work changes - new parents, family health issues. When my child was born, I would be out at 4:30 and work remotely after my kid was in bed.

Every team at Microsoft varies on the structure and culture; something will usually fit you.

Cons

External Movement

Back in the early 2000s, having Microsoft on your resume would open doors. While it's still relatively true (recruiters from FB, GOOG, AMZN will always try to recruit you), getting into smaller companies is hard. I had a few interviews that had a clear bias towards my experience because Microsoft was seen to be "old school" in their software development practices.

The Lifers

Sensitive topic, but there are some folks who basically understand the security of their job at Microsoft [see pro]. There are several people who are waiting for retirement and are working 10 am - 4 pm hours. This is hard because they tend to resist any change or are non-responsive if you email them at 4:01 PM. It's hard to feel everyone has a shared passion for what they're working on.

The Ball Drop

Ultimately, somebody down the chain drops the ball. A project with a ton of passionate engineers delivers, but the hardware team drops the ball and creates garbage. Or a perfect device, but marketing creates these commercials that look like something my 3-year-old made. Or a great platform with no ecosystem because the developer tools are hard to use.

The Rat Race

At some point in my 9 years, I subscribed to the idea of 'get promoted, otherwise I'm not growing!' Because the entire pay grade and responsibility is tied to your level, it's somewhat true. But when people start working the system, they are merely trying to get promotions (visible projects, taking on responsibilities at the next level) and not deliver solid work at their current level. I've seen projects where senior engineers were off trying to find things to get them to principal while they let their SDEs and SDE 2s architect the project. The code was a mess, and I was surprised it didn't deadlock more often, but these are things that could have been fixed if their seniors architected the project instead of making them do the cross-team integration work. Not great if those engineers want to code but are being forced into PM-ish sorts of roles. It's easy to get sucked into the need for perpetual promotions.

Advice to Management

Manage the lifers: identify who they are and give them roles that engage them or provide jobs that are relatively isolated from the rest of the team.

Re-think the reward system. This was sort of done a few years ago, but the old 5-box system thinking still lingers when management needs to pay people. This ultimately changes the way people perceive their need to do things to get that promotion and instead, look for how they can make the most impact given their unique strengths.

Hire PR people. PR the image of Microsoft, which is hurting. It's getting better, but the negativity I hear about the company is shocking. Most engineers I've met outside of Microsoft respect the engineers, but the trendy-hipster software engineers are very vocal in their disdain for the company.

Keep it up. A lot has changed in the past 2 years, and I respect the fact that they are open to change and experimenting. The image is getting better with Satya talking to the folk in the Bay Area – praetorship with Box, buying Sunrise, etc.

Was this helpful?

Microsoft Interview Experiences