Tuesday, March 21, 2006

Microsoft Technical Interview

Okay so this past week I continued on my job hunt by going through my first technical interview with Microsoft. If you don't know who that is I guess you need to get out from that rock since, they've been a major player in the personal computer market for over 20 years. So needless to say I think I could work there, by the way that's your first mistake: you either are capable or not, there doesn't seem to be any middle ground here. So before I start talking about my own personal experience on this topic let's go over the process, since it'll give you some background on what I'm talking about and for some of you give you an inside on what to expect. The interview process is separated into two stages, the first is very much a technical interview, basically testing whether or not you know your stuff, this can be over the phone but in my case it was on campus. Basically this interview gives them a feel for if you'd be able to handle the work at Microsoft. The second stage is when you go out to Interview with people that you might be working with, this is determined by your responses to your first interview and oh yeah they ask. Typically the on site interview, probably at Redmond, will last all day and is divided into multiple interviews with different people from one to two different product teams. Basically the second interview is a test on whether or not you fit in with the team and would work well with them. I can't tell you too much more about this since I've just got through the first stage not to long ago and am hoping to hear back to interview at Redmond.

Hey you still paying attention? Yes, I know that most of this information is on many other sites on the web and tend have more pointers, but I'm getting there. Alright, so I digress, in any case I went in and got the standard hi my name is ... drawing a blank.... I'm a software developer in test... on Sharepoint, from which he talked a little bit about what it does, the short part is that its a robust rapid deployment content management for project groups and such. So far I'm still pretty calm, nothing to stupid coming out of my mouth, at least that I was aware of .... woohoo .... so far so good. Okay few things to note the next part was basically me talking about my past experiences and why I wanted to work at Microsoft, to be honest I didn't seem to wow the interviewer on this point but I'm pretty sure I wasn't being crossed off of the list yet. Here are a few pointers, when saying why you want to work at Microsoft, don't just say because I want to work on the Xbox, because you just loved Halo. Now saying that you want to let's say work on Xbox Live because it's probably one of the best online gaming services you've tried, is a little better. You'll still need to have a really solid network programming background. So after that I got a testing question, which is fine since I told him that I was most interested in doing a software development in test position, by the way that seemed to get a quasi evil smirk when he read that, I though there was a goofy trick question coming, but no he had mercy and asked for test cases for a Vending Machine. This a pretty standard question, my suggestion for this is to remember that the vending machine does lots of things that should be tested, such as if your deal with soda then you want to make sure that your cans/bottles are within a certain temperature, too low and you have slushy and possibly cans that burst open, too warm and your gonna have a pissed off customer. Speaking of which, wouldn't be to bad of a thing to test how the machine reacts when customer is pissed off, obviously if the machine can be easily broken by a frustrated thirsty customer, don't ship and reinforce something. In any case after that I got a typical programming question.

The question was pretty simple and apparently he'd been asking this one a lot, "How would you remove duplicates from an array?". This one is pretty straight forward there are a bunch of ways of doing this, many of them are "expensive" meaning your wasting some resource such as memory and/or process time. So the easiest way and very un-memory friendly way of doing this is simply go through the array one element at a time put all of the unique values into a separate array and return that, but there is a better way to be more memory efficient. The first thing, is that you need to sort that sucker, doesn't matter what algorithm, if your hurting on time, like I was your interviewer may just say assume its sorted already. Then your code gets pretty simple check if the next element is the same as the current, if it is remove it otherwise keep going through the array. Now after I finished my code, I basically was out of time, so that was it, it felt really short, most of the time was spent talking about my background and a few projects that I've worked. So I'm pretty sure that they got a feel for what I can do, so now I can only wait and see if I get to go to Redmond. In either case after talking to a few people about it, they normally get back to you within a week or so expect a new posting later, if I go otherwise, expect the usual technology blip and or rant .... I mean editorial =).

0 Comments:

Post a Comment

<< Home