Fog Creek Software
Discussion Board

Microsoft College Interview - II

This is a repost:

Quite sometime back I was interviewed by MSFT dev centre in India.  I got past two 45mins telephonic interviews. The HR had scheduled me for another 5 rounds at the MSFT office in Hyderabad - all in a day. The first 3 before lunch -  I did really well - linked list insertion, deletion, sorting, string traversal, searching, some puzzles,  design problems, etc.

The fourth one was taken by a top guy (~12 years in MSFT) - he explained to as why MSFT was a great place to work and the roles they had and asked me what I was interested in.

After about 15 mins of general questions like  "why did you leave your 1st job", "why are you interested in MSFT", "how will you rate yourself in C", "why did you do a B.Tech. in Mech Engg if you wanted a s/w job".

He then proceeded to the white board and wrote out a problem. I was given an M x N matrix with characters. I had to navigate the matrix in all possible directions (8) and give a count of valid dictionary words. I could assume that I had a function isWord(const char *word) which would look up the dictionary.

I asked  a couple of  questions about  the matrix, thought for a while and explained to him as how I would proceed. He gestured to me to write the code. Which I did. But he wasn't happy - as my code was naive. He told me to make it "tight". I did. But then flunked. I asked him some questions on the way too. After about 10 mins (which seemed like eternity), he told me to stop and gave a solution which in my opion would have taken lots of thoughts over atleast a day to come up with. The HR called me and said that though I had done really well in the first few interviews barring the 4th one,  they were looking for more maturity in problem solving - well atleast I had the result on the spot! It was disappointing for a few days but then I had to get along with life :-)

Wednesday, December 11, 2002

for those of you that have read The Guerilla Guide -- remember the principle that Microsoft is following: much, much better to have a false negative than a false positive. It's worth losing 10 good candidates if you don't accidentally get one bad employee, because a bad employee soaks up everyone else's time, writes broken code which everyone else has to fix, and takes time and energy to fire. It will take 3-6 months just to realize that the person is not working out.

The end result is that a given individual may be a great programmer and great for Microsoft but still not get hired.

Joel Spolsky
Wednesday, December 11, 2002


Same goes for Foog Creek I guess? ;-)

False Positive
Wednesday, December 11, 2002

Must add: the Microsoft office was great. Every guy had a room to himself on the 9th floor overlooking the city.  The place was superbly furnished. A nice kitchen - you take what you want - no need to pay for anything. A billiards room, etc. Looked like everybody had atleast 2 machines (at least the interviewers had). There was this invetiable "geeky" touch to the place.

Wednesday, December 11, 2002

To those of you who've worked at Microsoft --

Do all software people there have to pass these tough interviews?  For some reason, I find it hard to believe that everyone who develops software there is brilliant.

Thursday, December 12, 2002

A small question. What was the algorithm that he gave ?

Siddharta Govindaraj
Thursday, December 12, 2002

Yes, the interview loop is standard for all technical positions at MS. It would be to much to say everibody is brilliant, but it's safe to assume the average IQ is greater here than at [...] (cut for PC reasons:-)

Thursday, December 12, 2002

>>A small question. What was the algorithm that he gave ?

Just keep working on the problem for a day and you will end up many solutions. If you plan to interview with Microsoft Hyderabad,  I can tell you that its demanding. And they easily find out if you are faking. Example: I was asked a puzzle by the 2nd interviewer. He asked me whether I already heard it somewhere (in fact I had). At first I thought of telling him that it was new to me but decided to tell the truth. Even before I opened my mouth, he smiled and said: "you know it!".

If you tell them you are a 10/10 on C, there will be a guy out there who is a 11/10. Just play within your capabilities. In all, its a different kind of interview. They don't ask you about C or C++ constructs. They test you on your basic problem solving, reasoning and aptitude. The only other place which interviewed me like this was Adobe India - though they were softer on silly mistakes and hold ups :-).
But then I had to take a 3hr aptitude and problem solving test on paper before the telephonic interviews with Adobe.

Interesting questions asked at Adobe: How will you allocate memory for an m x n matrix with the least amount of calls to malloc/calloc? How will you simulate a queue with stacks?

Thursday, December 12, 2002

Another way of putting Joel's comment is that for someone to be hired at Microsoft they need to make a bunch of interviewers believe, "hey this guy would make an awesome developer." There's no "let's try this guy and see" or "yeah, he seems like he'll do." If the interviewers are having a good day and the interviewee is having a good day and the stars are aligned, then you have a chance of being hired.

But if for some reason you get a question that you get stuck on (despite your otherwise obvious brilliance) or you get an interviewer who's spent the past twelve hours banging his head against his monitor trying to fix a bug then you're out of luck. It's an imperfect system, not "fair" in the sense of equal treatment of all candidates, but it gets results.

Friday, December 13, 2002

Another perspective on why false negatives are better than false positives: put yourself in the position of a manager of a small team that is struggling to create great software. HR calls and tells you they have a candidate to interview:

Developer productivity diminishes with team size. If you hire this person, you are absolutely, positively reducing everyone's productivity.

Project management overhead grows with the factorial of the team size. If you hire this person, you are absolutely, positively adding complexity to the challange of organizing and managing the project.

Now... How good is this person?

Reginald Braithwaite-Lee
Friday, December 13, 2002

*  Recent Topics

*  Fog Creek Home