I applied online. I interviewed at Microsoft (Seattle, WA) in Oct 2020
Interview
I was emailed by a recruiter around 2 weeks after applying for a first interview. That went pretty well, only one LC easy and background questions. I was called back for a second round which was supposed to be a day with 4 interviews. They canceled the last one and told me only after I emailed them during the supposed time. The three other interviews were pretty bad, interviewers didn't have their cameras on and didn't seem interested in what I have to say at all.
I also haven't heard back from them yet.
Interview questions [1]
Question 1
Top 5 numbers in an array without sorting, Remove duplicates from array in place, Binary search algo, Valid parans
What are distributed systems, microservices, APIs
What do you think about Agile development
I applied through college or university. The process took 8 months. I interviewed at Microsoft (Redmond, WA) in Apr 2020
Interview
Process took longer than usual. Started off with an on campus interview, where I was asked 3 questions in 30 minutes. I was told that I had passed the interview but the final round spots were full, so I waited 5 months to hear about a final round spot. The final round was all virtual due to COVID-19; I had 3 interviews back to back, with each one being 45 minutes of implementing code.
Interview questions [1]
Question 1
On campus: 1) Design an iterator of nested linked lists that included a hasNext() and next(). 2) How would you go about finding the running median for a stream of numbers. 3) How would you return the k largest ints in an array.
Final round: 1) Create a word search function for a boggle board. 2) Implement a Trie. 3) Find the index in an array such that the sum of the left and right sides of that array are closest to one another.
I applied online. I interviewed at Microsoft (Seattle, WA) in Nov 2019
Interview
1. Applied online in July 2019
2. Contacted for Phone Screen with HR in August 2019
3. Onsite in Seattle in November 2019:
4 back to back white board coding interviews, 45 min each
You have a log containing error logs from all different hardware at startup, made of hardware ID and error information. It contains multiple error logs for devices that try again. Write a method to remove the duplicates while keeping the first occurrence of the errors and all errors in the same relative order.
You have a list of tasks to do, where some tasks depend on others. You have methods to
1. Get all tasks this task depends on
2. Get all tasks that depend on this task
3. Get time taken by this task.
Write a method to give a valid ordering of tasks.
Follow up-
Write a method to find minimum time taken to finish all tasks if you can do infinite number of tasks in parallel.