OCI data scientist IC2 超详细面经

Current :
Status: <1 YEO as Data Scientist
Location: Houston, TX

Interview Process:
There were 7 rounds in total (2 phone interviews and 5 onsite ) and one lunch interview focussing on behavioral questions

1st round:
Leetcode Easy level problem asked : Merge two sorted linked lists (like https://leetcode.com/problems/merge-two-sorted-lists/), it was a one hour interview, going through all tech difficulties and clarifying the requirements and constraints, the problem was solved in 40 mins, the rest of the intervew concentrated on resume and projects.

Result : Got the mail that i cleared on same day, scheduled the next round 2 weeks later due to some constraints.

2nd Round :
This round lasted for one hour, and was mostly about OOP and a bit of system design. The question was very simple, I was asked to build a file handler class, with corner cases covered for. Do not remember the corner cases, but I basically built a rotating file handler. Then the interviewer proceeded to ask about how to expose this as a rest api, and cater for n users. Further questioning was on distributed system concepts like load balancing and REST etc.

Result : since i took the interview on a friday, the result was told to me on the following tuesday, and was asked to pick a date for onsite interviewing 2 weeks from that tuesday.

Onsite:

The onsite round happened in Seattle, in the second week of december, I was told the schedule would be for 4 rounds, 2 ML, 1 Algos and Coding, 1 System Design (they took 5 rounds instead, added another coding round, I think there was some miscommunication within the team, I asked about this, they said the interviewing team was told 5 rounds and the recruiting was told 4 rounds, as one can imagine, I did not press to remove that interview lol).

The day started at 10 AM

1st Onsite : ML round for one hour, was asked basic ML questions and one ML problem to brainstorm with the interviewer.
For the basic ML questions part (around 20 minutes) I found that the interviewer asked from Analytics vidhya’s 40 interview questions, I knew it was that source, since I also looked at the same questions while preparing. Some statistics questions were also asked.

The ML problem was about comment sentiment analysis using Deep neural nets, I answered as well as I could explained different approaches for data preprocessing, usage of word embeddings and the model building itself, explained the skip gram model for this. We went deep into how the input layer was itself built, what the size of the tensor would be given certain constraints on word limit for each comment.

2nd Onsite:
This round was held immediately after the 1st round (no breaks), concentrating on coding. Interviewer was kind of terse and to the point, poker face and was in kind of a hurry so completed the interview in 45 to 50 mins , instead of the 1 hour assigned.

First 20 mins were on resume and basic coding/ data structures questions. I only remember the following questions:

  1. Process Vs thread explain the diff
  2. what is a multi threaded program
  3. What are queues and stacks, explain LRU
  4. explain DP using an example

Coding was an easy level problem on removing nodes in a sorted binary tree and reconstructing it. To be frank, I felt I screwed up on this, as the interviewer was constantly disagreeing even though I was very politely explaining my thought process, kind of flustered me (maybe it was a tactic, maybe not). End result, he left 10 to 15 mins early.

3rd Onsite:
This was an ML round (remotely held, scheduled for an hour). The interviewer seemed to be more experienced than the first interviewer in terms of questions he asked. There were three parts to the interview:
a) Basic resume walkthrough, where he asked about the ML problem I was solving in my work.

b) General ML questions, these questions were much tougher, I am noting some down below:
i) explain Resnet architecture, can you draw it for me? (could answer the concept not the architecture)
ii) LSTM gates, why there is a forget gate, can you draw the architecture and tell me how it works? (again concept not architecture)
iii) difference between GRU and LSTM
iv) do you know Markov chains and hidden markov models in the context of ML? (I could not answer this)

c) Behavioral questions. Here I have to note that the question he asked me kind of screwed me, not because it wasnt straightforward, but I guess the answer I gave led me into a trap. The question was

Interviewer: how would you solve a work related (purely ideas and not personal) conflict with a co-worker?
Me: I would try to introspect first on my side, try to see if I was miscommunicating, and then schedule an informal meet with the co worker and try to resolve the problem.
Interviewer: What if the coworker does not still see your point?
Me: I would try to work with him/her on his point of view, and reason out pros and cons of that approach, and then request the same with my approach, that way the communication is much more lucid and grounded.
Interviewer: Lets say this does not work, what would you do?
Me: (Here I guess i fell into the trap) I said, if its a technical problem, we need to rope in some higher authority like a manager to have a third view point, and move ahead.
Interviewer: Lets say this does not work and the co-worker gets pissed at you.
Me: (Now i was getting annoyed, because i felt he was ragging on me) the presence of a manager, should resolve things on either side, if the manager feels we should go with the co-worker’ solution, its fine with me because, its important to get the job done, and maybe in due time I would see his/her viewpoint more favorably and vice versa. Gtting pissed part, I said its a tech problem and not a personal one, so any miscommunication from my side i would apologize for
Interviewer: Ok, lets end it here. (poof! done, after an intense questioning)

This interview overshot by 15 minutes, I felt I did fine. **How would you guys answer this question? **

4th Onsite:
This round was a system design round, was asked a simple coding problem to start with and then went on to the system design part, where the logic would be embedded.

The problem was straightforward, I needed to count occurences of domain names in log files and store them in a backend database. First part was designing logic for it. second part was to design a hadoop like map reduce for distributed processing of this logic for log files stored in different nodes. To make it less complex, they asked me to build a simple server that would handle the requests over n nodes. I designed a simple websocket architecture, where the central server pulls from the nodes at certain time intervals and updates the master node , with most current data.

The interview went on for 1 hour, after which it was cut off abruptly as i was still writing the solution.

5th Onsite:
This was the unscripted coding round, which I was not prepared mentally for. But the interviewer was very pleasant, and this turned out to be the most enjoyable round of all. The interviewer talked to me for around 30 minues on resume, goals and why I wish to see myself at Oracle (loads of behavior questions like that). next 30 mins, was about how to use regular expressions to get certain patterns from a corpus. This was very straightforward, but the interviewer added more and more constraints and test cases, which made it a bit complex. I felt I did not give an optimal solution at the end.

Lunch Interview:
This happened between the 2nd and 3rd rounds, the interviewer was a stand in for the hiring manager, who was unavailable that day. Loads of behavioral questions, overshot the time, lunch was good though!!!

I was conveyed the result after 1 week. a generic mail from the recruiter. The team did not find you to be a match for their requirements at this moment.

I would have to say that barring the coding round, with the terse interviewer and the conflict master, the rest were very polite.

Experience Rating : 4/5 (1 point taken for those two interviewers)
Timeline rating : 4/5 (result was told very late, considering they did not want to take me in anyways)