Microsoft is really a dozen companies in one. Pick carefully, and don't just think, "Oh, it's Microsoft." Groups differ greatly in their culture and management.
If you work for a really well-run group, then you can combine the benefits of working in a 200-person company with the benefits of working in an 80,000-person company. The small group can give a sense of purpose and esprit de corps, while the large company can provide good healthcare, a stable environment, and lots of learning opportunities. Go to the lunch tech talks to learn about the technology underlying other products. Go to MSR to hear about what's going on in the blue-sky research world.
Flexible work hours, an informal attitude towards hierarchy, and the ability to hop around between groups at Microsoft to work on different technologies without the hassle of having to change companies. If you get a sense of the landscape and know the landscape well, you can avoid most of the Cons listed below.
There is definitely a lot of dissatisfaction at upper management, especially Ballmer. The recent layoffs have taken a toll on morale. Again, it really differs by group. Some groups got hit harder than others.
If you're in a bad group, you might get stuck in a death march for two years. You might have coworkers who don't give a **** about the product and are just sitting around collecting checks. But if you're in a good group, see Pros.
People need a sense of purpose.
Ballmer is distinctly uninspiring.
You look at what Sinofsky has accomplished at Windows, and you get a sense of how change at the top can turn things around. Before he arrived, Windows development had been a series of emergencies under Allchin. After Sinofsky arrived, Windows development turned into a smooth glidepath to RTM.
The same thing needs to happen in the Senior Leadership Team. There are also a number of groups that need shaking up.
I would like to start out by saying this has by far been the worst, most poorly handled, and longest (by a long shot) interview experience I've ever had to deal with. It started with a phone screen. The developer on the phone made me excited for the
The initial phone screen was a behavioral round. This was followed by four rounds of on-site interviews. Most of the problems asked were algorithmic. You were expected to write working code on a whiteboard. All interviews were 45-50 minutes long.
Was recruited through a university job fair and received an on-campus interview two weeks later. The on-campus interview was a joke. Aside from cultural questions, I was asked to write a shuffle function in Python, which I aced. I waited a month wi
I would like to start out by saying this has by far been the worst, most poorly handled, and longest (by a long shot) interview experience I've ever had to deal with. It started with a phone screen. The developer on the phone made me excited for the
The initial phone screen was a behavioral round. This was followed by four rounds of on-site interviews. Most of the problems asked were algorithmic. You were expected to write working code on a whiteboard. All interviews were 45-50 minutes long.
Was recruited through a university job fair and received an on-campus interview two weeks later. The on-campus interview was a joke. Aside from cultural questions, I was asked to write a shuffle function in Python, which I aced. I waited a month wi