Internship Chronicles — The CDC Chapter

Ritik Kumar
6 min readDec 7, 2019

--

I am Ritik Kumar, a 3rd-year undergraduate student in the Department of Computer Science and Engineering. I got my internship at Microsoft for the upcoming summers.

The Preparation :

I started doing Competitive Programming(CP) in my third semester. I came to know about it through some of my friends who were doing CP right from their first year and started practicing on websites like SPOJ, Codechef, etc. I started with SPOJ because I read that it was a good platform to start with. I had Algorithms and Algorithms Lab in my third semester, so I started off with algorithms and data structures. I started to read CLRS which provided a good foundation for Algorithms and Data Structures. But still, this was not enough. So I started solving some problems related to topics I read. Along with this, I used to give some of the contests on Codechef like Long Challenge and few contests on Codeforces.

In my fourth semester, I did not do much Competitive Programming and resumed it only in my summers. I contacted a few of my seniors and they suggested that I solve questions on Interviewbit and Geeksforgeeks as these contained problems targeted towards interviews. Since I needed some practice to gain momentum, I solved problems on Codeforces for the initial part of the vacation. I focused on ladders in A2OJ and solved around 40 problems in C ladders and 12 problems in D ladders. In addition to this, I also started giving contests on Codeforces and this continued for the first month of vacations. By then I learned various things and was also able to solve questions with more speed.

Since I was also aiming for CDC interviews, I started solving problems from Interviewbit where the questions were arranged topic-wise in increasing difficulty. I found Interviewbit good especially for a few topics like stacks, linked lists, binary trees. Along with this, I also continued giving contests on Codeforces.

After the vacations, when I returned to college I was not able to devote much time. So I just gave few contests on Codeforces and solved some questions on Interviewbit and Geeksforgeeks. I also revised the concepts of OOPs from cplusplus.

Coding Rounds:

I sat for coding rounds of almost all the companies on Day 1.

Tower Research: It had a few MCQs and two coding questions: one was easily solved using STL sets and the other one was a tough question on graphs. There were three debugging problems. The first question required us to use Python and I was unable to do so because I couldn’t recall the syntax. To my surprise, the second and third questions were based on C++. However, I was able to solve the only one due to a lack of time. [Could not Qualify]

(First Mistake: Always read all the questions and never get stuck on one as I did with the Python one)

DE Shaw: Two questions that can be solved if you have done CP well. I solved only one. [Could not Qualify]

(Second Mistake: Do read all the parts of questions properly and always keep a watch on time)

Nutanix: It had two really good problems. One was related to greedy algorithms while the other one was on graphs. I was not able to solve any. My approach to graph one had a slight error, which resulted in me getting more test cases wrong as compared to the brute force approach. [Could not Qualify]

(Third Mistake: Since most of the people were not able to solve any question, the company kept the cutoff for maximum no of test cases passed. So try to pass as many test cases possible for unsolved problems)

Uber: Uber had one of the best sets of questions that I came across and was one of the tests I did not make many mistakes in. It had three questions of which I was able to solve two. [Could not Qualify]

(Fourth Mistake: Time was one of the factors, I could not solve the third question)

Goldman Sachs: One of the tests, I regretted the most. There were three questions: two were easy and one was a tough one (it was on bitwise DP but there were some issues with the test cases). Apart from this, there were some MCQs on programming and probability. [Could not Qualify]

(Fifth Mistake: Try to stay calm during tests, which will help you in finding the bug early)

Microsoft: Three normal CP type problems. Microsoft has its coding platform (others have their test on Hackerrank) which was a bit difficult to understand at first. It gave me three warnings on using Ctrl+S (which I normally do to save code from time to time) which meant I would be disqualified if received two more warnings. Also, some of the seniors told me, Microsoft did not allow us to use the STL library but it turned out that Microsoft did allow the use of the STL library. And so I used it. I was able to solve three questions (one did not pass a single test case and test case was probably wrong). [Qualified]

(Sixth Mistake: Be careful while coding in the new platform, some mistakes might disqualify you. And also do not assume things on your own like I assumed that we are not allowed STL Library)

Quadeye: It had MCQs on probability and reasoning (probably for quant profile) and on coding (some were tricky). It has one coding question which was very easy (PDS level). [Qualified]

(Seventh Mistake: I expected to get my internship on Day 1 and thus did not take the test of APPdynamics, as it had its test in the morning and I was not able to get up. I regretted this a lot later when I did not qualify some company coding rounds.)

On Friday night (just before Day 1), I had the written round of Microsoft. Two simple questions were asked, one was on the merging of two BSTs and then querying the Kth largest number while the other was a simple question on DP.

(Eighth Mistake: Sleep well before the interviews and try to eat something in the morning which will keep you energized during interviews.)

Day 1 Interview:

Microsoft had two interviews: one was a technical round and the second one was an HR round.

In the technical round, the Interviewer got straight to the questions and asked me a few questions on Binary trees. One of them was to find the median of BST. I gave him the approach and wrote the whole code in C++. He then proceeded to ask me a few modifications to the same problem, one of which was to find the median of BST between a range[] and how this could change for Binary Trees. After that, he went through my CV and asked questions to verify each CV point. He asked questions on the project I had worked on, my contributions in Open Source and my role in the Kharagpur Open Source Society. He also asked me why I was sitting for company interviews despite knowing Open Source. So the first interview went pretty well and I was hoping to be called in for my second technical round.

However, to my surprise, I was called in for the HR round. After a brief introduction, the interviewer asked me a few basic questions on programming which were quite easy. He then discussed various points mentioned in my resume and asked me about my skills, where I used them, how I contributed to my projects, my ratings, where I stood among my friends and what we did at KOSS. He proceeded to ask me if I had any questions, to which I enquired about the type of projects we would be required to work on an intern and the scope to switch projects we were not interested in. I also asked him about the working culture at Microsoft wherein he told me the advantages of working in a team and the advantages of big companies. He ended the interview with ‘Hoping to see you in Microsoft’ and I knew I was selected. I also got the confirmation after a short while. So I did not sit any other interviews.

Overall, It was a great experience, I learned a lot during these days. If you have any doubts, feel free to ask me :)

--

--