Microsoft Interview Experience for ML Engineer 2020
Microsoft Recruitment Team for Machine Learning Engineer confirmed my application for Machine Learning Engineer in India. In this post, I’ll share my experience in the hopes that it will be useful to some of you. I have 2+ years of experience working as a Machine Learning Engineer at startups.
I received an email from a Microsoft Recruiter about a position in Software Engineering and Machine Learning at Microsoft. I gave her my resume, and within an hour, I received a call to explain the process. I was told that my resume would be forwarded to the hiring manager, that if I was chosen, another recruiter from the staffing team would contact me, and that I would have an interview the following Saturday (Week2 – Saturday).
I received a call from another recruiter informing me that my profile had been shortlisted for an interview. On Saturday, I’ll have three rounds of interviews (week2 – Saturday). The interview will cover topics such as data structure and algorithm, design, and machine learning. I was contacted on a regular basis to confirm my availability for an interview. The recruiter is simply amazing for ensuring that I have a very smooth interview experience.
3. Week2(Saturday): The Interview Day
- Data Structure & Algorithm Questions (1 hour).
- Question1: A larger string is followed by a list of smaller strings. I was instructed to include the opening and closing xml tags (say italic). Remove the pair of tags that is closest to the longest pair of tags. It is a more advanced version of merging intersecting intervals. I was asked to write test cases, so I wrote three to test edge cases. https://www.geeksforgeeks.org/merging-intervals/.
- Question2: Two arrays are provided, with each index representing a free and busy slot for two different people. When both slots are free, I was asked to find the maximum contiguous slot size.
Follow-up: What is the maximum available slot if I am only allowed to change one busy slot to free?
Solution: With the help of two busy (and free) arrays of two people, extract all (start, end) pairs for intersecting slots and slightly modify the merge interval to find the maximum slot size.
I quickly solved both problems. But I asked many clarifying questions, and I began with brute force and built on top of it with logical progression.
- Low Level Design (1 hour).
- (a)Design LRU from scratch: I used a Double Linked List and a Hash Map to solve the problem. I just knew this, built it from the bottom up, and as I moved, I kept getting logical progression to solve the problem. https://www.geeksforgeeks.org/lru-cache-implementation/
- (b)How to enable Multiple user simultaneously use (or block) using LRU to ensure consistency.
- Hiring Manager (1.5 hour).
- My resume and experience are heavily debated. All of my projects (ML projects) are thoroughly discussed, including the approach I took, my role in the project, how I solved a few challenges, and much more.
- The team for which I was hired is explained to me.
- When I inquired about my potential role if chosen, it was clearly explained with all details.
I received mail from Microsoft, I was selected and asked for all the details and supporting documents.
- Coding: In general, I use GeeksforGeeks, leetcode, and Codechef to do a lot of coding. GeeksforGeeks is a great help to me.https://www.geeksforgeeks.org/practice-for-cracking-any-coding-interview/
- I learned data structure and algorithms from GeeksforGeeks. All the concepts are clearly mentioned here.https://www.geeksforgeeks.org/data-structures/.
- Our behavior should be good throughout the interview process because it is the main point that all of the interviewers will notice.
Finally, I was searched when I was prepared, and I am now overjoyed. I’d like to thank GeeksforGeeks and the community for assisting me in obtaining this opportunity. I hope this post has been of some assistance to some of you.