Skip to main content

Why work at Microsoft

I spent a total of 5 years at Microsoft.  2 years as a contractor and 3 years as a full time Engineering Lead.  My time at Microsoft had its ups and downs but overall it was a very valuable experience.  I am tough on Microsoft, but that’s primarily because I think they can do a lot better.  I want to devote a few paragraphs to why one would actually work at Microsoft, because even with all its flaws Microsoft can contribute a lot to someone’s growth.

First thing to remember – Microsoft is a very engineering driven company.  It is the best place to learn how to be a great developer, tester or program manager.  Most of the groups at Microsoft know exactly how those roles play together and how to train and execute in those disciplines.  Microsoft has had some issues delivering breakthrough products lately, but it’s rarely an engineering issue.  Windows 7, Windows Phone 7, Xbox, Office, Windows Servers and Visual Studio are stable, extensible, responsive and are a pleasure to use.  In the interest of full disclosure I do use an iPhone and a Macbook Pro, but it’s mostly a hardware issue.

When you join Microsoft as an engineer they will train you how to write secure code, how to test it, how to grow in your role and invest in yourself.

Being at Microsoft as an engineering manager or a lead is also a great experience.  Microsoft will invest into training you how to hire and terminate, how to deal with various personalities and how to drive your team to excel.

The time I did spend at Microsoft I shipped products, did bug triage and gained intuition about how to manage a release.

There are plenty of reasons not to be at Microsoft and that’s why I left 5  years ago to join DocuSign, however that’s a whole different blog post.  I do consider my time on the Windows Team as a Masters in Software Engineering (as opposed to Masters in Computer Science).  The curriculum consists of taking classes, doing a lot of homework, working hard, coming into the lab on the weekends, and passing your finals by shipping software.
Post a Comment

Popular posts from this blog

SDET / QA Engineer Interview Checklist

After interviewing and hiring hundreds of engineers over the past 12+  years I have come up with a few checklists.  I wanted to share one of those with you so you could conduct comprehensive interviews of QA Engineers for your team.

I use this checklist when I review incoming resumes and during the interview.  It keeps me from missing areas that ensure a good team and technology fit.  I hope you make good use of them.  If you think there are good questions or topics that I have missed - get in touch with me!


SDE/T or QA Engineer interview checklist from Mike Borozdin
If you like this checklist you might want to check out these posts:
Emotional Intelligence in Software Teams  and Good-bye manual tester, hello crowdsourcing!

Chief Collaboration Officer

When you search for the word “collaboration” on the Internet, the top hits are mostly software packages you can buy.  Software can facilitate collaboration, but it doesn’t make people collaborate on its own.

One of the key functions of a technical leader is to bring a team together, help people share ideas, and facilitate team members helping each other.  When a software leader overlooks this key function, you end up with a group of individual contributing engineers instead of a cohesive team.
Before we get into tactics, we should ask “Why is collaboration important for an engineering team?” 
It’s critical to examine your assumptions, so here are my reasons for why a group of engineers working on their own are worse than a team working together: Smart people learn from each other.Getting your plans and designs reviewed by other people allows you to leverage their experience and check your assumptions.Collaboration produces artifacts that stay after collaboration has taken place (such…

Hire Fast, Fire Fast? Not so Fast.

Silicon Valley is full of advice and it frequently comes from people who have little experience on the subject matter.  A popular topic surrounds hiring and terminations with the king catch phrase being: “Hire Fast, Fire Fast.”  To me, what that usually means is lack of diligence, thought, communication and courage.

When hiring people love going with their gut feel, often with disastrous results.  There is an obvious subject of diversity of thought, appearance and background.  When thinking “fast” you are probably hiring people like yourself because humans quickly react to people who they believe are in their tribe.

A startup that lacks the resources of a big company often becomes so desperate to get technical staff that when a decent candidate comes along, excitement ensues and the employer doesn't slow down to put them through a more rigorous hiring process.

I highly encourage technical founders and engineering executives to write out their precise hiring process.  Of course, y…