Tip 1 : Practice competitive programming.The level of questions asked in the programming round is pretty high.
Tip 2 : Have 1 project you know inside and out.
Tip 1 : Make sure you really know everything about any project you put on your resume. They will pick up anything from there randomly and grill you on it.
Tip 2 : Highlight what you learnt from your projects.
This was an online coding round with 3 questions. It was held in the evening. The level of questions was pretty high. I don't remember all the problems now, but there was one graphs, one on dp, and one on combinatorics. One thing I would suggest is to be well versed with graphs, trees and DP. In all the rounds of theirs I have seen, these topics are always asked.
There are 50 questions, based on English, logic and maths. The test is for 15 minutes, and the cutoff is 45. The logic and maths questions were pretty easy, but I practiced GRE words for the English section. You can take this test anytime in the window they provide (it was a few weeks), and you get 2 attempts.
This was a telephonic resume round. It was in the evening. The interviewer asked me to choose any one project or internship from my resume, and then proceeded to grill me on it. He asked me about why I used the technologies that I did for the project, and then about certain improvements that could be made to the project and how I would go about them.
This was the DSA round, in which I was given 2 questions to solve. It was in the afternoon. The interviewer was really encouraging, and helped me a little when I got stuck on the 2nd question.
I was already familiar with Kadane's Algorithm. This problem was a slight modification of that. First, I set up the basic code for Kadane's algorithm, and then I created a dp[n] array. Here, dp[i] stores the largest subarray sum up to that index (basic Kadane's algorithm), and dp[i] stores the highest subarray sum up to that index, given you have squared one element somewhere till that...
My first approach was brute force. I created a 2d-prefix sum array for the given matrix, and then iterate over all possible squares in this matrix. For each square, I checked if the sum was <=k, and stored the highest size of all such squares.
I was stuck for a bit here, and didn't know how to optimise this further. After a small hint from the interviewer, I came up with the solution. Fix...
This was an open ended discussion round. It was held in the afternoon. First, the interviewer asked me about an internship I done earlier, and asked me to code an algorithm for a problem related to that. After that, he asked me an open ended question, and we discussed about optimising the solution as well.
When users scroll social media, the often miss some posts when they are scrolling quickly. How will you ensure that the posts they scrolled past too fast will show up again in an infinite scroll? I was asked to code an algorithm for this as well. My approach was to listen for scroll events and measure the time that each post was on the screen for. I was also asked how I would persist this data ...
Tip 1 : Think about the larger picture, not only how you will perform the particular task, but about what changes you will need in other places to accommodate this.
Design a text compressor for Google Docs. I went with Huffman Encoding, since I had done a project on it earlier. I needed to optimise this for changes made in the middle of the document. The approach was to split the document into smaller parts, and encode each one independently.
Tip 1 : I would recommend checking out Gaurav Sen on YouTube. The level of the question was not as high, but you'll get a better idea on how to approach these questions.
This was an HR round with the CEO. He was really nice, and asked basic questions.
Why I wanted to join the company, and why I would be a good fit.