Wednesday, June 08, 2005

My Experience with Microsoft Interview (Part 2)

Now I'll write the second part with my journey through Microsoft Interview :)

Third interview:

My third interview was somehow more complex than the first two, I had it with a product manager in XML team (I think she was the manager of the XML as a whole), she asked me if I know any thing about SQL Server of course I answered no (Even I knew it well :P ), just to give myself the chance if she asked in any thing in SQL Server in which is don't know, any way, I don't remember the exact interview, but it was about how could I implement the SELECT statement between two tables if I was supposed to implement the SQL Server myself, all what I've is just a pointers to the two tables, she gave me the tables internal data structure, so I gave here an O(n ^ 2) (as usual), she told me she want it to be less than this, I gave here another solution of O(n log n), after that she asked about the O(n) solution and I gave it to her, then she asked me what if I found a duplicated rows, and she needs me to specify a way in which (if needed) will remove the duplications, I gave her the solution, she told me Iam so fine till now, and she still needs one more step, she asked me, if we've the two tables of huge size (lets say more than 1000,000,000 record each), it wont be wise to return the final result of the SELECT statement immediately, so we want a way to give the user the chance to get n results at first and then if he want more he'll get more (to implement the next function if you used SQL Server you'll know it), she asked me to do it in two ways, one way using hashtable and the other without it, I did that of the hash table, then I had given her a solution which is O(n) too without the use of hashtable, she smiled and told me that I had implemented the same technique used inside the last version of the SQL Server itself (it was an algorithm implemented by Microsoft itself and known by X merge sort, where X is some word I don't remember).

After that she told me that she finished interviewing me, and she had left with me to the main room again.

Forth interview:

After that they left us for about 10 minutes, and then came back and told us that 3 of us will leave and the other 2 will stay to some extra interviews and they will tell them the result of the interview after 2 weeks (the clue here, if you left in the middle of the interview, then you had lost your chance to be accepted), after that I had my forth interview, with some giant developer, who was interviewing me about my SDET abilities (SDET means Software Design Engineer in Test), so the question was very simple, Imagine you've 2D system which is just testing whether 2 rectangles are in collision state or not, and you supposed to make a program which takes the code of this system from its developers and test it automatically to see if it's working good or not, and output the percentage of the error in the code, what you'll do?

After making it, he then told me it's ok, fine, but you'll need some test cases to test the code on it, so you must have 2 group of test cases which must be generated automatically too, the first group is that group you know for sure that they collide, and the second one which you know for sure that they are not collide, so how you'll do this?

After telling him the rules for generating the test cases, he asked me what'll I do in the system if I've the time only for making 3 checks, what will be these checks?

I answered him, then he told me right, you got an answer, let's head now again for the main room to see what's next.

Fifth (and final) interview:

After that, it comes for the final interview, in which they had divided them-selves into 2 groups (3 each) and had taken us into an interview which was mainly about why you want to join Microsoft, and how you could imagine the way of working there, do you imagine if you joined you'll assigned a task in your first day or what?, and what if your manager assigned you a task you see it's soo trivial and easy, would you complain and say it's too easy and direct or you'll make it with internal un-satisfied or what?, and what you think the first thing you'll do when you put you feet there, would it be looking for food, or asking about where every thing is located or asking about your colleagues or what?
Many of questions like this, the most two questions I've enjoyed were:

Him: How many lines you could imagine the Visual Studio 2002 is?
Me: you mean the framework or the IDE or what?
Him: No, just the empty IDE, without any compilers, framework, debugger, any thing, just an empty IDE?
Me: how much?
Half a million?
Him (smiling): No, it's about 8,000,000 lines, Iam just telling you this to know how much the word Consistency means in our code, you may write a good and powerful code, but when included in main system will destroy it, and to clear this point for you, how much time could you imagine the line of code is surviving in our systems?

Me: How much?
4 years?

Him: No, it may reach more than 12 years, so it must be written in very good way, consistent, and good commented, and by saying the word comment, how could you think that your comments are good?

Me: mmm, I don't know, I think I should write them in a good way.

Him: and who will tell you that your way is good?

Me: It's easy, I've 2 ways, either to write them in a standardized way, or I should make a dummy function and they write a comment on it using my way, and send it to many developers with me and see if my way is good or not, and by the way, I knew that there must exist a standardized way in Microsoft for its code comments.

Then I left and they told me that I'll receive the results within a period of 2 weeks, and then it comes for the last stage:

The waiting for the results.

After that, I had a very nice time waiting for the ......

To be continued...........


Amal El-hosseiny said...

what i think that after all interviews, dont close ur space to Microsoft is wonderful to pass all and ve this expereince but actually when i went to Gulf for training i ve saw that ORACLE is their star and in egypt MICROSOFT is star and when i was talking to a freind in europ they feel that microsoft is sales company more than offering solutions with low prices and high performance just like netmeeting for MS and NetOp , NetSupport for other companies...Sharepoint And CMS for MS and Community Kits ( Free and Open Source) and not MS....MS is Enterprise but in MiddleEast We dont see more than it..tell u smth, when i was giving course to TEDATA Developers ( works with java and php and mysql) course was about SQL Server Administeration, they wont use but it was offer from MS to take course for free to use MS product but actually all their work was about ORACLE and JAVA and they dont use SQL at all and was just know about it

Mohamed Meshref said...

And what's the wrong with what I had written related to all these :D?

Mohamed Meshref said...

By the way, i dont like to compare both DBMSs with each others, but you can look at this simple comparison between both (it's not a comparison on MS or Oracle site):

As you can see the only weakness point is the T-SQL language, which had ben solved completely in SQL Server 2005 which supports real programming language in which you can do any thing, also the limitations on some parameters problem had been solved too.

And to tell you something, before i even thought about joining MS at all, i was hating all others, because it seems they dont respect they customers, like Oracle, what's the hell they are making and all these bugs and un-stable interface??!!
Can't they fix it for the sake of their customers?!
Look at MS and you will see what's the ease and the good way they're treating their customers, I swear Iam not saying this because Iam in MS, this was my opinion since the first time i had dealt with Oracle.

Yasser Rihan said...

Sorry but when I read the comment I fealt like you didn't really understand what happened or i didn't really understand the idea of the comment.
What I mean even when interviewed with Microsoft they never asked about their technology and their was no mention for Microsoft's technology ever the thing is that Meshref just was interviewed to join the SQLServer team and Microsoft's HQ in redmond and I don't think that's what you are talking about.
But if you really think that a person shouldn't join Microsoft because as you said people feel it's a business company I say yes you are right Microsoft is a business company and that's why it's number 1 in the world and will stay like that at least for the few comming years and No I think anyone who's able to join microsoft shouldn't hesisitate because the kind of firm microsoft is.Microsft sells for governments and knows exactly how to deal with the world and it's leading most of the technologies and is successful in almost every field it enters and the last field was entertainment and we've seen the cracking release of XBOX 360.I think under this global system and under the golobalization microsoft is leading and they know well how to manage there work and to satisfy their customers which is so hard for smaller companies and corporations.
I think what I wrote is to long to be a comment sorry for being that long

Yasser Rihan said...

my comment was on amal el-hosseiny's comment

Mohamed Meshref said...

Yes, you're right yasser, and MS had reached this position because it cares too much about its customers, not like Oracle which treats them like dogs, in a way of this is our product, take it or leave it (or even hit your head on the wall)

Anonymous said...

Hi , I just came from a Microsoft face to face Interview in Redmond.In the morning Recruiter had told me that I would be meetng with 3 interviewers. 2 for 1 hour each and 3rd one more longer with lunch interview in between .
I think, I have made my best and given most of the answers about testing problems, Link lists and all.I am satisfied with the same. My 3rd interview finish at 1 o'clock .It was followed by Product Team Manager who also took my telephonic interview and he jsut asked my day, my back ground and what do you looking forward to work in Microsoft, I think,I am best in that too and he is satisfied.

Any one any idea or past experience if your interviews goes all well with people impressed and it finishes off by 1:30 PM. what does that mean ?

Is it always that Microsoft has 5-6 rounds of interview till evening or that sometimes, they closes the same early as in my case.

Any inputs are most welcome.
I am optimistic though :))

Mohamed Meshref said...

No, those 5-6 rounds is the case in international interviews (outside US), but in US case, it's not a must

By the way, why people usually don't like to leave comments with their names :)?

Anonymous said...

Hi Mohamed, Thanks for a prompt reply.I cant leave my name with the fear of being caught by my parent company. Hope you got it :)

Best Regards

Mohamed Meshref said...

ahaaa, OK, then when you got accepted come back and leave it ;)

Anonymous said...

Hey Mohamed...
good to read your article...I recently had an interview with the Microsoft's SQL Server Team for a SDET position.I had an overall of 5 interviews with the same group ,which lasted for about 5-6 hours(total).I was told to wait for at least 10 working days for the results.Does it take that long for the results?Does the number of interviews matter or indicate anything about your performance?I would be really thankful to you for answers to the above questions.Thanks a million in advance!