The guy from Amazon asked me a few simple technical questions (whats the difference between an array and a linked list, what is the difference between inheritance and polymorphism, how does a hash table work), and said there was a good chance I'd get a callback.
Microsoft didn't go as well as that though, I told them I was interested in their Program Manager internship (I prefer writing specs and designs and managing people to doing the grunt work).
After he looked at my resume we sat down at a table for some questions. First he set up a scenario involving a telephone booth company, and asked how I would go about designing an electronic phonebook. That was pretty much the last time we were ever on the same page..
My intuition with a design problem is to analyze what the customer needs first and then try and work out the big picture from there - so I raffled off some basic use cases. At this point he stopped me and asked me to refocus on the topology of a network of these things, at which point I said each telephone booth could sync up to a central data center to get and store the records.
Next he asked me to describe the UI to him, which I did, but then he stopped me during that to ask how I would sort the results. I have no experience at all in databases, but I tried to quickly scan my brain for something and I came up with a trie. A trie seemed like a good data structure to use because lookup time is not dependent on the number of entries in the trie itself, just on the length of the word (in this case someones name). Well, he didn't know what a trie was, super. I try to explain it, at which point he mentions that it seems like it would take up too much space (this is a valid trade-off, you get almost O(1) performance but the trie takes up a lot of space). I mention here that he said previously "space wasn't a problem". He ignores me and goes on to say he would stick everything in an array and do a binary search.
He moves on to another topic now, do I like Netflix? Yes, I have an account there. What is my favorite feature? I like the personalized recommendations. What feature would you add if you could? *very long pause* (I hate these sorts of questions, someone else at Netflix probably wonders what a good answer to this is too). I mention that it would be neat if you could make your own groups based on common movie preferences, and then share lists on the site. He chuckles and says I should go to Netflix more often because they already have that feature. I try to explain that last time I checked you could publish lists and make a profile, but there wasn't any more social networking than that, and I was talking about adding more interaction. He says "so you'd add groups where people could share movie ideas and lists?", I say "yes" banking on the fact that I didn't miss that part of Netflix.
At this point I either satisfied his curiousity or he decided I wasn't working out, so I shook his hand and left. I suspect I won't hear from them again, but I felt somewhat shortchanged by the exchange.
Fortunately there are plenty of other interesting possiblities out there, but I know a lot of people target msft for internships, so maybe my firsthand account can be useful to someone else.