- Online Round : The online round was conducted on HackerRank. There were different sections including subjective, objective and coding questions. Total time for the contest was 90 minutes. The details of different section is as follows:
- MCQs (combined): 17 marks. 13 questions were asked based on probability, permutation and combination, matrix, eigenvalues, aptitude based, CS fundamentals etc.
- Coding Question: 5 marks. One question was asked with was based on Dynamic Programming. Due to easy test cases, few of the sample test cases were working with greedy approach as well.
- Pseudocode Question: 3 marks. One pseudocode question was asked which was about printing a matrix in spiral form. https://www.geeksforgeeks.org/print-a-given-matrix-in-spiral-form/
- Essay: 3 marks. One essay was asked which was about IoT (Internet-of-Things).
Next day, the list of shortlisted students were sent. They shortlisted 18 students for next round interview out of approx 140 students who appeared for the test.
- Interview Round : It was a telephonic interview. They asked to keep mobile phone, Skype and hangout all ready as interviewer can use any of these medium. However, my interview was completely telephonic and took about an hour.
My interview started with greetings and brief introduction to each other. After that she covered the following things in the interview.
- Project-Based : She pointed out one of projects from my resume. She asked me to completely explain the project including the technologies used, end-goal of the project, accuracy of the project, working model etc. I was able to explain all these things to her. Then, she made some changes to ideal conditions that we had taken in our project and she asked if how will I change my product given certain real time problems to be considered. I was able to discuss some really good things to consider and changes we can do.
- CS-Fundamentals Based : She asked me about the different CS core courses taught to me. I said the name of all the courses taught like OS, CN, DBMS, DSA, DAA, AP(OOPS-Java), C Programming etc. She then asked me whether I know the concepts of OOPS. Then she asked me about concepts of Inheritance and explain it. Then she gave me a case with 5 nodes and their parent-child relationship and asked me a few questions related to this. She asked about different methods, objects and other properties that parent child can share in this case. I wasn’t sure about the answer to the last question so I told her the same.
- Data-Structures Based : First she asked my favorite coding language. Answer to which was C++. Then, she started asking questions. Since, the interview was telephonic, I was not asked to write full working code for any of the questions. She was more interested in discussing my approach to solve the problem, time complexities, space complexities, optimized solution possible, edge cases of the problem and pseudo implementation of that. Following are the questions she asked.
- Given a number as string, convert every character of the string to it’s equivalent digit and store it in applicable data type. She roasted me on edge cases of it like negative numbers or very large number etc. She asked me to write the code on paper and explain it to her. https://www.geeksforgeeks.org/converting-strings-numbers-cc/
- She asked me what inorder, preorder and postorder traversals are. She then gave me inorder and postorder values of a tree and asked me to return the preorder of the same. I took a bit longer to make the tree and get the order but I kept her engaged during this by discussing my approach and finally gave her the answer. https://www.geeksforgeeks.org/print-postorder-from-given-inorder-and-preorder-traversals/
- Given that you need to maintain an address book for phone numbers which data structure will you prefer using Hash Tables or Binary Search Tree(BST). She then put different conditions each time like what if I need to make both insertion, deletion faster. What if I want to prevent chaining. What if we want the data to be sorted in some order. She asked time complexity for each of the cases. We also had slight discussion about self balancing tree in between this. https://stackoverflow.com/questions/34601345/is-hash-table-proper-for-implementing-the-address-book-feature-for-a-cellphone
- Given an unsorted array of size ‘n’ with all values distinct. How will I calculate median of array? Time complexity of same. Then, she asked me about how will I calculate median of medians. She roasted me over time complexity, space complexity, optimised solution for the same. It didn’t click for the first time to me. I discussed brute force with her. Then she insisted on thinking optimised solution. After having some discussion, I was able to get to solution using pivot but I said that I am not confident about coding implementation of the same at the moment. https://en.wikipedia.org/wiki/Median_of_medians
- Extra-Discussion : She then said, now I have one last question for you. Why do you want to do an internship and Why Adobe? I answered this question properly about things that interest me and why I found Adobe to be a company to do intern with. I shared what I enjoy doing and that I want to work with real-time products that users are using and work on how we can improve their user experience. At last she asked if I have any questions for her. I then asked her a few questions about how they make product that becomes part of customers life.
This way my interview ended up and besides results, it was really a very good experience to have this interview. I personally liked the way she was interviewing very much.
Finally, 2 days after the interview, they shared final result with us. Out of 18 shortlisted students, 6 were finally selected. I am glad and lucky to be one of them.