A Vision Turned into Reality

Kolla Ananta Raj
7 min readJan 3, 2023

--

Background:

Hello everyone,

I am Kolla Ananta Raj, a 4th-year dual degree student from the Department of Electrical Engineering at IIT Kharagpur, with a current CGPA of 9.27 at the end of my 7th semester. I have been exploring machine learning and data science for the past 1.5 years, having laid my hands on different kinds of stuff — working on research projects, implementing ML and Statistical models in my corporate interns, participating in Data Science hackathons, and participating in Inter IIT Tech Meet. Having experienced a variety of things improved my skills in different ways. In my opinion knowledge and skills both go hand in hand, one without the other leads to disaster, especially in the case of Machine Learning enthusiasts.

Preparation:

I would like to segregate my summer preparation into two parts — ML prep and Competitive programming.

Competitive Programming (CP):

I had taken advice from various seniors about the test pattern and the involvement of CP in ML corp’s test rounds. I realized that CP is an important part of the coding rounds. I already had a basic background in data structures and algorithms from the Algorithms I & Lab course which I took in my 4th semester as a part of completing my Minor in Computer Science. Before the summers I already had a little bit of practice in CP through participating in some contests.

I took out the topic list from InterviewBit and started studying from online resources (majorly youtube lectures) after that I practiced problems from that particular topic from leetcode. I gave contests on codeforces, sometimes virtual, and was able to solve 2 questions in Div 2 consistently and 3 questions occasionally. This went on for the first two months of the summer, where I would spend around 1–2 hours for CP every day. In the last month of CP preparation, I solved topic-wise questions from InterviewBit and solved Striver’s DSA sheet.

Machine Learning (ML):

I started my ML preparation around mid-May too. I started by revisiting the classic Machine Learning course by Andrew NG on Coursera and took step-by-step notes on each concept. I knew that questions on ML concepts are very common in interviews and hence focusing on key ML concepts was my main priority. Then I also revisited the Deep Learning specialization on Coursera by Andrew NG to recapitulate the concepts of various DL architectures. Notes on CS229 and CS231 by Stanford, cover similar concepts and were helpful for last moment revision.

For studying recent ML developments such as XGBoost etc. I took help from the ML playlist by Krish Naik. I made use of topics from the playlist and read articles and blogs from some famous sites such as towardsdatascience. Concepts hard to understand from blogs could be very clearly understood from videos by Krish Naik. The playlist contains about 160 videos and covers almost all concepts of Machine Learning in general.

Probability and statistics were also important parts of my preparation for the tests and interviews. I gathered notes from my probability and statistics class and also concise notes from Stats110. Good knowledge of conditional probability, distributions, and expectations was required for ML interviews and tests. I tried to solve the 50 Challenging problems books to practice probability and it turned out to be really conceptual and helpful. The way the book approaches problems is very fascinating. For puzzles, I used the brainstellar website to randomly practice some tricky questions and Chap 1 & 4 of the Heard on the Street Book.

I spent around 5–6 days revising my SQL concepts too. It was very important from the test point of view. I studied OOPs concepts from Corey Schafer on Youtube and some GFG articles.

I spent around 2–3 hours on ML prep and around an hour on probability and puzzles. I didn’t study every day but tried to maintain this streak for the whole duration. Preparing for ML sometimes becomes randomized because sometimes we come across concepts we don’t know of and have to go through them first which ultimately makes a chain of learning, so there isn’t a specific roadmap to follow for ML prep.

Tests Experience -

I knew that there were very few Data companies on Days 1 & 2, so I applied for software roles as well.

For companies on Days 1 & 2, I had aimed for Microsoft ML, Amex ML, APT Data, and Adobe. The test pattern for all these companies was similar where key ML concepts were asked (around 20 MCQ questions ) along with 2–3 coding questions. SQL and subjective questions were also asked. The CP questions were of medium difficulty. ML questions were of medium difficulty but some questions were tough and took really good conceptual knowledge to solve. One unique thing about tests in APT was they accepted CP code submission only in python.

Interview/CV Preparation -

After the tests started we had only 2 weeks left before the interviews. I had already planned to work on my interview preparation and creating a Resume defense.

  • Making a good CV is very important, all your work should be highlighted in a very impactful manner. Redundant things should be removed and only relevant stuff useful for the interviewer should be kept.
  • For resume defense, I took note of all the key points in my CV from where questions could be asked. I clearly understood all architectures and concepts mentioned and read about them every day before the interviews.
  • Preparing short notes about each internship/project/competition mentioned would help in answering interview questions. This is very important as majorly the discussion in an interview will happen around the work done in these.
  • I tried to create a lot of questions that an interviewer could ask about my work.
  • I gathered a lot of standard ML interview questions and started to go through them each day.

Interview Experience -

On Day 1 I had two shortlists, Microsoft ML and APT Data. Somehow I didn’t get a shortlist for Amex although my test went very well.

Finally, the day came and I had my interviews scheduled from 8 am on 31st July. In the APT interview, I got the first interview slot at 8 am. For APT I had 2 rounds of interviews:

  1. APT First Round: The interviewer was very cooperative and he introduced himself first and asked for a brief introduction of myself. After the introduction, I was asked to explain one of my latest projects or internship experiences. I went on to explain my work starting with the problem statement, then the approach, the challenges faced, and lastly the impact created by my work. Then coding questions were asked on the hackerrank platform. I was asked two coding questions one on the linked list and the other on two pointer approach. I first proposed a brute-force solution and then optimized it 2 times. The interviewer preferred python as the coding language. After that, some advanced python questions were asked. The interview lasted for over 50 min approximately.
  2. APT Second Round: Within 5 mins of completion of Round 1, I was asked to sit for Round 2. I quickly prepared myself and got ready for the interview. The second round of interviews also started on a similar note, starting with my introduction followed by explaining one of my internships. I followed a similar approach to explaining my work each time (Problem-> Approach->Challenge->Impact). Then again I was asked to code 2 questions on the Hackerrank platform where my screen was shared. I was asked questions on balancing brackets problems and a prefix array sum. I was also asked whether I knew SQL and how much I would rate myself on 10 based on SQL skills. This interview also lasted for about 50 min. Overall both my interviews went well and both APT interviews were done by 10 am.
  3. Microsoft First Round: Around 11 am my interview was scheduled. I was asked to walk through my CV and explain one of my projects. I was grilled on every point I had written and was asked many questions related to the industrial implementation of my work. I confidently answered the questions, some questions were tough so I requested her to give me 2 min to think about the question. I was also asked advanced and in-depth questions on the ML architectures I had mentioned in my CV. Then going ahead in the interview, I explained my work in an internship that I had done during last year’s summer. I was again grilled on every aspect of my work, and specifically, future work and industrial implementation were the key points from which I was asked the most questions. I had mentioned RandomForest as one of the ML models that I used to make the model, so I was asked a lot of questions from RandomForest and DecisionTrees, and ultimately I ended up deriving the whole decision trees with a good example and stating all formulas. This interview lasted for around 50min.

As soon as I completed my interview with Microsoft ML, I checked my phone and saw calls and messages from placecomm. I got to know that I had an offer from APT !!!

Conclusion:

The whole CDC process happens at a very fast pace. I was panicking the day before my interviews. It was a night of absurd and weird thoughts about the next day, but ultimately I had a good sleep that night.

I remained calm before my interviews and kept confidence in myself. Keeping calm lets the whole interview process go at ease. So I think one should remain calm and keep self-confidence throughout the process because that is something that gives you strength.

I would like to mention that don’t doubt your capabilities if you don’t get a Day 1 or week 1, it’s not a measure of your skills or capabilities. There is a luck factor attached to CDC, so it’s just not the end of the whole process. Give your best shot each time, that is what matters.

I hope my experience could help you in some way. Feel free to connect with me on LinkedIn for any queries.

--

--