I applied on LinkedIn and was contacted by a recruiter.
Following that, I was sent an online test link with three questions. I’ve solved all three.
After a few days, I received an email from a recruiter to schedule the virtual interviews.
The recruiter informed me that each round would be an elimination round, meaning that if I did not perform well, they would not proceed to the next round. Three rounds were planned in total. [2 technical + 1 (Technical + Managerial)].
Round 1[1 Hour]: An SDE-2 intercepted it. His communication and technical abilities were excellent.
He began by introducing himself and then inquired about me. He then moved on to the interview questions:
- Create a singleton class.
- What exactly is normalization? Why do we practice normalization? What are normal forms? Give examples.
- Explain in detail any aspect of your project.
- Why is Kafka used in your project?
- What is the difference between synchronous and asynchronous communication, and why do you use it?
- The distinction between Process and Thread
- Decode an encoded string with square brackets and a number outside the square bracket. For Example : 3[a2[b]] is the given string. and output: abbabbabb
Result: The interview went extremely well. My result was quickly responded to by the recruiter. I only found out I had passed the interview after about 2-3 hours.
Round 2[1 Hour]: A Senior Engineer and Team Lead are in charge of this task. He was a lot of fun to talk to and very knowledgeable. The interview began with his introduction, followed by mine.
- He inquired about my project.
- What exactly is REST? Is HTTP a required protocol for REST?
- What is the point of REST? Why not use SOAP?
- What are the principles of OOPs?
- Give an example of polymorphism in action.
- What exactly are SOLID principles?
- Then he gave me a coding question [https://www.geeksforgeeks.org/word-ladder-length-of-shortest-chain-to-reach-a-target-word/].
Instead of returning the length of the shortest transformation sequence, I was asked to return the transformation sequence itself. I’d never seen this question before. It took me about 20 minutes to come up with a solution and another 20 minutes to code it [dry run on test cases + time spent explaining to the interviewer included]. I coded it in DFS, but later realized it could be approached better in BFS. So, in the end, I just told my interviewer that BFS would be a better approach for this, and we talked about it.
Result: I passed the interview.
Round 3[1 Hour]: An engineering manager took this.
- During the interview, she was very sweet and attentive to my approach. She inquired about my current project, as well as the what and why of the technologies employed. She then asked me to create a retry mechanism with an alert option (if the number of retries exceeds a certain threshold, an alert should be generated to a preconfigured medium (such as Slack, email, etc). The emphasis was primarily on the LLD portion.
- I discussed some approaches and explained my idea of creating a separate retry service for doing retries, a separate configuration class for retries, using a strategy pattern to choose alert medium, and so on. She seemed pleased with my design and requested that I write the classes. She was pleased with my design after reviewing and explaining it to her. She complimented me on the design.
Overall, I felt really good after this round.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer Complete Interview Preparation Course. In case you are prepared, test your skills using TCS, Wipro, Amazon and Microsoft Test Serieses.