Indeed Internship Interview Experience 2022
Indeed came on-campus to hire Software Developer Interns from IIT Mandi.
Round 1: Online Coding Test:
This was a 60 minutes long coding test. The platform was Hackerrank. There were a total of 2 questions.
- Maximum Profit in Job scheduling https://leetcode.com/problems/maximum-profit-in-job-scheduling/
- I solved it using map + DP. It took around 35 minutes to code this one.(longer than expected).
- The input was given as a 2D vector(weighted edges of a graph), Starting node, and ending node. I needed to return a vector where the size of the vector is the number of edges and each value denotes whether this edge belongs to any of the shortest paths from starting node to ending node.
- The question was not framed that straightforward. But the overall idea was very similar. The solution was easy: just calculate the shortest path from starting node to each node and the ending node to each node using Dijkstra. But I was not confident that I would be able to implement it without errors in the remaining time. So I went with a partial solution and implemented Floyd Warshall which is just a loop in implementation and complexity was cubic. It passed 7/14 tests.
- Results came the next day and 5 candidates were shortlisted for round 2 and round 3. I was one of them.
Round 2: F2F Interview round(Zoom) 60 Min
- He started with introducing himself and then I introduced myself.
- Only one question was asked. The interviewer showed me an image of a directed weighted tree. He asked me to return the leaf node that has the shortest path among all the leaves to the root. It was just a simple DFS. I first gave him a very bad brute force approach. After this, I explained my main approach and coded it. He asked a few questions about the code I wrote. He found a bug and then I fixed it.
- After this, he added a few edges in the tree and It got converted to a directed graph. He asked if the current code will do the work, how the complexities will change. What will be the new approach? First I told him the Dijkstra solution and then I explained the Dijkstra algorithm.
One hour passed and the interview was over. The level of the interview was easy. But the main focus was conversation, how I thought and reached the solution.
Round 3: F2F Interview round(Zoom) 70 Min
- Similar to the previous round, this round also only had one question. I was given a job title array like this – [‘Software engineer’, ‘Swimming Teacher’, ‘Yoga Instructor’, ‘Senior Manager’, etc. ]
- The length of this array was around 1 million(10^6). Now I will be asked millions of queries. In each query, I will be given a sentence as a string and I need to return which job this array indicates or is in need. For example – “ We need a talented software developer”. Now from the given jobs, I need to return one job that has a maximum number of times arrived in this given sentence. The answer to this one is – “Software engineer”. The number of words in each query was limited to 10.
- I first told him that for each query I will iterate the job title array and keep the count and return the maximum one. The complexity of this one will be around 10^13. That was not efficient so I moved to my second approach.
- In this approach, I will pre-process the job title array. Preprocessing goes like this – I will extract every word from a job string and for those words I will store a vector in the map. This vector will store indices of all jobs that have this word in their title.
- Now in the query section, I will extract all words in a given sentence. Find those words in a preprocessed map, iterate the vector stored for that word and increase the count for job titles in another map and maintain the max count and corresponding job title. And finally, the question was done and I coded it.
- When I was implementing, I was not able to listen to the interviewer because of the bad connection. But he was able to listen to me and see my code. So I kept very professional variables in implementation and tried my best to explain every small detail because I couldn’t communicate. I was also commenting on the code, most of the lines were commented.
- The code went over 120+ lines and he seemed very much satisfied with the solution. At the end, he asked me an open-ended question about collisions. I explained to him my approach for the same.
After 2 interview rounds, 3 candidates move forward to the 4th round.
Round 4: F2F Interview round(Zoom) 70 Min
He presented an image. He discussed the graph. Initially, I didn’t understand the role of the graph but later the graph proved to be very useful.
- The problem statement was like this. A company has jobs and jobs are added and expired at regular intervals. There are a total of 2^64 jobs. Each job is represented by a job-id and the current status of a job id can be either active or expired. The above graph explains the probability of a job getting expired according to the year it started. Older the job, the lesser the job id, and the more the probability of the job getting expired. Now I need to implement two methods. I will be given a job id as a parameter in both methods. In one method I need to return whether this job has expired or not and another method will be used to expire given job id. And the company has only 2 GB of memory to use. We can only store around 2^24 long integers in this memory.
- I discussed many approaches with him including LRU. Nothing was working until I understood the graph. He gave me a hint about writing jobs in symbols like this – E – Expired Job, A-Active Job. Ex – “AAEEEAEEEEAAAEE…….. up to 2^64. And I got the solution. I can store the jobs by making groups of consecutive active jobs and vice versa. 2A 3E 1A 4E 3A 2E …..The worst-case can be 1A 1E 1A 1E but this case will never occur because in the graph it is given that newly added jobs are more likely to be active and older jobs are more likely to expire. Hence the lesser job ids situation will be like 1000E 3A 250E 10A……. and at the greater job ids, the situation will be like 1000A 3E 250A 10E….
- We discussed two approaches – One through linked lists and another via a Balanced Binary Search tree. In the linked list I have to traverse again and again to change nodes so the approach got dumped. Now for BBST 3 types of cases arrived where nodes were deleted and added.
- Afterward, the following things were discussed – What are all cases that can occur, What all data will be stored in a node, and Complexities.
- Now for the implementation, very little time was left because the discussion went so long. I assumed that I had a BBST class and just needed to implement node structure and use insert, find, delete methods as per my wish. I implemented one of the functions and time got over. I explained to him the remaining implementation quickly, but couldn’t code it.
After 70 minutes, this exciting round was over. I really enjoyed this round and brainstorming over this problem. The discussion was really amazing.
After half an hour, 2 of us qualified for the HR Round.
Round 5: HR Interview round(Indeed Platform)
- Fortunately, this interview was not on zoom and no network problem occurred. He was very chill and relaxed.
- He introduced himself then I introduced myself. I told him 2 hobbies, one related to programming and another one not related to academics. I told him how much I like problem-solving and how I enjoyed round 4. He asked me a few questions about the previous roundabout what was the difficulty, anything I would like to change if I got a chance. Then he told me about the company, how big the company is in the US, what is the work culture of the company and so on.
- After this, he asked me about my technical projects in B. Tech. We talked about the motives behind the project, how I chose the tech. One of the projects was in the group, So we discussed how teams work, what type of teammate I like.
- Then he asked me about my dream company. For this, I explained to him How an ideal company should function and its goals, and so on.
- In the end, he was open to questions, I asked many questions about internships, pandemics, mentors, and many more. I researched Indeed and their office in Hyderabad.
After 30 minutes this round was over.
Finally, 2 Candidates got selected for a 2-month summer internship.
Please Login to comment...