Phone Interview: 30 minutes, only on the phone, no coding. Brief introduction discussion about their work, and my past and current projects. One question only, I was asked to describe what data structure to use, and how I would solve this problem. I was asked to solve a build order question involves project dependencies. This exact question here: https://www.byte-by-byte.com/buildorder/
I got onsite right after this, 2 weeks later. Total of five interviews when I was doing onsite. Each interview started with a brief discussion about who I am and past projects. Like 1 minute.
Round 1: Given a m*n int matrix, also two points within the matrix, calculate the sum of the points between the rectangle that is formed using the two given two points. Solve it for only using the method once(O(n) time and O(1) space), solve it when method is used very often and no points will be updated(O(n) time for first call, O(1) for remaining, O(1) space), solve it for matrix needs updating(O(1) for time, O(1) for space).
Round 2: Classic count number of islands in a matrix, using sinking method.
Round 3(Lunch Interview): Design and implement a HashTable.
Round 4: A generic tree, each root’s direct children should not add to more than the root. (root = 100, c1= 50, c2= 30, c3 = 20). Insert a node into the tree, a node can be split into multiple node, (50 => 10, 40), insert as few nodes as possible.
Round 5: Design problem, decide on how many servers are needed for Instagram, each server stores, and renders message. This is related to bandwidth, and how many simultaneous processes one server can do. Next, each server sends response time records to a monitoring server that generates a response time report each 5 minutes, how can the data be transferred? This is mainly focusing on data compression. How to compress simple data, such as a list of response time, 15ms, 20 ms…….. Data does not need to be sent continuously, once per 5 minutes is fine, and data can be compressed using frequency of how many times each response time occurred, can be further compressed using a range of time instead of specific time.
Onsite Notes: First arrived at the recruitment building, recruiter gives a short briefing, mainly focused on how to use the onsite shuttle, how to eat, nothing important. Then I take a shuttle to the building where the team is looking for interns, and interview there. 5 interviews happened back to back, each for an hour, third one was 90 minutes, it was a lunch interview(Will get into details). Started from 9 am to 230pm. No breaks in between. (Ok maybe 2 minutes for big boys room and water. ) Overall, very pleasant experience, if you are well prepared, the interviews would be like just talking to your friends, the interviewers were beyond friendly.
Lunch interview, 90 minutes, you get to decide to have lunch first or interview first. HAVE LUNCH FIRST!!! For me, I did the interview first, I didn’t do very well that round, so the interview lasted a bit over 60 minutes, then we went to lunch, I was about 10-15 minutes late for my 4th interview because we had to walk back to the building. Get your lunch done first, then do the interview back in the conference room, even if the interview last a couple minutes more, at least the next interview is waiting outside the door. That is one thing I wish I knew earlier.
WHITE BOARD: I was coding on a whiteboard as big as the wall. So, no coding on computer.
I did my interview on Monday, its now Wednesday, I still have not heard back. But hopefully I get the intern.