CDC-Internship IIT KGP ‘20

Praagy Rastogi
4 min readNov 30, 2020

--

Hello! I am Praagy Rastogi, a 4th year UG student pursuing B.Tech+M.Tech in CSE at IIT Kharagpur. I have tried to share here the experience that I have gained in preparing and giving the various coding tests & interviews while applying for an internship through CDC.

As a brief introduction, I am an active competitive programmer, and I had been doing it since the 3rd-semester. My CGPA was 9.22, and I got shortlisted for six companies on Day 1: Uber, DE Shaw, Sprinklr, Google, Quadeye & GS.

Note. since this whole process took place online due to the pandemic, the experience was quite different and new for all of us, and I feel that it was relatively more comfortable than the offline process. Throughout this blog, I shall compare the problems’ difficulty with those in codeforces’ DIV2 rounds.

A note on Competitive Programming

Undoubtedly, this is the most crucial component of one’s preparation, and it deserves a blog of its own. Also, it’s something that can’t be prepared adequately in 2–3 months. However, in brief, I would suggest that you start developing problem-solving & thinking skills by practicing on Codeforces and/or Codechef.

The sooner you start, the better.

Resources like Leetcode & Interviewbit should be used in the last 2–3 months to practice and become familiar with various standard problems. This is also the time when you should focus on coding faster, avoiding bugs, and following good coding practices.

This is more or less what I did. In the next section, I share my experience of the various shortlisting rounds.

Shortlisting rounds

Google had a strict time limit of 1 hour to solve two problems, one of which was easier than the other, but both can be non-trivial sometimes. Overall it was Div2C-D. For google, a lot of importance is given to the candidate’s resume, especially past Kickstart/Codejam performances.

In Uber, there were 3 coding problems. The first problem was trivial to solve in python but not as easy to solve in C++. The second was on bit manipulation. The third was an excellent dp problem. Overall, the problems were Div2C-D but with sufficient time.

Both DE Shaw and Sprinklr’s round consisted of coding problems. They were also of above-average difficulty and challenging. GS and Quadeye’s coding problems were relatively easier, but they also asked quantitative aptitude based questions and a few MCQs.

Interview Rounds

Google: There were two rounds of 45 minutes each in which I was asked one coding problem. In the first round, the problem involved a prefix sum trick and was of Div2-D level. I explained my logic and its correctness to the interviewer. Next, I jumped to implementation, which was a bit tricky since I avoided using maps and solved it using vectors. This is something that I wouldn’t have done normally. The interviewer was happy with it, and the interview ended with a brief session in which I could ask him any questions I had.

The second round was similar to the first. I was asked a problem on directed graphs. I’d say it was Div2-E. I suggested a solution using strongly connected components; however, the interviewer advised me to think of an easier solution. So I started with a brute force solution and worked on improving it while discussing it with him. We didn’t reach the optimal complexity possible, and the round ended with a brief talk.

Both the interviewers were quite friendly and helpful.

Uber: There were three rounds of 45 min each. In the first round, I was asked a coding problem that reduced to applying a shortest path algorithm on a directed graph (which was expected since it was Uber) with some extra implementation (Div2-D). The interviewer was more interested in how I broke my code into functions for different tasks. He also helped out in a few places.

In the second round, I was asked to implement a multi-counter order booking system and related functions as described. I asked for a few clarifications about some parts but didn’t get much help from the interviewer. He advised me to complete it fast. I defined two classes and started implementing the functions one by one while explaining them to the interviewer.

Both of these rounds were quite rushed.

Next was a typical HR round, which was quite a relief after all these rounds. Also, the interviewer was quite friendly. I was asked a lot of scenario-based problems. In one scenario, I was supposed to troubleshoot a problem as an engineer at Zoom. The round ended satisfactorily.

Uber gave the internship offer to me after 2 hours, and later I also received an offer from Google.

Conclusion

Confidence and Communication are very important throughout the interview. Your practice and experience would help you avoid nervousness, so become confident in your coding skills first. Also, work on sharing your thoughts with the interviewer while solving a problem.

Thanks for reading!!

--

--

No responses yet