Tip 1 : Do Competitive coding if you can. It is not just about problem solving, It sharpens your brain and it will help you grasp things much quicker which will further help you as a software developer
Tip 2 : Don't learn concepts, try to find logical aspects of anything you read. For ex, when you read about a data structure, try to come up with the advantages and limitations of using that data structure. It will help your thinking ability during Interview,
Tip 3 : Learn to write clean and maintainable code. In machine coding rounds, whenever you are implementing something, make sure to implement it in such a way that if the requirement is tweaked a bit, it;s not too hard to make the changes.
Tip 1 : Do not put false things on resume, as you will surely be grinded
Tip 2 : When specifying an achievement, elaborate if possible
The round was scheduled one week after the first phone call with the HR. It was set for 1 Pm to 2:30 PM on 17th august 2021. Me and the interviewer both joined on time and he started the conversation lightly by asking me about myself and the prev experience that I had. Then he asked me whether was comfortable to start the round, to which I said yes, and so the round began.
I was asked one DSA problem and one Puzzle. The DSA problem was of medium difficulty. I would say it was of difficulty a bit above the usual difficulty of codeforces div 2 'C' problems. I was given a few minor hints by the interviewer for the first problem , to which I caught up quickly and gave the optimized solution. The second one was a puzzle problem which I solved without any hints.



If 'N' is 5 and 'K' is 3 and the array is 7, 2, 6, 1, 9
Sorting the array we get 1, 2, 6, 7, 9
Hence the 3rd smallest number is 6.
Step 1 : Since each of the lines were internally sorted, I thought that something like merge sort should work here
Step 2 : I though of using pointers technique. I said i will initialize 1000 pointers, i'th pointer pointing to the i'th line respectively
Step 3 ; I was thinkling of the further solution when he asked me how would you find the smallest number first ?
Step 4 : I told him I can compare the numbers sitting at the pointers' place and the smallest among then is definitely the smallest number ( as each lines were internally sorted )
Step 5 : I instantly realized that in the same way I can get the k'th smallest number. I told him after finding the smallest number, I can move the pointer of the smallest number one step forward, again compare the 1000 pointers to get the second smallest number, move the pointer of the second smallest number one step forward.
Step 6 : same process can be continued k times to get the k'th smallest number.
Step 7 : He was satisfied with the correctness of the approach and asked me the time complexity of this approach.
Step 8 : I said the time complexity is O(n*k) where n is the number of lines in the file and k is the order of the number which we have to find.
Step 9 : He was satisfied with the approach and complexity and asked me to write the pseudo code of the same.
Step 10 : I wrote the pseudo code, he was satisfied again
Step 11; He asked him whether the solution can be further optimized
Step 12 : I was thinking for a few minutes, he said think if you can use any data structure to optimize it
Step 13 : I instantly grabbed that the solution can be optimized using heaps. I told him we can use a min heap instad of comparing the 1000 pointers every time. We can maintain a heap of 1000 elements ( for those 100 pointers) , at each step we can we can remove the smallest element, add the new element after increasing the pointer, and repeat this k times.
Step 14 : He asked me the complexity again, I said it was O( K*logn ) now. He was satisfied
There are 4 persons (A, B, C and D) who want to cross a bridge in night.
There is only one torch with them and the bridge cannot be crossed without the torch. There cannot be more than two persons on the bridge at any time, and when two people cross the bridge together, they must move at the slower person’s pace. Can they all cross the bridge in 15 minutes?
Tip 1 : Solve all the puzzle problems from various platforms.
It was a machine coding + Low level design round. I joined on time and so did the interviewer. The interviewer asked me about myself and then told me about the round. He was quite friendly. He told me that I have to write a working code of a system that he was going to give me. The expectations was that code will be clean, I will be using Object oriented language, and all the necessary requirements should be working in the end. He said I could use any IDE of my choice.
Design a Snake and lader game with the following features :
1. Two players or more can play the game
2. The Game table can be taken as input from the users or there should be a default table for the game
3. Players should be able to chose the size of their dice
4. All players start with position 0 ( starting position )
5. The first player to reach the end of the board wins the game
6. Game should stop after any one player wins
I had to walk the interviewer through my code after completion. Also a live demo was to be shown, so the code needed to be working. Also, he checked how troublesome it would be to add any new feature in the game ( For ex : changing the number of faces in the dice, or changing the board size)
Tip 1 : Practice a few common Low level design to get experience on how to write modular code
This was another 90 minute round . The interviewer again joined on time, so did I . Agine the interview started with an Introduction. I told him about myslef and the current role . This time the interviewer talked a bit about the team which I would be working with if I got selected. He started with a simple DS/Algo question which I was able to answer and write the pseudo code. Then he started with the design quesions.
I had to design a Cricbuzz type system, where the information of all the batsman and their stats would be stored. I was asked to try to come up with a solution with as less Database table as possible. The system should be able to answer queries such as which batsman has hit the most centuries in a particular year, or which batsman scored the most runs in a season. Inning wise info could also be queried, such as how many runs did a particular batsman made in a particular match. During the approach I was given quite some hints. With the hints from the interviewer I was able to come up with a scalable system satisfying all the needs.
Tip 1 : Practice some problems on system design
Tip 2 : Have knowledge of Database and any component you are using, make sure you know why it is being used instead of it's alternatives
So this round was HR + technical. The interviewer of this round was the manager of the team which I was going to join if selected. He started with his Introduction and then asked me about myself. He digged a bit into my current role ( I worked as a QA Engineer previously) . He threw a few questions from my current role at me which I was able to answer. I was also asked about a lot of things mentioned in my resume.Then he asked some basic OS and DBMS question. which again I was able to answer.
After that he started asking some scalability, high performance , api benchmarking , these types of questions which I had not much Idea about.
Finally he asked me a design based question.
What is Normalization ?
What are ACID properties ?
When should No-Sql database be preferred ?
What are Cache ?
Deadlock , Starvation
Example of Deadlock
Garbage Collector ?
What is API Latency ?
What are Zookeper services ?
How do we measure API performance ?
How is API benchmarking done ?
Design a load balancer in such a way that we can easily add or remove nodes from the system

Here's your problem of the day
Solving this problem will increase your chance to get selected in this company
What can be the possible extension for the HTML5 file?