Technical Interview Round 1:
- The interviewer did not introduce himself and directly asked me for my introduction (it took around 2-3 mins). Then he asked me a DSA problem (he put a problem statement and one test case on the meeting chat window) – https://www.geeksforgeeks.org/given-sorted-dictionary-find-precedence-characters/
I asked a couple of questions about the given test case to understand the problem properly and he explained everything to me. After 10 – 15 min of discussion, I explained to him a topological sorting approach and he was satisfied with it and asked me to write code for it. He asked me to open Ideone (online IDE) and I wrote the code for my approach there, I explained my code to him and he made me dry run the test case (It’s already been 45 mins after explaining everything).
- The questions he asked me about processes and threads. What are multiprocessing and multithreading? In which architecture debugging would be easy, multiprocessing or multithreading? (With proper reason). (This took 3 – 4 minutes)
- In the end, he asked if I had any questions, and I asked about the individual responsibilities of the MTS position and what I would be working on if I get selected.
Technical Interview Round 2: This round took around 50 minutes
- First the interviewer started introducing herself and then asked me for my introduction followed by questions –
- What is compile time and run time polymorphism? She asked me for real-world examples and I was expected to explain them with code. I was given a choice to open any IDE (I chose VS Code).
- Then she asked basic questions on architecture like what is a bit? What is a byte? She kept asking details about this topic like (How do we represent this and how computers do understand 0 or 1 bit, how they are useful, and how information is stored in bits and I explained as much as I could )
- A very detailed discussion about array data type in C++ language followed by a question where I had to tell how much memory was occupied by the array (if the array contains 5 integers and 4 characters)
- She kept asking a few more basic concepts like what is a binary system? She asked me to write a binary representation of 31 and asked me the procedure to obtain the result.
- Then I was given a code snippet and I had to predict the output (she put it on the chat window and I pasted it on my vs code)
- DSA question: https://www.geeksforgeeks.org/majority-element/
I told her 2 approaches and then she asked me to write code for the optimized approach (O (1) space complexity and O(n) time complexity).
Then she asked me to dry run one more test case (which I had to select myself) along with the given test case.
- In the end she asked me if I had questions, I asked about creative cloud along with the same questions as the previous round.
Technical Interview Round 3 ( 1 hour):
- First the interviewer introduced himself and then asked me for my introduction. He asked me my favorite programming language (C++) followed by the questions-
- What is a singleton class? (I had no idea about it so I told him clearly)
- What is a virtual function? What is an abstract class? Applications of these two concepts in the real world. Can we make objects of abstract classes?
- Given millions of numbers in an array, which sorting algorithm will you use to sort these numbers? (I had a detailed discussion on this with him)
- Given an array of N numbers, find the top 10 largest or smallest numbers from the array.
Follow up: given a stream of numbers, find the top 10 largest or smallest numbers from the stream. These questions were only discussed (approaches, time complexity, space complexity)
- Given a set of 2 types of objects (cat object, dog object), you have to sort the set in such a way that all the cats come before dogs. https://www.geeksforgeeks.org/segregate-0s-and-1s-in-an-array-by-traversing-array-once/
He asked me to open an editor and I chose VS Code. I explained to him two approaches and wrote code for the two-pointer approach.
- Follow up: he added a mouse into the same set and asked me to sort the set such that all mice should come first followed by cats and then dogs (0, 1, 2 sortings). He asked me “how would you update your code for this situation?”
I discussed everything about the approaches and talked about time complexity and space complexity.
- Then he asked me one more DSA problem- https://www.geeksforgeeks.org/edit-distance-dp-5/
- Different types of CPU scheduling algorithms
- What is process and Threads? What is Mutex? How is the locking system implemented in mutex?
- In the end he asked me if I had any questions, I asked about the work-life at Adobe and the same questions as previous rounds.
Finally, I got the offer 🙂