I applied through a recruiter. I interviewed at Microsoft (Fargo, ND) in Nov 2018
Interview
The interviews started at 9am in Fargo, ND. I had interviews with a total of 4 engineers who had progressively more involved questions. After 3 hours of interviews with the first two engineers a third engineer took me to lunch on their campus, the food was fantastic. After lunch I interviewed with that engineer, and finished with the engineering lead manager to finish over 6 hours of interviews. The questions weren't too hard and the engineers were all more focused on how you approach the problems.
Interview questions [1]
Question 1
Q: Given a string, find the longest sub-string of distinct characters. Give it's time and space analysis.
Q: Given a number, determine if it contains no more than one appearance of any number in a given set.
Q: Given a simple clock and the current time, how would you find the angle between the hour and minute hand?
Q: Construct a data structure in order to implement a tree with an arbitrary number of children. Implement functions to perform delete, insert, and lookup of nodes.
Q: Given a string, compress it so that aaabbbccc becomes 3a3b3c etc.
I applied online. I interviewed at Microsoft in Oct 2018
Interview
I contacted a recruiter, applied online, then was contacted to schedule a phone interview. They asked questions about my work experience and personal projects such as "What algorithms and data structures did you use in this project and why?" and "What was the biggest challenge for that project and how did you overcome it?". Then they asked various questions to see how you think like, "How would you explain recursion to a child?". A few weeks after this I was contacted by the recruiter saying that they liked me and wanted to move on to an in-person, on-site interview, but there weren't enough available interview slots. So, they put me on a wait list essentially.
Interview questions [1]
Question 1
There was no one question that was most difficult, but the interviewer clearly had a set list of questions to ask and some of them really didn't apply to my personal projects or work experience so I couldn't properly answer them.
I went through the first phase only it was a phone interview. It consisted of basic questions. Such a what programing languages you've learned, who you are, and a little but of a knowledge question.
Interview questions [1]
Question 1
Explain recursion, as you were explaining to a 5 year old.