Microsoft | Senior Software Engineer | April 2022 | Offer (Accepted)
Anonymous User
7812

Years of Experience : 5

In early April 2022, I was reaached out by a recruiter for Microsoft SDE2 Role.

16th April : Codility (Level - Easy Medium): 2 questions.

  • image
  • image

For task 1 100% test cases were not passing.

29th April : Virtual-Onsite Round 1 (Level - Easy Medium) : I was asked one coding question and a follow up to that. Before that I was grilled on past projects and some Database Query Optimization techniques. I could see the interview being satisfied with answer.

From a given list of array having integers I had to output the missing numbers

This is trivial. after that he asked for time and space complexity

Follow up Question :

Now as a follow up question I was asked to print out the range of numbers missing in the array. For Example : arr = [1,2,3,6,8,1000], the ranges would be [4,5], [7,7],[9,1000].
I solved this one too. This wasn't difficult too.

29th April : Virtual-Onsite Round 2 (Level - Intermeditate) : This was purely a design round (OOP, LLD and later HLD)

I was given a Product Class having varioud properties like id, expiry date, type and few more (I dont remember all). I was given an API **getProduct()** and I was asked to design the API in such a way that it could fulfill multiple type of queries like getting product by id or getting product by type or getting product of a certain type with expiry date less than current date. Basically the api should be to accomodate any kind of query.
So the question was how would you proceed with such a problem and come out with an elegant approach.

The question was a little vague, I asked few clarifying questions before proceeding with any kind of approach.

  • I cleared from the begining that having multiple and growing parameters in the method will make things messy and inefficient.
  • I suggested that we must include some level of encapsulation and Abstraction here and created a Class ProductFilter (abstract)
  • I suggested I would use a factory pattern because the interviewer had asked me, What if in future u wanna cteate more and different kind of filters
  • Then I started defining properties of ProductFilter and used custom classes like ATTRIBUTE, OPERATION and a few more.
  • The I went for something like ApplyFilter Interface which can be used to implement different filtering strategies and could be used as dependency injections.
  • After all this he was happy with the approach and asked me to write down blueprint of all the classes, enums and interfaces.
  • Time was up, he was happy with the approach as I suggestd some optimized caching based query buildng techniques.

To fellow leetcoders, I know this may not be a good or most elegant solution out there but this is what I could come up during that interview.

I will be really happy to know your solutions too, please post them in comments so that we all can learn too.

Round 3 (HM Round / AA Round):
This round may or may not have technical questions depending on your previous rounds performance.
This round was taken by a very senior guy from US and it was a really enjoyable and learning conversation.

He asked me basic Behavioural questions (Like conflicts, Leadership and few other topics). You may find these in Amazon Leadership principle guide.

He also went deep in my current and past projects.


To my surprise, I was offered Senior Software Engineer position (L63).

I understand this post may be a little verbose, hope it helps anyone.

Upadte : Compensation Details

Comments (15)