druva logo

Druva Interviews

1 experience17 reads
Druva | Software Engineer | Pune | Sept 2021 | (On campus)
druva logo
Druva
Software EngineerpuneRejected
January 22, 202217 reads

Summary

I interviewed for a Software Engineer position at Druva through an on-campus drive. The process included an Online Assessment, a Technical Interview, and a Hiring Manager round. Despite performing well in coding, I was ultimately rejected, likely due to my performance in core computer science theory subjects during the final round.

Full Experience

I applied for the Software Engineer position at Druva through an on-campus drive in September 2021, as a Final Year CSE undergrad targeting a new grad role for 2022. The eligibility criteria required a CGPA above 7 and no active backlogs.

The interview process began with Round 0: Online Assessment on the Mettl Platform, which lasted 90 minutes. It featured MCQs on Data Structures, Computer Networks, and C++, alongside three coding questions (one easy, two medium). The coding questions carried a higher weightage. I managed to solve two coding questions and several MCQs, which led to my shortlisting along with 42 other students.

Round 1: Technical Interview
This round, lasting approximately 50 minutes, was conducted by a Senior Principal Engineer. After introductory exchanges, the interviewer presented two coding problems for me to solve on a Google Doc. I could use any programming language.
1. Count Occurrences of an Element in a Sorted Array: Given a sorted integer array with duplicates and a target integer X, I needed to return the count of X in the array in O(log(n)) time. For example, if arr = [1,2,3,3,3,3,3,3,3,4,4,5,5,6] and X = 3, the output should be 7. I explained my approach using lower bound and upper bound, and due to time constraints, I was asked to implement just the upper bound.
2. Sum of Left Leaves minus Sum of Right Leaves in a Binary Tree: The second problem was to find Sum(left leafs) - Sum(right leafs) for a given binary tree.
With some hints from the interviewer, I was able to solve both problems. We also had a brief discussion about how Google Search works, covering basic concepts like DNS and IP.

Round 2: Hiring Manager Round
This round took place the following day, lasting about 50 minutes, and was led by a Director of Engineering. It was a thorough grilling on my resume, projects, and theoretical subjects. The interviewer started by asking about my three favorite technical subjects and the justifications for my choices. We then delved into specific topics:

  • DBMS: Questions included how to retrieve data faster in SQL, what an index is with examples, transaction logs, and how a DBMS handles a scenario where an update to the second table fails within a SQL query involving two table updates. I was also asked if I had designed any database schemas for my projects.
  • Resume/Projects: We discussed challenges I faced during my internship and a specific project I had set up from scratch.
  • OS: I was asked about threading, a comparison of TCP vs. UDP with real-life examples, which protocols Gmail uses, HTTP and HTTPS differences, what synchronization is with an example, how to achieve synchronization, and the differences between virtual memory and RAM.
Towards the end, I was given an algorithmic question: how to find the 10 most frequently used words in an e-book, similar to the LeetCode problem "Top K Frequent Words". After I provided an initial approach, he asked if any further optimization was possible, and I believe he was expecting a Bucket Sort approach. Finally, a behavioral question about the biggest mistake I’ve made in my life was posed.

Unfortunately, I didn't clear this round, likely because my performance in the theory subjects (OS, Computer Networks, and DBMS) wasn't strong enough.

Interview Questions (17)

Q1
Count Occurrences of an Element in a Sorted Array
Data Structures & AlgorithmsMedium

Given a sorted integer array with duplicates and a target integer X. Return the count of X in the array in O(log(n)) time. For example, if arr = [1,2,3,3,3,3,3,3,3,4,4,5,5,6] and X = 3, the output should be 7.

Q2
Sum of Left Leaves minus Sum of Right Leaves in a Binary Tree
Data Structures & AlgorithmsMedium

Given a binary tree, find the difference between the sum of all left leaves and the sum of all right leaves.

Q3
How Google Search Works (DNS, IP)
OtherEasy

Explain the basic functioning of Google search, touching upon concepts like DNS and IP.

Q4
SQL Data Retrieval Optimization
OtherEasy

How do you retrieve data faster in SQL?

Q5
Database Indexes
OtherEasy

What is an index in a database? Provide an example.

Q6
DBMS Transaction Logs
OtherEasy

Explain what transaction logs are in DBMS.

Q7
SQL Transaction Rollback on Failure
OtherMedium

Consider a SQL query that updates two tables. If the update to the second table fails due to a network issue, how is this handled? Does the developer need to handle this manually, or is it handled by the DBMS automatically?

Q8
Database Schema Design Experience
Other

Have you designed any database schema for any project?

Q9
What is Threading?
OtherEasy

Explain what threading is in operating systems.

Q10
TCP vs UDP Comparison with Real-Life Examples
OtherMedium

Compare TCP and UDP protocols. Provide real-life examples of where each is used.

Q11
Gmail's Communication Protocols
OtherEasy

Which communication protocols does Gmail use?

Q12
HTTP vs HTTPS
OtherEasy

Explain the differences between HTTP and HTTPS.

Q13
Synchronization in OS with Example
OtherMedium

What is synchronization in operating systems? Provide an example.

Q14
Methods to Achieve OS Synchronization
OtherMedium

How can synchronization be achieved in operating systems?

Q15
Virtual Memory vs. RAM
OtherEasy

Explain the differences between virtual memory and RAM.

Q16
Top K Frequent Words in an E-book
Data Structures & AlgorithmsMedium

Given an e-book, design an algorithm to find the 10 most frequently used words.

Q17
Biggest Mistake
Behavioral

What is the biggest mistake you've made in your life?

Preparation Tips

For the Online Assessment, I focused on Data Structures, Computer Networks, C++ MCQs, and practiced coding problems. Leading up to the technical interview, I prepared for standard DSA problems, specifically tree and array manipulation. For the hiring manager round, I reviewed my resume and projects thoroughly. However, I realized I needed more in-depth preparation for core computer science theory subjects like Operating Systems, Computer Networks, and DBMS, as these were heavily emphasized and contributed to my rejection.

Have a Druva Interview Experience to Share?

Help other candidates by sharing your interview experience. Your insights could make the difference for someone preparing for their dream job at Druva.