Okay, wow... this is after a long time. A lot of water under the bridge. But before they slip out of my mind, let me post some questions I was asked in my screening interview (by phone) with someone from Microsoft. Yes, I sold out. If Microsoft offers me a job, I will take it with both hands.
Without further ado:
Why do you want to join Microsoft? I was kinda expecting this question, and I had a weak answer prepared. But still, this was the first question she threw at me; she virtually threw it at me. As I said, I was not too happy blathering my weak response. Not the start I was expecting.
What are your top three areas of expertise in software? Mmm... again, stock question, stock answer.
What programming languages do you know well? C, C++. Like an idiot, I tried to say I know Java, Scheme, ML - she brushed them all away, "We don't do those". Right. I forgot - I was decaying in graduate school.
What would you rate yourself in C/C++ on a scale of 10? Something tells me that someone's going to see my self-rating in the next round, and give me a lot of grief about it.
The next few questions were really stock, man. I mean, I had seen almost all these questions on various websites. But exactly two questions that I was asked, I hadn't seen. And when I figured out one of them, the interviewer asks me if I had seen them before. I said I hadn't, of course. But still, it made me almost think I was lying. Because I didn't tell her I had seen the others before. Anyway, its not my problem, if MS wants to ask questions over and over. And I am not going to list them, since you can find out with a simple search.
My favorite question (I hadn't seen this one): There are three switches in one room, and they control three light bulbs in another. You need to figure out which switch controls which bulb, but you can only visit the light bulb room once. I took a while to figure that one out. But I was happy when I got it.
The easiest question that I took longest to answer: This is really embarrassing I admit, but I took forever to figure this one out - There is a basket with x white balls, y black balls, z blue balls and w green balls. How many balls do you need to pick out of this basket before you are sure of having two balls of the same color? You don't want to know my first few attempts at solving this no-brainer. But finally, I saw the light: the pigeonhole principle. I profusely apologized to my interviewer for taking that long to figure it out.
Some things I did not do well:
My interviewer asked me how I keep abreast of the latest technological developments in the field. I blurted something about reading research articles and tech reports. Not very convincing.
What is your favorite software product? Since I use iTunes all the time, and I like all its features - its nice design, smart playlists, its fast startup in spite of its size, and its other hidden nuggets, that was my answer. She came back at me with this:
If you could improve iTunes, what would you do? Sadly, I didn't answer this one. I am very pissed about it, actually. If you are reading this, and you have suggestions, please let me know.
How would you test a stack? I know I am bad at testing. Sometimes I wish I had actually studied in college. All I could think of was to check for stack overflow, underflow and correct order of push/pop. She was expecting more, but I had nothing else to offer.
Anyway, I am going to Redmond sometime in January or February for the big interview. Excitingly enough, the email I got says, "... [be] ready to do a lot of C/C++ coding at your interviews. And most importantly, don't forget to test them before you say you are done". Thanks, will keep that in mind.