The process took 2 weeks. I interviewed at Microsoft (Hertzlija) in Jan 2017
Interview
It was a great experience. Was asked three questions and answered all correctly reaching the optimal solution for all with a bit of help from the interviewer. I was calm and confident and overall had a great interview. I was given negative feedback though, which was shocking and displeasing.
I've applied to FTE positions for years on their public site, and never gotten anywhere. However, this time I had an internal recommendation. So I went from applying to in an interview loop within a week. No phone screen or pre-screen of any sort.
The full interview process was comprised of 4 one hour interviews, with various Program Managers and Software Engineers. We did white board coding and talked a lot about my past work. They seemed to really appreciate that I have an UWA in the store already, with good reviews.
After the interview, it took about a month to get my offer, however, this was also over the Christmas holiday season. Some delays where due to approvers being on PTO.
Interview questions [1]
Question 1
I was sked a variety of questions surrounding the more advanced areas of C# and JavaScript.
I applied through an employee referral. The process took 2 months. I interviewed at Microsoft (Redmond, WA) in Jan 2017
Interview
I was referred by a friend of mine currently working at Microsoft. I first did a 45 minute on-campus interview which consisted of one easy question plus some behaviorals. Unfortunately, Microsoft had fulfilled their hiring quota for the year, but a spot opened up in mid-December and I scheduled my on-site to be in January.
The on-site consisted of five interviews about an hour long each, with some standard data structures/algorithm questions plus one system design question. The fifth interviewer also asked some behaviorals. The algorithm questions were probably around LeetCode Medium level.
Interview questions [5]
Question 1
Given a list of n unsorted key-value tuples which are too large to fit in memory, return the k tuples with the greatest value where n is several orders of magnitude greater than k. This list may be dispersed across multiple machines.
Given a tree of order n which is neither complete or a search tree, write a function to construct a new tree of order m in-place. Memory usage is bound to 2 times the size of the tree. The new tree must be complete, and a node A cannot be a child of another node B in the new tree if A was an ancestor of B in the old tree.
Given a list of movement commands (up, down, left, right, undo previous action), write a function that returns the final (x,y) coordinate. Followup: how would you handle other kinds of commands and undoing them? What kind of design pattern is this?
Given two very large timestamped sorted log files that do not fit in memory (possibly on different machines), merge them in timestamp order. Provide some test cases.