Oracle OCI | SDE 2 | Pleasanton | Jan 2020 [Reject]
Summary
I interviewed for an SDE 2 role at Oracle OCI in January 2019, which involved a phone screen followed by six onsite rounds, covering coding, system design, and behavioral questions. Despite my efforts, I was ultimately rejected.
Full Experience
My interview journey for the SDE 2 position at Oracle OCI in Pleasanton, California, took place in January 2019. I brought 5 years of experience to the table.
Phone Screen
The process began with an hour-long coding exercise. I was presented with a map detailing direct friends and tasked with creating an API. This API needed to take a person's name and return all levels of their friends. For instance, if given "Bob", the output should clearly delineate Level 1, Level 2, and Level 3 friends based on the provided map structure.
Onsite Interview (6 Rounds)
The onsite portion was comprehensive, spanning six distinct rounds:
- Bartender Round (Virtual): This round was with an interviewer from a different team. They asked several network-related questions, queries about hypervisors and Docker, and a few behavioral questions. I also had to solve an easy-level coding problem on a whiteboard.
- Lunch Interview: This was a more informal discussion with the hiring manager. We talked about my current role interests, any upcoming interviews I had, and the work culture at OCI. It was primarily behavioral.
- System Design: Another round with the hiring manager, focused on system design. I was asked to design a URL shortening system. The discussion also delved into REST methods, HTTP status codes, hashing, and encryption principles.
- Coding Round: I was challenged to design a class that supported four operations:
set(key, time, value),set(key, value),get(key), andget(key, time). My approach involved using a map of maps, where the nested map was a TreeMap to facilitate sorting based on start times. - Coding Round: The task here was to take a list of strings and return all possible combinations that could form a 4x4 word grid. I attempted a brute-force approach, though I felt the interviewer himself seemed a bit unsure about the problem and offered minimal input.
- Experience Discussion: The final round focused on my past work experience, specifically going through Object-Oriented Design (OOD) in previous projects, questions about cloud-native application development, and some database-related topics.
Throughout the interviews, the team emphasized that their tech stack was primarily Java, and relevant experience was mandatory. I was quite surprised, however, that not a single question was asked specifically about Java or my experience with it.
Interview Questions (4)
Friends of Friends API
Create an API which takes in a person's name and returns all levels of friends of this person.
Example:
Map:
"Bob" : "Sandra", "Alice", "Eric"
"Sandra" : "Bob", "Don"
"Alice" : "Bob"
"Eric" : "Bob"
"Don" : "Sandra", "Tim"
"Tim" : "Don"
Member Name: "Bob"
Result:
Level 1 friends: Sandra, Alice, Eric
Level 2 friends: Don
Level 3 friends: Tim
URL Shortening System Design
Design a URL shortening system.
The discussion also involved questions about REST methods, HTTP status codes, hashing, and encryption.
Time-based Key-Value Store
Design a class that supports 4 different operations:
set(key, time, value)set(key, value)get(key)get(key, time)
4x4 Word Grid Formation
Given a list of strings, return all possible combinations of strings which would form a 4x4 word grid.
Input: ATOM, ACID, PARK, LACK, MARK, DARK
Example Grid:
A T O M
C A
I R
D A R K