The CDC Chapter
Hello Everyone,
I am Nikhil Popli, a 3rd-year undergraduate student from the Department of Computer Science and Engineering enrolled in its B. Tech course. I will be doing my internship at Sprinklr in the summer of 2021. This blog includes my CDC preparation and experience throughout the selection procedure.
Preparations:
This can be broken down into two phases :
Early Preparations:
I had a basic understanding of algorithms and data structures after the Algorithms-1 course (Theory + Lab) in my third semester. My implementation part was not very strong. In May’2020, I started developing my skills with A2OJ ladders in which I quickly navigated by doing a handful of questions to 2C ladder and spent some time on them. I started giving contests on Codeforces, and I gave 2–3 contests every week in June. Initially, I was able to do 2 questions comfortably and the 3rd one sometimes. In this period, I started learning STL, tutorials from COPS IIT BHU. It was essential to understand how to code in the best way, which data structure to use, some general tricks and methods used in competitive coding. After some practice, I could consistently solve 3 questions in the contest (Div 2) and occasionally the 4th problem.
This was the period when I improved my implementation skills. I got my CF rating up to 1702 (Not so good, I know), but I was not progressing much. For solving the 4th question, we require the practice of problems of different topics and data structures rather than just implementation. So there comes the next part.
Final Preparations:
Till now, I was not spending much time doing CP. So I started full-fledged preparation from 21 July. Since there was not much time left, I started doing topic wise questions on Interview Bit. From here onwards, I almost lost touch with Codeforces contests and ladders. I was studying new topics(from GFG many times) and doing the standard questions arranged level-wise in IB. This was the most important phase and I felt that I learned a lot. A large part of the problems encountered on IB was new compared to CF, where I became stagnant after a while. This routine became irregular after the CV portal opened in the second week of August and then the coding tests and application process of various companies started.
Interview Preparation:
Interviews are one of the most important parts, and it includes much uncertainty, and some factors come into play along with your coding skills.
- Preparing an Introduction — I prepared a short introduction telling a brief about myself, my skills, and just mentioned a project to try to drive the interview towards that.
- Preparing Projects and competitions mentioned in my CV: Projects are the area where you have spent time and have the experience to answer the questions easily. Remember not to lie on your CV or exaggerate things too much, it would put you in unnecessary trouble if you aren’t able to explain things mentioned in your CV.
- Preparing some general questions that could be asked from me looking at my CV.
- Studied some topics like the basics of OOPs and prepared standard algorithms.
- This might sound weird, but in my opinion, this was one of the most important things in the final shot for the interview preparation. How you communicate! I was in touch with Ishan Ranga, who helped me and explained the basic stuff on how one should give an interview just a day before the same. It is important to speak your thoughts and explain the process rather than just the end goal. The interviewers are keen to judge how you think rather than the knowledge of a bunch of things. You can read this article for preparing for interviews.
Coding Rounds
I got shortlisted for Sprinklr and DE Shaw on Day 1.
- Sprinklr: It had three questions in 1.5 hours.
The first question was a simple implementation problem and also had lesser marks compared to the other two. The second question was a decent graph-based question. Where first, we had to find the connected components and then apply a greedy approach. The third question was a tough problem on digit-dp. I implemented a brute force solution and passed the first four test-cases.
So I was able to solve two questions completely and the third one partially. - D.E. Shaw: It had three questions with a time limit for each question (25+35+35 minutes)
The first question was a basic string manipulation question. The second was a tricky question on number systems and required a basic observation that I made quickly and solved the problem in a simple way. The third question was a graph-based question that involved applying DFS (though the question was not straightforward). I took a slightly complicated approach to implement it, and could not complete it. This was pretty easy for people who do CP regularly.
I was shortlisted as most of the students were able to solve at max two questions.
The shortlist was declared on September 4 (my birthday xD) in the evening. I was expecting a number of shortlists like many of my friends but was sad to see that I just had two shortlists. So I had almost lost hope to get selected as both of these companies select a very less number of candidates every year. That evening was the most stressful period of the whole process. I revised some topics and prepared for my interviews and slept around 2:00 am.
Final Day
September’5 — I was ready at 7:00 am to give my interviews, but my turn came at 10.45 am for the interview of the company I had the first priority — Sprinklr
Sprinklr: I had three rounds of interviews (two technical and one HR round).
- First Round: The interviewer was very cooperative, introduced himself first, and then asked me to introduce myself. I gave a brief introduction with a mention of my interest and one of the projects. The interviewer had opened my CV and found the project interesting and asked me to explain its basics and the core challenges faced. I explained it properly from basics (as prepared earlier) and he was quite impressed. The interview was on google meet, so he shared the screen and asked me a tough problem based on graphs. It took me time to answer the question. I first proposed a brute-force solution and then optimized it 2–3 times, after which I understood that it ultimately boiled down to applying topological sort after doing some steps. He then asked me to open an editor and share my screen and code it. The next question was based on string manipulation in which we had to use the KMP string matching algorithm after a step. Then he asked me to explain the KMP algorithm followed by some easy programming questions. The interviewer seemed quite satisfied with my response. This interview lasted for 65–70 minutes approximately.
- Second Round: The second round began just a few minutes after the first. The interviewer was very friendly. This round also started with my introduction, which was the same as the last round. However, this time, the interviewer saw my CV and said that my CV seems to be oriented towards Robotics, so why did I want to join a company with a completely different profile. I was well prepared for this question, as it was quite obvious that this question could be raised. Then he asked a few questions from my CV but there was not much discussion as I did not have projects in core software development. Neither I had much knowledge in the field of Compilers and Operating Systems, which were my courses in the upcoming two semesters. The interviewer was more inclined to make sure that I was actually interested in the profile and was actually serious about the opportunity. He then asked the difference between python and cpp. (apart from the syntax, obviously) followed by similar technical questions. Then he asked me a question on arrays and asked me to code in a google doc directly using two different methods. So the round ended, and I was quite unsure of what exactly had happened. This round lasted 30–35 minutes.
- Third Round: I was called for an interview after 5–10 minutes. This was the HR round, which I was not aware of as we were informed about 3 technical and one HR round. The interviewer asked me to walk her through my CV, but she interrupted me in between as if I did something wrong( I explained it from the perspective of a technical round). I was scared for a while and soon realized that it was an HR round after the next question, which was what changes I would like to bring in the IIT Kgp administration if I were the dean/director. There were few such questions, and we had a good discussion. Then she asked me why I wanted to join Sprinklr. This round lasted around 20-25 minutes.
The rounds ended at 1.30 pm, and I asked the PlaceCom member if I had to do anything else for Sprinklr. I was waiting for my DE Shaw interview, but around 2 pm or 2.15 pm, I was informed that I was selected in Sprinklr and not to sit in any other interviews!
Conclusion
The period of CDC was quite stressful. I was very disheartened just the night before the interviews as I got just two shortlists on Day1 and I was highly doubtful if I could get an offer on Day1. However, I finally went with positive energy, and things went well.
The most important thing I gained from this process is staying calm in the most stressful situations and never losing hope.
I want to thank my parents and my friends, who were always a constant support for me. I also want to thank two of my seniors Ishan Ranga and Divyang Mittal, who guided me in this process. It would not have been possible to maintain my morale and stay calm in the process without their help. Also, I would like to mention, there is a factor of luck in the whole process. So never judge your capabilities if you are not selected on Day1 or Week1. It's not the end of anything, there are plenty of opportunities ahead.
I hope this blog could prove to be useful to you in some way. Please feel free to reach out to me if I could be of any help.