Computer Science Canada

Microsoft Experience

Author:  bugzpodder [ Sat Mar 15, 2008 5:11 am ]
Post subject:  Microsoft Experience

Maybe some of you know that I am an intern at Microsoft since January. Before we immediately start to flame me or Microsoft, please hear me out. I perfectly understand that some people here isn't so hot about Microsoft. I have no problems with that. but please let me ask nicely that please do not turn this thread into a flaming one. One could spend days arguing whether MS is evil or not, but ultimately sitting here and arguing is a waste of time. If you think MS is evil and nothing I say will change your mind, then this thread is probably not for you. Otherwise read on. Also, this is not another Google vs Microsoft thread. I haven't worked for Google. I only have a few of their interview questions. If you want to discuss Google, use another thread. Thanks.

So what is this about? I started this thread in the middle of the night because since the last few weeks, I want to share some experiences of working at Microsoft sort of like a mini-recruiting effort. I get no benefit from this and no one has asked me to do so, but I have seen many things in this company I am impressed about. There are also things about the company that i either didn't know about or had some misconceptions. The focus here is more about the experience as an intern/developer.

The good:
Product Diversity. Microsoft's presence is everywhere in the computing industry. From desktop software to the net to enterprise solutions to multimedia and gaming. This is something that no other company comes even close to. Whatever your interest is, you'll find something that suits you. Some of its latest and coolest offerings are Sharepoint (collaboration), Silverlight (think flash), Office live (and please don't say Google apps kicks its ass, since the beta just came out like this week and you probably have not even touched it), Surface (touchscreen)... I have recently being to MS's internal TechFest for R&D, and the amount of offerings they demonstrated is nothing short of amazing. For classified reasons I am not allowed to tell you what I saw, but take my word for it. AMAZING

Impact. It is no surprise that whatever you are developing will impact hundreds millions of users in this world. Did you know that even though firefox is so hot, IE still consists of 80% of the market, regardless of if this is what you call monopoly or not.. (btw, IE8's features rock). That's not something you always get elsewhere. There are also added challenges. when building an application, you have to think of everything from usability (what if user didn't have a mouse) to security to internationalization to compatibility. All of these are non-trivial issues.

Structure: Microsoft have a PM - DEV - TEST structure, where PM = program manager (designer-ish). You don't get these in most other places. Elsewhere you are probably required to be all three at once. That of course has its advantages and disadvantages. it promotes more of a team work experience, and makes you focus on what you do best. Of course, it also means that if you want to make some kind of change, you need to go through a lot of tape and stuff. For devs you also have a more senior dev to report to, and before you check in your change you always need that person to do a code review. Pretty damn efficient if you ask me -- helped me a lot in becoming better at what I do.

There are also some not so good elements, but there isn't actually too many that are relevant. For example not only there is no free food (although plenty of free beverages), most cafes closes at 3:30pm so you essentially can't get quality food until you go home. If you ask me what is the number one thing that annoys me worst, it is that they have this policy that you must run this test before you check in your code. Of course, it takes like 10 minutes to run (you need to do it for both debug and ship versons) and for larger applications I fear its probably much worse.

If anyone have questions I am more than happy to answer them here. Once again please don't treat this as a flaming thread, thank you. And no, I can't tell you what exactly I am working on, but I will tell you that I am working in web services in Office.

Author:  MihaiG [ Sat Mar 15, 2008 10:49 am ]
Post subject:  Re: Microsoft Experience

good stuff!


a couple of things,
where are you located at?
are you in redmond, cause thatd be kick ass if you were Razz
could you describe the interview proccess that you went through and give us a background into what got you interested into microsoft,
also, can you give us more information on "world wide telescope" Razz

Author:  Mackie [ Sat Mar 15, 2008 11:05 am ]
Post subject:  RE:Microsoft Experience

Is there any amount of hate going around for other operating systems? If you got caught using Linux would they hit you?

Author:  Dan [ Sat Mar 15, 2008 12:13 pm ]
Post subject:  RE:Microsoft Experience

Is MS encoraging there intern's to do there recument PR for them now or somthing? Becues that almost souned like an ad more then a post in parts :p

Author:  sparta [ Sat Mar 15, 2008 12:31 pm ]
Post subject:  RE:Microsoft Experience

i DARE you to bring a macbook to work.

Author:  Mackie [ Sat Mar 15, 2008 12:33 pm ]
Post subject:  RE:Microsoft Experience

Film it to if anything happens.

Author:  rdrake [ Sat Mar 15, 2008 12:53 pm ]
Post subject:  Re: RE:Microsoft Experience

sparta @ Sat Mar 15, 2008 12:31 pm wrote:
i DARE you to bring a macbook to work.
I've seen presentations done by people from Microsoft using MBPs.

Author:  Tony [ Sat Mar 15, 2008 1:28 pm ]
Post subject:  RE:Microsoft Experience

As have I. Remember, Microsoft doesn't make laptops. And as a matter of fact, Microsoft has a whole Mac-dev devision (the entire Office suite runs natively on OS X).

@bugz -- I don't see how running a test suite is the "absolute worst" thing. Obviously they don't want anyone to check in code that introduce obvious bugs.

Author:  bugzpodder [ Sat Mar 15, 2008 1:29 pm ]
Post subject:  RE:Microsoft Experience

There are something that escaped my mind when I made the first post. I went through two days of borrring orientation (which you get in most large corps). The only thing I remembered from it is this policy against open source. If I interpreted it correctly, MS employees are barred from contributing to Open Source (maybe with attached GPL license?) without special permission. That means on your own time as well. That's something I found surprising, and I had to quit and close my project on source forge (not that I did anything with that, but...). I don't have a direct quote of this policy, but i'll see if i can get one and posted here. I find that rule quiet frankly just ridiculously funny and I almost LOL. But it may have an impact on some people.

Quote:

where are you located at?
could you describe the interview proccess that you went through and give us a background into what got you interested into microsoft,
also, can you give us more information on "world wide telescope"

yeah I am at Redmond, and honestly the city sucks (I live in Seattle). no idea about World Wide Telescope. The interview process is different at waterloo and elsewhere. if you are a waterloo student you should know how it goes already, someone just come and interview you. If not, they'll probably fly you in if you are a qualified candidate. the interview style for each person is different depending on whos interviewing, so there isn't a whole lot I can say about that. But the questions usually involving one or two coding on the spot questions.

Quote:

Is there any amount of hate going around for other operating systems? If you got caught using Linux would they hit you?

I actually haven't heard of any people using Linux.. (usually they don't gloat around about using Linux and you can't tell from their laptop casing) but have definitely seen mac geeks. but firefox and google seem to be common ground, although there are some policies against using competitors technology in common work space.

Quote:
Is MS encoraging there intern's to do there recument PR for them now or somthing?


As I said I have never being told to do anything, but I thought it would be good idea to reach otu to some people on compsci.ca
and I honestly liked what I see here -- there has being so much unfair negative publicity about MS practices so quiet frankly I expected some negative things in my internship. But I was quiet surprised (not that I should be) that there were very little.

Quote:

Film it to if anything happens.


film and photos are prohibited in MS buildings and Ballmer/Gates' personal parking space (not joking). But people does break the rules one in a while. Here are two videos.

you need silverlight for this: very funny
http://www.microspotting.com/2008/02/life-at-msft-the-truth-revealed

Here are some people that are related to my group: funny too

http://youtube.com/watch?v=RmL1rWxDpd0

Author:  md [ Sat Mar 15, 2008 1:48 pm ]
Post subject:  RE:Microsoft Experience

Can you explain the product development cycle more? Maybe explain how major revisions would work in such a cycle?

How large are the dev groups? Do you work with a half dozen or so people on one sub-project, or do you work as part of a large group on a major app?

Though you said you hadn't seen anyone using *nix on their laptops; is there any prohibitions against it? Also, if you could try and find the exact wording regarding open source projects (should be in any contract you signed) that would be excellent... I have a hard time seeing how anything that broad could possibly be enforceable.

Oh, what project(s) are you working on?

Author:  Dan [ Sat Mar 15, 2008 2:54 pm ]
Post subject:  Re: RE:Microsoft Experience

bugzpodder @ 15th March 2008, 1:29 pm wrote:


As I said I have never being told to do anything,


Other then not contritube to open source. I would never work for any company that says what i can or can not do in my own persoanl free time (epstaly my free time at home).

BTW, compsci.ca's terms of use say all posted materals are under Creative Commons Attribution-ShareAlike 2.5 Canada License, witch could be seen as an open source linceses (esptaly if you post code), so you might want to watch out :p



In any case it is nice to hear about some of the inside stuff that goses on at MS and there empoly policys, also i am glad you are happy with your intership i sounds fun if you could take the no open source rule.

Author:  bugzpodder [ Sat Mar 15, 2008 3:12 pm ]
Post subject:  RE:Microsoft Experience

The dev groups obviously varies. I work in a small group, but for larger projects like a bigger windows/office group would involve considerably more people. I am under an agreement not to disclose internal processes except on a need-to-know bases (yes, that's lame, I know).

You will be working with some flavour of windows for development purposes (did you think we were developing *nix software?). and there is obviously no restriction for using *nix on your own machine.

Essentially the open-source thing is based on a clause in the contract that basically says:

Microsoft owns all intellectual property you produced at the time of employment (even on your own time) UNLESS you can establish that you does not relate to microsoft (anything internal, including ideas).

Author:  Robert [ Sat Mar 15, 2008 6:00 pm ]
Post subject:  Re: RE:Microsoft Experience

bugzpodder @ Sat Mar 15, 2008 3:12 pm wrote:
The dev groups obviously varies. I work in a small group, but for larger projects like a bigger windows/office group would involve considerably more people. I am under an agreement not to disclose internal processes except on a need-to-know bases (yes, that's lame, I know).

You will be working with some flavour of windows for development purposes (did you think we were developing *nix software?). and there is obviously no restriction for using *nix on your own machine.

Essentially the open-source thing is based on a clause in the contract that basically says:

Microsoft owns all intellectual property you produced at the time of employment (even on your own time) UNLESS you can establish that you does not relate to microsoft (anything internal, including ideas).


Hold on, could you elaborate on that point? What do you mean by "you does not relate to microsoft"? (I'm assuming there's a typo somehwere in there)

Author:  Tony [ Sat Mar 15, 2008 6:13 pm ]
Post subject:  RE:Microsoft Experience

"unless yours [that is, intellectual property] does not relate to microsoft..."

Author:  Robert [ Sat Mar 15, 2008 7:05 pm ]
Post subject:  Re: Microsoft Experience

How would they determine whether it relates to microsoft or not? Couldn't they argue that all software is related to Microsoft?

Author:  md [ Sat Mar 15, 2008 7:12 pm ]
Post subject:  RE:Microsoft Experience

It's actually very close to the edge of enforceable; my (IANAL) knowledge of contract law isn't quite enough to say which side it falls on however.

I think if you are a contributor to an open source app before you start working for microsoft (say mpd) and you get a job writing code for IE then they wouldn't be able to prevent you from continuing to work on mpd; as there is no overlap between the two projects. However, if you are a linux kernel dev and you start working on the NT kernel then your would be excluded. This is based on case-law, and only those cases I can recall off hand Razz

Bugz, PM.

Author:  McKenzie [ Sat Mar 15, 2008 7:29 pm ]
Post subject:  Re: Microsoft Experience

Hey Bugz, great to hear that you are doing well. I heard a while back that working for a large corporation is frustrating because for almost every line of code you add to a project there are forms and meetings to ensure that the code is OK. I've heard that it's just a lot of frustration. I want to believe it's not true; that the guys at Microsoft still enjoy their work. What is your experience?

Author:  bugzpodder [ Sat Mar 15, 2008 9:40 pm ]
Post subject:  Re: Microsoft Experience

Robert @ Sat Mar 15, 2008 7:05 pm wrote:
How would they determine whether it relates to microsoft or not? Couldn't they argue that all software is related to Microsoft?


the point is the burden of proof is on YOU, not them

Author:  bugzpodder [ Sat Mar 15, 2008 9:42 pm ]
Post subject:  Re: RE:Microsoft Experience

md @ Sat Mar 15, 2008 7:12 pm wrote:
It's actually very close to the edge of enforceable; my (IANAL) knowledge of contract law isn't quite enough to say which side it falls on however.

I think if you are a contributor to an open source app before you start working for microsoft (say mpd) and you get a job writing code for IE then they wouldn't be able to prevent you from continuing to work on mpd; as there is no overlap between the two projects. However, if you are a linux kernel dev and you start working on the NT kernel then your would be excluded. This is based on case-law, and only those cases I can recall off hand Razz



you need to disclose to your recruiter all your "inventions" before you sign the contract, otherwise Microsoft can take ownership of these intellectual properties. How is this enforcable? you sign a form which states something like this.

Author:  bugzpodder [ Sat Mar 15, 2008 9:52 pm ]
Post subject:  Re: Microsoft Experience

McKenzie @ Sat Mar 15, 2008 7:29 pm wrote:
Hey Bugz, great to hear that you are doing well. I heard a while back that working for a large corporation is frustrating because for almost every line of code you add to a project there are forms and meetings to ensure that the code is OK. I've heard that it's just a lot of frustration. I want to believe it's not true; that the guys at Microsoft still enjoy their work. What is your experience?


Hi Mr. Mckenzie,

Great to hear from you again. I know quiet a few people @ Waterloo does get offers from large corporations such as MS.

Yes, we do have meetings and also code reviews to ensure the quality of the code (meetings are primarily going through the overall design/implementation ideas). At least for me, fraustration is definitely not the right word for these requirements. In fact as a junior developer I find it immensely helpful to improve my skills -- these people have much better overall knowledge and understanding of the code base so in many cases they were able to catch bugs and oversights I made. Of course, this also applies to all devs too and in my opinion it is definitely more good than bad.

Author:  md [ Sat Mar 15, 2008 10:19 pm ]
Post subject:  Re: RE:Microsoft Experience

bugzpodder @ 2008-03-15, 9:42 pm wrote:
md @ Sat Mar 15, 2008 7:12 pm wrote:
It's actually very close to the edge of enforceable; my (IANAL) knowledge of contract law isn't quite enough to say which side it falls on however.

I think if you are a contributor to an open source app before you start working for microsoft (say mpd) and you get a job writing code for IE then they wouldn't be able to prevent you from continuing to work on mpd; as there is no overlap between the two projects. However, if you are a linux kernel dev and you start working on the NT kernel then your would be excluded. This is based on case-law, and only those cases I can recall off hand Razz



you need to disclose to your recruiter all your "inventions" before you sign the contract, otherwise Microsoft can take ownership of these intellectual properties. How is this enforcable? you sign a form which states something like this.


Well yes, you would need (and want) to disclose what open source projects you contribute to. That way they could not claim that they didn't know you were a contributor. And not everything in a contract is legally binding, contract law is funny like that Wink

'Nother question: You said that all development work is targeted at windows (or mac), not *nix; however Microsoft DID publish xenix long, log ago. Might it be possible to acquire a copy still? Razz

Author:  rdrake [ Sun Mar 16, 2008 12:51 am ]
Post subject:  Re: RE:Microsoft Experience

md @ Sat Mar 15, 2008 10:19 pm wrote:
'Nother question: You said that all development work is targeted at windows (or mac), not *nix; however Microsoft DID publish xenix long, log ago. Might it be possible to acquire a copy still? Razz
I thought somebody (probably SCO) bought the rights to that.

Author:  md [ Sun Mar 16, 2008 7:51 am ]
Post subject:  RE:Microsoft Experience

Not as far as I know. I unfortunately lost all my install floppy's years ago.

Author:  McKenzie [ Sun Mar 16, 2008 2:07 pm ]
Post subject:  Re: Microsoft Experience

Hey Bugz, As I'm sure you've heard the Computer Club is doing very well this year (You're sorta like their grandfather You mentored Andy, Andy mentored them.) Frank asked me a question that I wasn't 100% certain of the answer. He asked if contest skills transfered to real-world programming. Obviously no one believes that there is a 100% correlation, but the fact that Top Coder uses contests to find new employees for companies tells me it's not a zero percent relation either. I have a gut feeling that the skills are not often used but are still valuable and help develop general problem solving skills. I guess there is no way for you to know for sure but do you feel that your contest training has helped you now that you are working on more real-world problems?

Author:  wtd [ Sun Mar 16, 2008 7:46 pm ]
Post subject:  RE:Microsoft Experience

General ability to solve problems in a timely manner (and coming up with a decent solution) is very applicable to real-world programming.

Whether it's marketable or not... that's an entirely different question, and depends mainly on individual companies, and whether the people doing the hiring are programmers themselves.

Author:  bugzpodder [ Sun Mar 16, 2008 8:52 pm ]
Post subject:  Re: Microsoft Experience

McKenzie @ Sun Mar 16, 2008 2:07 pm wrote:
Hey Bugz, As I'm sure you've heard the Computer Club is doing very well this year (You're sorta like their grandfather You mentored Andy, Andy mentored them.) Frank asked me a question that I wasn't 100% certain of the answer. He asked if contest skills transfered to real-world programming. Obviously no one believes that there is a 100% correlation, but the fact that Top Coder uses contests to find new employees for companies tells me it's not a zero percent relation either. I have a gut feeling that the skills are not often used but are still valuable and help develop general problem solving skills. I guess there is no way for you to know for sure but do you feel that your contest training has helped you now that you are working on more real-world problems?


I am really glad to hear that. I heard some very good things from Andy.

You are absolutely correct. I feel that while contest skills definitely helps you in become a better coder, but real world development is often very very different from contests. Let me elaborate. By doing contests, one would be able to pick up some general coding skills just from practice (bug catching, accuracy) and also problem solving skills. These definitely help in a job situation. but chances are as a developer you will be building real world application that demands other skills which are probably just as important. Things comes into mind are knowledge of general frameworks, understanding others code, OOP, design skills (http://en.wikipedia.org/wiki/Design_Patterns), none of these are can be gained by doing contests alone. On the other hand, good algorithm foundation are occasionally helpful -- but in a lot of cases the code one writes doesn't require too deep of an understand (some basic data structure knowledge such as dictionaries, etc are often enough). The libraries today are often abstract enough and buried too deep in the code for you to do anything about performance. And for someone starting out, you probably won't be working on mission critical code where performance would be such an issue. In many of my past interns I sometimes wished I could at least put some of my algorithm knowledge to use but it has rarely happened. The best I've done is writing a recursive function here or there but even those are rare lol.

Author:  nike52 [ Sun Mar 16, 2008 8:55 pm ]
Post subject:  Re: Microsoft Experience

Hey bugzpodder Smile
Would you still encourage people to do contests? If not, what would you recommend to learn those real world skills?

Author:  wtd [ Sun Mar 16, 2008 9:00 pm ]
Post subject:  Re: Microsoft Experience

bugzpodder @ Mon Mar 17, 2008 9:52 am wrote:
The best I've done is writing a recursive function here or there but even those are rare lol.


Keep in mind that one's choice of tools can influence the type of code written. You may not have written many recursive functions, but I suspect that is because the majority of Microsoft's tools (especially the "mainstream" ones) lack tail call optimization. Working for a company that deals with a functional programming language, or heck, even working on the F# team at Microsoft, you might have a significantly different experience.

Author:  bugzpodder [ Sun Mar 16, 2008 9:33 pm ]
Post subject:  RE:Microsoft Experience

Quote:
ou may not have written many recursive functions, but I suspect that is because the majority of Microsoft's tools (especially the "mainstream" ones) lack tail call optimization.

My opinions in my previous post dealt with internships and tools in general, not limited to MS.

To nike52: If programming contests are something that interest you, go for it. If you are doing so just for the sake of trying to land a job, then that may not be the right thing to do (the best they get you is interviews). it's probably better to contribute to open source programs.

Author:  wtd [ Sun Mar 16, 2008 10:00 pm ]
Post subject:  RE:Microsoft Experience

The same can be said about a great many companies. As a fan of functional programming languages (where one is most likely to see such optimizations) that makes me a bit sad.


: