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

Round 3: Telephonic Interview

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

Write your Interview Experience or mail it to contribute@geeksforgeeks.org

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.