Position : Software Dev Intern
Location : Arcesium, Hyderabad
PRELIMINARY ROUND :
Shortlisting was done on the basis of GPA. Don’t know the exact cutoff as it wasn’t revealed, but I guess it must be around ~8.50.
ONLINE ROUND :
This round was on Hackerrank and it was divided into 3 sections :
Section 1 : Aptitude Test, 15 ques in 20 min
Section 2 : Technical MCQs involving OS, DBMS, OOPs, C++, Java based questions, 15 ques in 15 min
( The difficulty level of both the sections wasn’t at all according to time given for corresponding sections. I was expecting this, so rather than going sequentially, I scrolled through them and focused only on those which could be solved quickly. Most of the students were able to solve only 10 questions in total )
Section 3 : Coding questions, 2 questions in 45 min
Q1. You are given N distinct coins. In one move you pick a random coin of value X and then you remove all the coins with value X-1 and X+1 along with the coin X. The game gets finished when no coins are left to pick. Find the maximum number of moves in which you can finish the game. Constraints : 1 <= N <= 10^5
Q2. You are given a string S composed of only lowercase letters and an array of points corresponding to each letter. You have to find maximum score you can get for a substring which starts and ends with same letter. Constraints : 1 <= |S| <= 10^5 -10 <= points <= 10
FIRST INTERVIEW :
Questions were mainly based on my resume. I had done 2 internships, so they asked me about my projects there and my experience. They asked few questions like,
- What are your interests ?
- What are your favourite subjects ? ( I ranked them in order : DSA, OOPs, DBMS, OS )
- They asked me why I ranked OOPs so high ?
- System Design :
I was asked about what all classes would I use to design a text editor like VIM. The text editor should have normal features like Deleting, Inserting, Saving and Jumping to a line.
I was also asked what would I do if I want some other developers to be able to design plugins for my text editor.
- Coding Question :
Given top-left and bottom-right co-ordinates of N rectangles, determine whether any two rectangles overlap or not.
- They asked me about No-SQL databases. Difference between SQL and No-SQL DBs and what data structures are used to store them. Which one is more efficient ? ( All these questions were asked because I mentioned in my resume that I have worked with MongoDB )
SECOND INTERVIEW :
- What is multithreading in OS ?
- Can you give an example where OS uses multithreading ? ( I could not recall any such example but I gave them a situation where I applied multithreading once )
- What OS do you use ? Why do you prefer MacOS ? Windows has come up with WSL why don’t use that ? ( Luckily, I had used WSL before, so I knew about all of its shortcomings )
- Why is Paging used ? Why is Virtual Memory used ? What is Demand Paging ?
- Explain difference between Clustered Indexing and Secondary Indexing ?
- Implement a queue of maximum length N using two stacks and write the code for it ( I gave them a solution using dynamic stacks but weren’t satisfied. So I told them that we can use a single array of size N to store two stacks and they were happy )
- Print the Right View of a binary tree
- For two tables, I was asked to write a SQL query related to JOINS, GROUP BY
- If I would add a ‘WHERE’ clause in this query what would change in the result and Why ? ( Basically they wanted to know the difference between ‘WHERE’ clause and ‘HAVING’ clause )
THIRD INTERVIEW :
- Coding Ques :
You are given a dictionary consisting of maximum 15 letter words. Also you are given two words W1 and W2 from the same dictionary. With W1 as the source word, you have to reach to W2. One operation involves replacing one letter with any other letter such that the resultant string also exists in the dictionary. We have to find the minimum number of operations required to reach to W2. It is guaranteed that solution exists.
Sample Test Case :
Dictionary : [ ‘abc’, ‘abd’, ‘abb’, ‘acb’ ]
W1 : ‘abc’ W2 : ‘acb’
Ans : 2 ( ‘abc’ -> ‘abb’ -> ‘acb’ )
( Initially, I gave a solution using Trie but it wasn’t perfect. They gave me a hint to use Graphs. After that I was able to solve it quickly )
- Puzzle :
A person has a revolver with max capacity of 6 bullets but he has only one bullet with him. He gives you two options, either he will first pull the trigger in the air and then shoot at you or he will directly shoot aiming at you. What would you choose ?
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.