I applied online. I interviewed at Microsoft (Moscú, )
Interview
The process from sending the CV to the first interview took ~1 month. HRs had not responded for a long time. Then they arranged a phone interview with a senior developer from MS.
The interview was quite brief. He asked a couple of general questions like 'what is your software development background?' 'what are you working on now?'. Then we came directly to programming. There was only one problem: determine whether two strings are anagrams, i.e. contain the same letters.
Interview questions [1]
Question 1
Anagram detection. This algorithm's complexity can be reduced to O(n) by counting frequencies of every letter from two words and comparing them. I didn't come to that - instead I suggested a O(n log n) algorithm. It seems that was my fault.
I applied through college or university. I interviewed at Microsoft
Interview
I attended an university recruiting. First a phone interview then on-campus interview in four stages. Phone interview was behavioral, but you get to be asked to provide some hacks mostly on tricky algorithmic questions at on-campus meetings. I did get through all the steps but couldn't get the job offer. As to my understanding you have to give (or at least on the way) decent answers in all of your interviews, even one recruiter hesitates then they look for someone else.
Interview questions [1]
Question 1
Questions are not always hard by itself but most of the time what they look is how you approach to the problem and in what way you could improve the code.