Internship Chronicles — The CDC Chapter

Introduction

Hi! I am Jyoti Agrawal, a third-year undergraduate student pursuing B.Tech in Computer Science and Engineering at IIT Kharagpur. I was offered an internship at Google for summers 2020 through campus placement cell. I was also offered an internship at Nutanix on the same day. I was shortlisted for interviews in Uber, Tower Research, Quadeye, Microsoft, and Goldman Sachs. Currently, my CGPA is 9.01.

Preparation

I never did a very focused preparation for Internships. Actually, I got my interest in Competitive Coding in the 2nd and 3rd semesters. Especially in my 3rd semester, I was quite focused on competitive coding (more than ever). In the summer vacations after the 1st year, I used to practice mostly from Hackerrank and CodeChef on some basic topics. In the 3rd semester, I tried questions from various other websites like Hackerearth and Spoj too. I learned some advanced data structures from various articles on Codeforces and Hackerearth like Segment Tree. At that time I had practiced more on Segment trees, Binary search, and Maths for ACM-ICPC. Also, the Algorithms-1 course helped me. I had already watched videos of Naveen Garg’s Data Structure and Algorithms course from NPTEL in 1st-year summer vacations. Even today, whenever I need to revise basic data structures and algorithms, I prefer to watch it from there.

I suggest, rather than trying many different websites and asking people for more and more websites, try to stick to either one or two sites. Generally what people do is that they try the same type of easy questions from many sites and think that they have practiced a lot. Rather go out of your boundaries and try a little difficult question each time. Do not switch to a different site when you find a difficult one on some website you follow.

When I became a bit fluent with Competitive Programming, I started trying questions sorted according to data structures from CodeChef Prepare.

I suppose it has a good collection of questions to learn each data structure, and most of them are from SPOJ.

But few things I feel I did wrong are as follows:

  1. I used to leave many questions unsolved if I get the approach.

But later with this experience, I got myself back to CP in the Summers of 2019. But as I said before, even then I wasn’t as involved in CP as before because I was also doing a project under a Professor. This time I completed InterviewBit and did some questions from Leetcode after completing InterviewBit. Because of these websites, I became good with Cplusplus, learned using libraries and some inbuilt functions. I also used to do some questions from SPOJ, CodeChef, and Codeforces in between because questions on InterviewBit are a bit easy and you lose interest in doing them continuously. They are just to improve your implementation and not thinking skills. In the last few days before Day 1, I just revised some concepts and kept myself in touch with coding by giving some short contests on Codeforces.

Interview Experience

My Google interview was from 9:00 am on Day 1, but I had to report to the venue at 5 am for Tower Research. And as I kept Google above tower in my preference list they scheduled my interview with tower at 8 am so I wasn’t able to give that. From 9 am, my first round of google started which was of 45 minutes and online. They asked one question on Binary Search and one on DP which were fairly easy. By 10 am Quadeye was done with their selections and was going to wrap up soon, so I was told to give at least a short interview of Quadeye for half an hour because my second round for google was scheduled from 11 am. In the second round again there were two questions one was easy, but the other one on Graphs(DFS) was good.

After Google, I went for Uber and had to sit there for about 2.5 hours as I gave 2 rounds of the interview there. In the first round, they gave me a problem on stacks and I just had to describe my solution to them. The question was that “ you are given a grid of zeros and ones and you need to find the area of a rectangle of all ones with maximum size? ”. In the second round, they made me implement some functions to maintain a rank list of a challenge in which the points may change, new teams can enter at any point in time, I need to keep their info like name, country, email, etc. Also, they can query teams by their country, rank, etc. I used maps and sets for the implementation and did it but I suppose they judge you by the way you implement.

After this, I went for Nutanix. By then I was all exhausted because of so many interviews, no sleep, no food. There were two questions. One was on DP and properties of XOR and another was on backtracking which wasn’t evident initially. It was somewhat similar to Bfs in graphs. As I was able to solve both of them quite fast, they went for the HR round. In the HR round, I was just asked about my preference that I have kept and I had no idea that they do not already know that So I told them that I had placed Google and Uber above Nutanix. They also asked If I get both Google and Nutanix which one will I prefer and I told them that even if I get Google I need time to think, to choose between Google and Nutanix because the work that Nutanix do is more interesting, so if you find me good enough, I need some time to think. And after completing my interview, they finalized their candidates.

So at the end of Day 1, I had no offers in hand but by 6 pm, I got an offer from Google and later Nutanix also extended an internship offer for me.