Recruiter Call :
Applied through IinkedIn and got a call from recuriter, After 2 week recruiter scheduled 3 technical rounds on a single day.
Technical Rounds:
First 2 rounds were back to back and each of 1 hrs. Recruiter told me that result of these 2 rounds will decide that whether 3rd round will happen or not. Pattern of first two rounds were similar.
An introduction followed by 2 coding questions 1 easy and 1 medium/hard question. They expect you to solve these 2 questions in 45–50 minutes. If you able to solve 2 coding question then last 10 minutes for C++/ java specific concepts. Since my experience was in C++ so they asked me from C++, like smart pointers and their implementations(be prepare to write code), virtual functions, abstract class, malloc and new etc. I would recommend to prepare programming language specific concepts because that will give you edge over other candidates. Coding question were from Array, application of Binary search, Trees, BST, Heap, sliding window (I got 1 tough question), Recursion/DP problem. 3rd round was after 1 hours, since my 2 rounds were positive so proceeded for the 3rd round.
3rd round was kind of low level design, first 10 minutes interviewer asked me few C++ concepts like copy constructor, = operator overloading, static binding vs dynamic binding. Then he asked me to write a design for a book store where books are kept in different genre. I had to write abstract class, few book genre class and client side class, wrote a factory design pattern. After completing this he asked me about singleton design pattern and write a dummy singleton class and object creation method. At the end he asked me 2 coding questions one from linked list and another from graph BFS, discussion over complexity of BFS(why O(V + E)). He asked me to write pseudocode, but wrote full code.
I got result of 3rd round next day and recruiter asked me to attend manager round same day but I asked to attend on next Monday.
Manager Round:
This round took 1.2 hrs. Manager was more of a technical person. Discussion started with my current project and past experiences. Asked me to choose my best project from my CV which I enjoyed the most, He asked all the technicality and why I chose that method. He also suggested some method to solve that problem, asked me why can’t we do using his method.
After 40 min of project discussion asked me few behavioural question. Asked me why I want to leave my current company and all.
At the end gave me 1 coding question, asked to write code then discussion over edge cases, complexity, alternative methods. It was exhaustive and tiring round.
I got result of this round on same day and she asked to appear for 1 more round after 2 days.
Director Round:
Asked about me and my experiences and why I want to change, Why I want to do a domain switch (systems s/w to application s/w). Again he explained me why they chose my profile based on my experience.
Then asked me 1 high level design question related to designing a filesystem for video file storage. Discussed about scalability, resiliency, storage/filesystem selection for random reads/writes, sequential reads/writes.
Got result on next day and It was positive.