Druva Interview Experience (1 Year Experienced)
I was interviewed for Software Developer profile at Druva, Pune in August 2018.
Round 1: Online Test
- MCQs related to File System, Unix, Computer Networks
- Debugging section to debug and correct the code
- Coding section with one question to be done in C++
Round 2: Telephonic Interview
- Reverse alternate k nodes in a singly linked list
- Simplify the directory path in Unix
- How does HTTP work
- Difference between Mutex and Semaphore
- What is wait() and notify() in multithreading
Round 3: Telephonic Interview
- Discussion of current project in current organisation
- Maximum contiguous sum in an array
- Maximum contiguous sum in a circular array
- Create a binary tree to represent sum of 2 binary trees
- Difference between HTTP and HTTPs. How does HTTPs work?
- Difference between multiprogramming and multiprocessing and their advantages over each other
Round 4: F2F Technical Interview
After telephonic interview rounds, I was called at their Pune office for the further interview process.
- Tell me about yourself
- Discussion on the current project in the current organisation
- What are RESTful APIs and its principles?
- Difference between GET and POST
- What are different HTTP response codes?
- Find the number of days between two given dates
- Find sum of nodes at each level of a binary tree
- Suppose there is a stream of emails which we are fetching from a mail server. We need to do some processing on these emails and print the output in the same order in which we received the emails.
If we fetch emails in the order M1, M2, M3, M4, our output should be in the same order, that is, P1, P2, P3, P4. Here P1 refers to the processed output of M1.. and so on.
Design this system using multithreading.
Round 5: F2F Technical Interview with Hiring Manager
- Why are you looking for a change?
- Write an expression in terms of f(n) for the following recursive function:
void
fun(
int
x)
{
int
i, b = 0;
for
(i = 1; i <= x; i++) {
b += i + fun(i - 1);
}
return
b;
}
- Create a library function for the below functionality:
Let there be a string s = “geeksforgeeks”, s2 = “geeksforgeeks”
Let the library function be str_tokenize(s, token)
Let token = “ee”
Now when we call str_tokenize(s, token) first time, it should return “g” (g eeksforgeeks)
For the second time, it should return “ksforg” (g ee ksforg eeks)
For the third time, it should return “ks” (g ee ksforg ee ks)
Whenever we call this method again on string s it should return null. However, if we call this method on string s2, that is, str_tokenize(s2, token), this should return “g” as we had not used string s2 earlier.
Also, there should not be any changes made to the original string which is being passed to the function.
– Example:
string s1=”geeksforgeeks”, s2=”geeksforgeeks”;
string token=”ee”;
cout<<str_tokenize(s1, token); //prints “ee”
cout<<str_tokenize(s1, token); //prints “ksforg”
cout<<str_tokenize(s2, token); //prints “ee”
cout<<str_tokenize(s1, token); //prints “ks”
cout<<str_tokenize(s1, token); //prints null
cout<<s1; //prints “geeksforgeeks”
cout<<s2; //prints “geeksforgeeks” - Provide a multithreaded solution for the above problem
Round 6: F2F HR Round
- Why are you looking for a change?
- General HR questions
Please Login to comment...