Cloudera interview experience for SDE-1 On campus hiring 2022
Summary
I completed an on-campus interview process for an SDE-1 role at Cloudera, which involved a coding test with four programming questions and two subsequent technical rounds covering data structures, algorithms, operating systems, DBMS, networking, and OOPS concepts. I managed to solve most coding problems and discussed various theoretical aspects.
Full Experience
I recently participated in the on-campus hiring drive for an SDE-1 position at Cloudera in 2022. The selection process was structured into four main steps.
Step 1: Resume-based Selection
The first stage involved a screening of resumes, which I successfully cleared to move to the next round.
Step 2: Coding Test (120 minutes on HackerRank)
This round consisted of four programming questions, where two were easy and two were of medium difficulty. All of them were standard problems:
- Longest Increasing Subsequence
- Word Compression
- Last Remaining Element
- A problem described as: "For strings and an integer k, a selection of substrings is valid if the following conditions are met: The length of every substring is greater than or equal to k. Each substring is a palindrome. No two substrings overlap. Determine the maximum number of valid substrings that can be formed from s."
I was able to solve three of these questions completely and achieved partial acceptance for the fourth one.
Step 3: Technical Interview 1
My first technical interview began with a standard introduction. The interviewer then presented two coding questions on their platform (codebunk):
- Program 1: We discussed the theory of how a Binary Search Tree (BST) works, followed by a coding question to check if a given binary tree is a valid BST and how an optimal solution can be implemented. This is similar to LeetCode - Validate Binary Search Tree.
- Program 2: This was an array-related question, essentially a Kadane's Algorithm problem focusing on its complexity, asking for the maximum subarray sum. This is similar to LeetCode - Maximum Subarray.
Following the coding problems, we moved to theoretical discussions:
- How memory allocation works in a program, specifically static and dynamic memory allocation.
- Deep dive into OOPS concepts, particularly the abstraction part.
- Differences in Java String declarations, with examples like
String str = "abc";andString str = new String("abc");.
Step 4: Technical Interview 2
This interview started with the usual "Tell me about yourself" question. Afterward, we covered several theory questions:
- Differences between Array and Linked List.
- DBMS – ACID properties, along with real-life examples.
- OS – Deadlock Condition, the difference between thread and process, semaphores, and Mutex.
- Networking – HTTP requests, DNS, how TCP works, and how various processes operate in a network, among other related questions.
Finally, there was a programming question:
Library System Design: I was asked to design a library system capable of storing a maximum of 50 songs. The requirements were:
- If the library size is less than 50, simply add the song.
- If the song already exists in the library, it should be removed from its current position and moved to the top (most recently played/added).
All insertion and deletion operations were required to be performed in O(1) time complexity. I decided to use a combination of a Queue and a Hashmap for my solution to meet these requirements effectively.
Interview Questions (15)
Standard problem to find the length of the longest increasing subsequence in a given array.
Problem involving compressing words, specifics not detailed but common in coding challenges.
Problem to find the last remaining element after a series of operations or deletions.
Given a string s and an integer k, determine the maximum number of valid substrings that can be formed from s. A selection of substrings is valid if the following conditions are met:
- The length of every substring is greater than or equal to
k. - Each substring is a palindrome.
- No two substrings overlap.
How does memory allocation work in a program (static and dynamic memory allocation)?
Deep dive into OOPS concepts, particularly the abstraction part.
Explain the difference in Java String declaration: String str = "abc"; and String str = new String("abc");.
Standard introductory question: 'Tell me about yourself'.
Difference between Array and Linked List.
DBMS – ACID properties and give real-life examples.
OS – Deadlock Condition, the difference between thread and process, semaphores, Mutex.
Networking – HTTP requests, DNS, how TCP works, and how various processes operate in a network, among other related questions.
Make a library system where it can store 50 songs at most. The requirements are:
- If the library size is less than 50, simply add the song.
- If the song already exists in the library, it should be removed from its current position and moved to the top (most recently played/added).