The CDC Chapters
Hello all,
I am Hardik Aggarwal, a 3rd year Undergraduate Student from the Department of Computer Science and Engineering enrolled in the B.tech course at IIT Kharagpur.
This article is regarding my journey for the CDC Internships 2020–21. I got an internship offer from Sprinklr and Microsoft for the Summer of 2021 through the CDC internship drive ( of IIT Kharagpur ) and accepted the offer from Sprinklr.
This is going to focus more on the technical side of the experience with my opinions in between which can vary largely from person to person.
I was introduced to competitive programming in the second semester and I started seriously doing it from the summers of my first year. So it has been nearly 13–15 months since I had been doing it. I started doing it as a hobby in my free time and not as preparation for the internships.I also practiced some quant and ML questions from the internet because there are some companies who ask that. I had written down 3 projects in my CV along with an internship that I did in the summers of 2020.
I reached the title of Master in codeforces (2100+) and 6* on CodeChef (2400+) before CDC and so I had a pretty decent level of preparation of coding tests before CDC. Apart from this I solved almost all the questions from the Interview bit and was going through GFG as the coding tests were approaching. Again I want to mention that you don’t need to be pretty good in cp and a focused preparation of 4–5 months on Interview bit is sufficient to bag a decent offer in a day1 company. Comparing the level of CDC coding tests I would say they were much between Div — 2 C — D level of codeforces with exceptions in between.
I am also a member of Grimoire of Codes and as you must be well aware of GOC conducted a CDC preparation series to cater to the pre-placement preparation of the students. I was a part of the team setting the questions for the initial half of the series but as the tests approached I decided to try it out as a participant. My experience with the series was very awesome because the questions were taken from the rounds of previous years’ internship tests and they give you a pretty accurate idea about the difficulty level of the tests. As far as my performance was concerned I was pretty satisfied and ended up in the top 3 ranks more often than not. So to conclude I was pretty much confident about my preparation (destiny had other plans though !! ).
2.Companies you got shortlisted for: I applied for 8 companies on Day 1 and luckily got selected in all of them.
These were :
Google, Uber, Sprinklr, Microsoft, Nutanix, DE Shaw, Quadeye and Goldman Sachs
3.Myths you had about CDC: My major myth about CDC was that luck plays a very little role during the interviews but it can be a deciding factor especially when the whole interview process is Online!
4.Shortlisting rounds:
Google: A test of 60 mins with difficulty varying largely from person to person. Some people had some simple implementation based problems on sorting while some were required to solve the np hard problem of minimum set cover xD. I got an easy medium problem on stacks and a medium-hard problem on dynamic programming on bit masking. I solved them in 30 mins or so. But the major deciding factor for shortlisting was google Kickstart ranks as far as I can see. They selected mostly people with ranks under 300 or so. ( Though it didn’t guarantee selection). It was a mix of Kickstart rank, CV, and the coding test.
Uber: There were 3 questions. One used handling Big Integers but had a very naive solution if you know how to use python ;). The second one was a standard IB question and the 3rd one was a variant on Edit Distance Dynamic Programming (nice one though ). People solving them under 1.15 hr were shortlisted. I solved it in around 40 mins.
Sprinklr: Probably the toughest of all. The first one was an easy observation-based. The second was a greedy algo question with an implementation part. And 3rd one was a Digit dp question and probably the hardest question of all the tests. It was a Div2 E — F level question. I solved all 3 of them in around 50 mins. I was pretty happy with my performance, especially in this one.
Microsoft: The easiest of them all. Simple questions based on sorting and finding the mean, median, mode of the array were asked.
Nutanix: Two questions for 90 mins. Luckily I was pretty quick to have got the idea and implement it. I submitted my test in under 20 mins. They had a debugging round as well on Google docs for the shortlisted candidates where we were asked to point out bugs in the given code.
DE Shaw : 3 questions and a very balanced set. One was a simple implementation, the other one was a nice observation-based question though I overkilled it. The last one was a tree-based game theory question which to my surprise was directly copied from one of the CF rounds. I was done in 35 mins with this round.
Quadeye: Questions from various domains like probability, basic C++ and oops, quant questions and two coding questions were asked. They did require some thinking process and at the end, it had two paragraph questions where you were asked about your goals, etc.
Goldman Sachs: Pattern was similar to the last one, with the difference being the time constraints were tighter this time. The coding questions had very heavy implementations and required at least an hour or so to completely implement the idea being given in 25 mins to complete. Now the fun part of that the checker was accepting very naive solutions as well (I submitted an O((n*m)³) solution where they expected O(n*m) and it passed all the available test cases).
It becomes important to note that you can appear for at most 3 -4 companies at max so you must fill your priority list very carefully. I had a very sound experience thus far and was very excited for the D — Day of interviews. I talked to my seniors and gathered some last-minute tips for the interviews. I finally slept around 2 am in the night all set for interviews at 5 am in the morning (I would strongly advise having a sound sleep in the evening as it becomes difficult to sleep at night given the anxiety levels.)
5.Interview rounds:
Though I filed Google as my top priority I was asked to attend the Uber round first at 6 am in the morning. So I was ready to sit in front of the screen when I was informed that I would need to wait one more hour and finally I got my first interview scheduled at 7 in the morning.
Uber: First round was a Data structure round where you are asked to design an appropriate data structure for a given problem which I did using maps and structures. Since I was done before the time I was asked to write some additional functions as well. In short, this was a very smooth round for me. The second Round was an algorithmic round where I was asked a question that eventually boiled down to a trie problem with storing pairs as an intermediate node. I was quick to come up with the approach and then coded it. I cleared this round and was very confident at this moment. The last round was a nontechnical round where I was asked some questions on my projects which I answered. There was a brief discussion on open-ended questions like what factors you need to consider while suggesting a path to a driver etc… This round lasted about 45 minutes. (I didn’t receive the offer)
Google: There were 2 rounds. Both of them were technical. The first round had an easy medium question on strings. This was a very open-ended question where you have to put in efforts to make sure that you get the true flavor of the question. I discussed a few approaches before finally moving on to the coding part. Since we had a few minutes left we discussed some alternate approaches and the interviewer looked satisfied after this round. After waiting for more than 5 hours I was finally given the interview for the second round. This time the interviewer didn’t look as interested because it was already around 3 pm when most companies start to wrap up with the process. I was given a question of strings again and I was very quick to optimize it from O(n²) to O(nlogn) to O(n) time complexity. While I was writing the solution I found it very difficult to communicate with the interviewer. After I was done with this question he gave me another one just so that we can at least discuss the approach in the remaining time. (I didn’t receive the offer)
Now I want to tell you that I was very demotivated at this point because most of my friends had already received an on-spot offer but I was yet to get one. This is the time when negative thoughts start to cross your mind because almost all the companies start to wrap up by this point. But I picked myself up and went for the next rounds.
Microsoft: While I was waiting for my google round 2, I decided to give the first round of Microsoft. The first round involved a question on BST’s. The question was a typical InterviewBit question and having practiced most part of it I coded it without any bugs. Round 2 was a similar round where I was asked a question on interval scheduling. We discussed other approaches as well since the constraints were small for that problem. Round 3 also quickly followed. It began with a brief discussion on my projects and then they moved to an easy grid search problem. The interviewer was very happy and even asked me why I hadn’t received any offers until that time :).
Sprinklr: I was already exhausted by this time. It was already around 5:00 pm. It will be fair to say I was among the last candidates of the whole process :). I requested the placecom to kindly arrange an interview with Sprinklr because I was unsure of the offer from MS and wanted to give this a final shot. After my consistent requests, they finally agreed. My first round was already a tiring one. They asked me binary search on BST, a question of strings + graphs + topological sort, a map-based question and all these with their implementations!. And believe me that Round 2 was no easier. I was asked to implement parts of Balanced binary search tree, C++ maps manually, interval tree (Yes!! they did ask me all this), a data Structure problem with oops concepts. Maybe all this was due to the fact that they too were exhausted and annoyed by 6 in the evening. Finally, the HR round followed. There we discussed about the company culture mostly and asked me why I wanted to join a relatively new company amidst those well-established tech giants (I didn’t have a choice back then :p ).
I was too tired to even speak by this time. One of the placecom informed me about the offers from both MS and Sprinklr at around 7. Finally, we received official confirmation at around 12 pm or so in the night about the offers and I decided to accept Sprinklr!.
6.Conclusion: The main conclusion was that there can be days where nothing seems to go your way. I didn’t have a single offer by 5:00 pm where most of the guys had already received offers. Despite having 8 shortlists I was among the last interviewed candidates of the day. I just trusted the process and finally ended up with two offers, a few hours later. There were a lot of learnings from this process and I look forward to joining Sprinklr.
In the end, I would like to thank all my friends, family, seniors who consistently motivated and supported me when I was down. I would also like to thank CDC IIT Kharagpur for the smooth conduct of the whole online process. I want to specially mention my mentor Lovish Chopra for his guidance and help. Words are not enough to thank him. He has been the most wonderful mentor and guided me in every step of this process.
Moral: When the going gets tough, the tough get going