Working at Microsoft, the Inside Scoop
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."
It's just unavailable if the referall is slashdot.com, try copying and pasting the link into a different tab.
http://mirrordot.org/stories/fd94ec5aeadb1073126ec 3d15ec58564/index.html
Working at Microsoft
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
The site referenced in the article is already giving out 503's. Here is a google cache of the page:
w ww.qbrundage.com/michaelb/pubs/essays/working_at_m icrosoft.html+&hl=en&gl=us&ct=clnk&cd=1&client=fir efox
http://72.14.203.104/search?q=cache:ILiHKIGJa_oJ:
I've worked inside and outside of Microsoft as a Software Engineer in the greater Seattle area since 1996. Microsoft has always been on-par or below industry standards for compensation for the area in the Senior Level Engineer arena. Except for the crazy stock back in the 90's it hasn't been a "get rich" kind of job ever.
However, the work environment at Microsoft is so enjoyable, that personally, I would take a slightly lower wage in order to work there.
Funny, I could have sworn that AJAX originated with IE http://en.wikipedia.org/wiki/Ajax_(programming)
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.
Here's the article on coral: http://www.qbrundage.com.nyud.net:8090/michaelb/pu bs/essays/working_at_microsoft.html
Pulsed Media Seedboxes
In another article on his site he writes about blogs, and why he not dates his articles. However, he does have an XML feed to enable us to see when he has posted something new... if you add that you will see the publishing date, it is obvious this article is more then a year old.
He probably still works there, but this should be filed under 'history for nerds, stuff that mattered'.
Sorry, have to disagree with you there.
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.
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?
Excuse my speling.
Making The Bar Project
At Microsoft, I've had access to the source code for Halo 1 & 2, Internet Explorer, MDAC, MSXML, the .NET Frameworks and CLR, SQL Server, SQLXML, Virtual PC, Visual Studio, Windows, the Xbox and Xbox Live, and probably several other projects that I've forgotten about. Does it get better than this?
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)
Why stick up for big business?
Service Temporarily Unavailable
;-)
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....
Horns are really just a broken halo.
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.
I'm glad you asked. I am not always "sure" (the perpetual "the grass is always greener _somewhere else_" problem), but I think I am happy where I am and this is a good fit.
.NET and Winforms now ;). I only view coding as a means to solve a problem.
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 opinions are my own, and do not necessarily represent those of my employer.
I have a couple friends who work at MS. My impression is that how much you like your job there very much depends on what you're working on. One of my friends works on .NET, and he loves his job. I mean, the man writes programming languages for a living. He's got a great job! Of course he loves it.
My other friend, on the other hand, works on a product that I will not name, except to say that MS totally undervalues its importance and does not dedicate nearly enough resources to it. Although I wouldn't say that he hates his job, I would say that he, at very best, tolerates it.
Regardless of your specific job at MS, I will say that Redmond is the most disappointing site you will ever see. You would think that the headquarters of the world's largest software maker would be impressive, right? Wrong. It's like every other crappy suburb that you've ever seen, except all the office parks are owned by one company. Lame. Although you don't have to live in Redmond to work at MS, your only alternative is to live in Seattle and make the > 1hr commute every day.
Unfortunately, yes, they are. See http://www.ratical.org/corporations/SCvSPR1886.ht
"Is life so dear, or peace so sweet, as to be purchased at the price of chains and slavery?" - Patrick Henry