Working at Microsoft, the Inside Scoop 437
bariswheel writes "Responding to the public interest, a long-time Apple and UNIX user/programmer, and a JPL/Caltech veteran, writes an insightful, articulate essay on the good, the bad, and the in-between experiences of working at Microsoft; concentrating on focus, unreality, company leadership, managers, source code, benefits and compensation, free soft drinks, work/life balance, Microsoft's not evil, and influence."
slashdotted? (Score:3, Informative)
Mirror Here... (Score:3, Informative)
Text of article (Score:3, Informative)
Home Photos Writing Software Links About Résumé RSS
It seems like there's a lot of public interest in what it's like to work at Microsoft. Here's my personal persepctive on the good (+), the bad (-), and the in-between (=).
Background
As a long-time Apple and UNIX user/programmer, I never aspired to work at Microsoft. (And I'm still a little surprised to be here.) I've never despised Microsoft like so many people seem to do -- it's just that Microsoft products weren't a part of my world.
Then my wife got a job at Microsoft, so I needed to leave Caltech/JPL to work in Seattle. I didn't actually apply to Microsoft -- a friend of ours who worked there circulated my résumé and Microsoft responded rapidly and set up a last-minute interview. Although I had five other offers, Microsoft made the best impression.
And so, here I am. I've been working at Microsoft since October, 1999 as a full-time Software Design Engineer. In that time, I've worked for three teams in two divisions, and had six or seven different managers. Four products I've worked on have shipped, two more are in beta, and I've also "consulted" for many other teams across the company, thereby influencing directly and indirectly a large number of Microsoft's products.
Between my experience and my wife's, I think I've gotten a pretty solid feel for what it's like to work in a product group at Microsoft.
+ Focus
As much as I enjoyed working at Caltech/JPL, it wasn't until I got to Microsoft that I realized that there's an enormous difference between working for a software company and a company where software is just a step towards some other goal (space science, finance, medicine, retail, etc.).
Everyone at Microsoft "gets" software -- the managers, the administrative assistants, the vice presidents... Even many of the "blue collar" workers (cooks, janitors, bus drivers) know something about software -- it's not normal! At NASA, most managers and even some scientists had no real understanding of software or software development. Elevating the common denominator in this way makes Microsoft a wonderful workplace for people who love making software (even if it's far removed from the reality of "the real world", which can cause other problems, like overinflating the importance of software).
= Unreality
As a parent, I've come to understand that there's a wide gray area between overprotecting your children and creating a nuturing environment in which they can develop.
I think Microsoft struggles with a similar problem with its employees. Microsoft provides its employees with a nuturing environment in which they can be most productive. But like children, these employees also need to be grounded in reality and exposed to ideas that can be disruptive or even disturbing. Otherwise a sheltered monoculture can develop that's unhealthy for everyone involved.
It's hard for people who don't work at Microsoft's main campus to understand just how unreal the experience of working there can become. Some employees forget that most of the world doesn't have broadband wireless networking, high-end consumer electronics, luxury vehicles, and enough money that they don't need to live on a budget. Some employees spend so much time using Microsoft products, that they forget about the competition and/or lose touch with typical customers' needs.
+ Personal Freedom
One thing that's worth losing touch with is the strict work environment.
Microsoft gives software developers a lot of personal freedom over both the work and the work environment. I order my own supplies, customize my office as I see fit, schedule my own trips and meetings, and select my own training courses. I choose when I show up for work and when I leave, and what to wear while I'm there. I can eat on campus or off, reheat something from home in the kitchen or scavenge leftovers from meetings. I can even work remotely from home (within reason).
For the most part, I determine what I work
that didn't take long.... (Score:3, Informative)
http://72.14.203.104/search?q=cache:ILiHKIGJa_oJ:
Re:embedded in this message (not surprisingly) (Score:5, Informative)
However, the work environment at Microsoft is so enjoyable, that personally, I would take a slightly lower wage in order to work there.
Re:embedded in this message (not surprisingly) (Score:2, Informative)
I could have also sworn that at the time IE came out, the only other browsers were horrid and stagnant.
I could have also sworn that IE won a large portion of it's install base before it was integrated into the OS.
As for the other points in your post, well, I believe you have one thing right, someone is living in a reality distortion field, but it isn't the author of the article.
Coral Cache (Score:2, Informative)
Re:interesting article (Score:2, Informative)
He probably still works there, but this should be filed under 'history for nerds, stuff that mattered'.
Re:embedded in this message (not surprisingly) (Score:3, Informative)
Having worked in several software development companies of various sizes, including Microsoft, I can tell you that Microsoft is most definitely not below the curve in terms of compensation and benefits in recent times. Unless this does not scale well at all as you're promoted, then I would presume it's the same at senior levels as well. It's certainly above average for rank and file engineers.
I suggest, if you're a member of the IEEE, you check out the salary survey this year. While it may be biased a bit low for the top software companies, you'll still find the Microsoft salaries compare very favorably. Their benefits package... I'd be hard-pressed to even imagine what one could add to it. It's sweet.
Re:embedded in this message (not surprisingly) (Score:3, Informative)
Really? Because I don't even think there. Linux is better than ever. OSX is a stunning achievement in OS design and development. Sun's offerings are nothing to shake a stick at either.
On the Office side, OO.org continues to innovate, especially in the format wars with OpenDocument.
Where exactly is innovation lacking?
It doesnt get any better than this (Score:3, Informative)
uhh, yes, it does. Maybe you should visit www.gnu.org.
The only difference is that when *I* look at operating system source code, I don't have to sign non-compete agreements, and I dont have to agree to fund my existance with money gotten from business practices that are greedy, dishonest, and harmful to the marketplace.
And I dont have to live in seattle. zing!!! (j/k)
Article Text (Score:3, Informative)
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Apache/1.3.33 Server at www.qbrundage.com Port 80
Kindda minimalist, not to mention that it doesn't match the article title....
Re:embedded in this message (not surprisingly) (Score:3, Informative)
Your timeline is *way* off. IE 1 was released in late 1995. By late 1996 IE 3 was a sound competitor to Navigator 3. In early 1997 the IE4 betas started to appear and were considered by pretty much everyone to be noticably superior to Navigator 4.x (to take from your examples, IE4 had the first (and better) implementations of DHTML and CSS). Then Netscape finally released the bloated, slow, buggy, unstable Navigator 4.0 and IE started to destroy it in the market. By the time Netscape managed to make Navigator 4.x usable, IE4 had managed to increase its marketshare from something like 20% to about 50% - 60%. Importantly, this was *before* Windows 98 was released. IE5 and IE6 continued to incrementally improved while Netscape dithered with Navigator - but by then, the browser wars were over.
To claim that IE somehow re-energised the market is a gross misunderstanding ...
While I cannot agree with GP that the browser market was stagnant when IE was first released, it is difficult to argue that the competition IE offered didn't spur Netscape on. Similarly, it is difficult to see how the situation would have been any different had Netscape, instead of IE, won the browser wars. Just look at what happened between Navigator 3.x and Navigator 4.x - Netscape thought they had such a dominant, unassailable market position that they were prepared to waste time rewriting their entire browser from scratch - and that was *with* massive competitive pressure from IE. Imagine what would have happened if that pressure wasn't there.
[...] and even if IE was better back then (and by v6 I'd say it was better) [...]
IE was the better browser at version 4. According to pretty much everyone.
[...] this doesn't change the fact that it wasn't built to be competitive. It was built to destroy the competition and then halt the progress of the web. That's just bad, no two ways about it.
I fail to see how anyone could reach this conclusion. Maybe if "the web" were the same now as it was in 1997 - 1998 (when Netscape started circling the drain), you'd have the glimmerings of a point. But it's not.
I really, really, don't understand why anyone puts Netscape up on a pedestal. Certainly, they were among the first to understand the massive potential of the web, but they - similar to Microsoft - planned to make it proprietry (oooh, "evil" (tm)) and their products after about 1996 took a significant nosedive in quality because of their arrogance in thinking that they "owned" the web and that everyone else would wait for them to set the standard.
Re:Is that your "thing"? (Score:5, Informative)
Before you stop reading - something to be aware of is that MS has a position called "SDE/T" - Software Design Engineer in Test. They've been phasing out the traditional "STE" (software test engineer) role. I've been an SDE/T since my hire date.
I originally interviewed for an SDE role with a couple teams, one of them being NT, and those didn't go well. It was the beginning of the reality check for me about what I knew and what I didn't. There were coding problems they asked me to solve in SDE interviews that I didn't solve acceptably. The recruiter would ask a quesiton like "rate your understanding of C++ on a scale of 1 to 10". Me being the hotshot college jerkoff I was said "9". Then she was like "ok, what do you need to do to become a 10?". Then I thought about it a bit and said something like "write a C++ compiler, hang out in comp.lang.*, etc". Then she asked "so why haven't you done that?"
Oh.
In these developer interviews, they were asking very hardcore questions about programming, sometimes for programming's sake. I don't code for coding's sake. I started coding back in 5th grade on an apple ][. I cut my teeth with turbo pascal and TASM. I graduated to C in 9th grade (via summer camps and stuff). I had plenty of exposure to programming, a good bit of exposure to languages, etc. But i still can't tell you what all of the bitwise operators do in C without looking at a manual. I can't tell you _anything_ about MFC (except that I am glad we have
I don't write code for the sake of coding, and I don't like memorizing the details of uninteresting things (even though I like trivia).
So, when you're interviewing with someone that writes a C optimizer for a living, how can you say that you're a solid "10" at C programming. Compared to who? them? Not unless you've also written a commercially shipping C compiler. When you're talking to the guys that shuffle bits in binary headers in the guts of the kernel, how can you say with a straight face that you get shift-right and shift-left confused because you never use them ? That was me.
That was the perspective I never got until i started at MS. I was used to being at the top of my classes in school and I rarely ran across someone that had the same problem solving skills I had. That's what I came to my MS interviews with.
For an SDE position, they're after someone that is passionte about coding. Someone that lives and breathes it. They want to write code when they're not at work. That's not me. I do some coding at home, but only when there's some especially irksome problem at hand that nobody has a good solution to, and that I think i can pull off. When I'm not at work, I'm more inclined to want to work on my car. The car could be better, and I can't afford to pay a garage to work on it, so I've learned to do it myself. I'll never get ASE certified, but I'll learn how to do what I need to do to a car to accomplish my goals. Nothing more.
The position I have actually has a fair bit of design and coding. But it's not shipping code - it's code that tests or optimizes the testing of the actual shipping product. Automated testing is the name of the game at Microsoft. I was the guy behind the the automated testing system that ran all of the developer tools tests for a couple years. There's a lot of moving parts in that system. It worked in spite of itself (it was all written in VB, ran against a single SQL box, but served thousands of 24/7 automation execution machines.. with hundreds of thousands of automated tests). I knew the code to that thing well.. but not because I liked the code (i didn't), but because I liked what it did. I liked the power it gave our test org, and the quality we could drive into
My friends at Microsoft (Score:2, Informative)
Re:embedded in this message (not surprisingly) (Score:3, Informative)
Unfortunately, yes, they are. See http://www.ratical.org/corporations/SCvSPR1886.ht