Software Engineer (CPD)
Interview Date
September 2024
Result
Rejected
Difficulty
Hard (OA Codeforces 1700+ rated), Challenging.
Rounds
3 rounds (Online Assessment, System Coding Interview, Debugging Round)
Drive Type
Full-Time, Off-Campus (recruiter approached on Lin
Topics asked
Detailed experience
College: Not Specified (Candidate was SWE-1 at Oracle with 8 months YOE)
Interview Date: September 2024
Interview Type: Full-Time, Off-Campus (recruiter approached on LinkedIn)
Result: Rejected
Difficulty: Hard (OA Codeforces 1700+ rated), Challenging.
Rounds: 3 rounds (Online Assessment, System Coding Interview, Debugging Round)
Topics Asked: Data Structures, Algorithms, Concurrency, Multithreading, System Coding, Debugging, Object-Oriented Design, Project Discussion
The candidate, an SWE-1 at Oracle with 8 months of experience, was approached by a Rubrik recruiter on LinkedIn for a CPD Role.
Round 1: Online Assessment: This was a 75-minute assessment consisting of four coding questions. The difficulty level of all questions was hard (Codeforces 1700+ rated). The candidate solved two questions completely. There were also 10 MCQs on multithreading, consistency, OS, and code snippets. The recruiter confirmed clearance of the OA and scheduled interviews.
Round 2: System Coding Interview: This 60-minute coding round expected a complete working code. The candidate was asked to implement three functions in a given class. They successfully implemented two functions using multiple data structures and explained the approach for the third, though ran out of time to complete the code. The interviewer also asked about improving code performance in a multithreaded environment. One Reddit user had a similar experience with a question like: "Assume there is a brand new disk and you have to assign a physical block for every logical block of data. If a physical block already has a logical block mapped, then add the new data to the same block else create the mapping and map the data. Retain the order of the data being mapped to a particular logical block. When the data for a particular logical is retrieved, it should give the latest data mapped to it. The data can be of any kind, that is, map, string, number, list, etc."
Round 3: Debugging Round: This 60-minute round focused on understanding, explaining, identifying bugs, and suggesting optimizations for multithreaded scenarios in an existing code. The code was related to a banking application with multiple threads executing functions in parallel. The candidate explained functions, found bugs, and suggested using locks and concurrent data structures (read-write lock and concurrent hash map) for performance optimization. The interviewer also asked about the candidate's current project. Another Reddit user mentioned a banking question with `addTransactions()`, `fetchTransactions()`, and `printTransactions()` functions, with the task of making them thread-safe without major code changes.
The candidate received a rejection email after the second interview round.