First, I had an HR review with an American interviewer. After that, there were three technical interviews, which involved data structure questions.
The process took too much time, almost two months. In the end, there were many candidates, and they chose one from us.
It's insane how long the interview process was.
First Technical Interview:
Implement the strtok function and expand by asking questions related to multithreading.
Second Technical Interview: Describe the data structure for caches (a vector of caches), where each cache is divided into segments. Provide an API to use this structure that accepts one segment and revalidates it.
After the implementation, ask many questions about threads (mutex for each cache/mutex for each segment) and the use of timestamps.
Third Interview:
Describe a game played on an n x n matrix with 0s and 1s. In each iteration, accept a 0 or 1 and place it in the bottom-left cell, while the other cells rotate (the top-right cell exits the matrix). Ask to implement a data structure for the game. (Solution: Use queues for each row, and a trick for the columns is required).
Provide a file interface with a read function that returns one row from the file on each call. Implement:
a. A function to print the first N rows.
b. A function to print the last N rows.
The following metrics were computed from 6 interview experiences for the Microsoft Software Engineer role in Haifa, Israel.
Microsoft's interview process for their Software Engineer roles in Haifa, Israel is very selective, failing most engineers who go through it.
Candidates reported having very good feelings for Microsoft's Software Engineer interview process in Haifa, Israel.