CDC Internship Experience 2022

Aaditri Vaibhav
10 min readFeb 7, 2023

--

Background

I am Aaditri Vaibhav, a 3rd-year undergraduate studying metallurgical and materials engineering at IIT Kharagpur. I will be interning at Amazon in the summer of 2023. In this blog, I will try to talk about my overall experience in detail, with a separate section focusing solely on Amazon, in the hope that it might help someone going through the CDC process. Cheers! :)

Pre-CDC Phase

My CGPA at the time was 8.9, and I had done one remote research internship at the University of Birmingham. I had three basic self-projects based on C++ programming, game development, and front-end development. I had decent PORs and extra-curricular achievements.

In terms of coding experience, before the 3-month long summer of rigorous preparation, I had knowledge of basic programming concepts and some experience in C and Python. I had solved some problems on Codechef and Leetcode earlier, but I specifically started CP around December, when I took a course from AlgoZenith and started with C++. I was not very consistent during this phase and could only cover the STL easy and medium-level questions.

Rigorous Preparation Phase

I started to cover my AlgoZenith backlog and simultaneously the relevant topics in April. I gradually picked up the pace and made a rough plan with which I could cover the entire syllabus by July end. The plan was made to set a strict timeline to cover a particular topic, including lectures, problems on AlgoZenith, and some problems on other coding platforms from the same topic. Topics that had more material to cover were given more days. The idea was not to solve all the questions but to get a decent understanding of these concepts by solving as many as possible. Once a timeline for one topic was over, I strictly went to the next and covered any backlogs on weekends that I had reserved for revision. This helped me not go off-track by spending a lot of time on complex concepts and also encouraged me to solve more as I saw a closer, more clearly visible deadline for each topic.

The general flow was first to watch a lecture, solve questions based on it and watch tutorial videos for good questions alongside (only after trying them out once). Watching the lectures and then trying to solve all questions in one go did not work well for me.

I generally did not solve topic-wise Codechef or Codeforces problems except for a few topics in which I thought I needed more practice or if I had more time at hand. Although, I did give their contests regularly, even when a bunch of topics was left to cover. This helped me a LOT in terms of getting used to the coding-test environment and should be prioritized if one is preparing for CDC. Do note your friends' progress, too, since a sense of competition can keep you motivated.

Apart from CP, one should also prepare for Probability and Statistics, Puzzles, and core CSE concepts like OOPs, Computer Networks, etc., if aiming for a software role. I started focusing on these in July. For P&S, concepts from the college Math course should be enough. Fifty problems in probability and statistics and Brainsteller are good books for practice questions. Puzzles were quite fun, so I used to solve 5–6 of them whenever I got exhausted from CP; I would suggest starting to solve them earlier than me. GFG was a good source for practice puzzles. Questions from CSE theory topics are available on InterviewBit and GFG. There is a lot to cover here, and it might get a little overwhelming if you start very late, so try and start at the earliest. This is the easiest part if you can cover everything, and it comes in handy for many companies’ tests.

Coming back to CP, I practiced InterviewBit and Leetcode questions extensively throughout July for the topics I had covered. Question patterns tend to get repeated frequently, so nobody should skip this step at any cost. However, please do not start with InterviewBit early in your preparation since it might not be the best place to learn.

CV Preparation

The CDC process officially started by June-end when we began making our CVs on ERP. To anyone sitting for CDC, please do not take this process lightly. Preparing your CV on ERP is a hassle, and it will take you a lot of time. Additionally, reach out to 5–6 seniors who sat for similar profiles and incorporate their suggestions. Do not be afraid or lazy about preparing 7–8 iterations; that is how a good CV is supposed to be made. Make sure to use essential keywords in your resume since many companies shortlist students based on them (nobody has the time to review every student’s CV manually).

Tests

I only sat for the tests of companies offering SDE/Quant roles. Unless you are particularly interested in a role, I suggest you not sit for their tests because they consume a lot of time. The process is hectic, with 4–6 tests happening every day (often at odd hours), and you do not want to overwork yourself.

All the tests were online. Different companies had different platforms; many used HackerRank and HackerEarth, while some had their platforms. ALWAYS familiarize yourself with the platform in question before the test. Some of them allow you to navigate while some don’t, and some show you the failed test cases while some don’t; knowing about things like these beforehand is crucial if you wish to use them in your favor. Trust me; it can make a huge difference.

The questions largely revolved around DSA, while some companies did ask core CSE concepts in the form of MCQs and aptitude and prob stats/puzzles. The questions were mainly below the CodeForces/CodeChef contest levels, and InterviewBit/Leetcode questions tended to get repeated (with zero modifications, in some cases). Different companies focus more on various topics- solving previous-year questions can help you get an idea. Anyone with an idea of 50 challenging problems/Brainsteller questions can solve the aptitude/maths section completely; the only difficulty here is the time constraint. Practice well before the tests start; good speed can help you take a considerable lead in many tests.

A few companies like Adobe and Goldman Sachs also ask you to write a short essay. This can come as a blow when you have a strict time constraint to solve the coding questions; it is thus advised to prepare some brief answers to these behavioral questions beforehand. These questions are pretty repetitive, and handy for interviews, so why not prepare them beforehand?

Interviews

I cannot stress the importance of mock interviews enough. They are incredibly beneficial and necessary. You have no idea how nervous you might get on any given day and how badly it might ruin your chances. Getting shortlisted for a company of your choice is a big deal, especially when you are from a non-circuital department (more on this later), and the last thing you want to do is mess up your introduction (Yes, this happens a LOT).

When you are nervous, the chances of you going blank are high. The only solution to this is to practice your answers to common behavioral and CV-based questions so well that you should, in the words of a senior, ‘be able to answer them even when somebody wakes you up at 3 in the night.’

CV-grilling is real, and it creates a very bad impression on your interviewer if you come out clueless about something you’ve boasted about in your CV. You should be able to justify/defend every sentence in your CV. The best way to be prepared for this is through mock interviews with seniors. They will ask you questions from an outsider’s perspective, which you may very well miss on your own.

In our case, the interviews were taken online through different platforms depending on the company. Aside from the coding part, being thoroughly prepared with a good introduction, an answer to the question “Why their company,” answers to common behavioral questions, and questions based on CV helped a lot.

The coding questions often focused more on graphs, trees, linked lists, BSTs, and DP than other common DSA topics. The thumb rule in any question should be to try and explain the brute force solution first and then gradually move to the most optimal solution you can think of. You won’t be required to run the code in most cases, but you may be asked to do a dry run. Explaining your code is a critical skill you must pick up through mocks. Do not stay quiet even if you are stuck. Think out loud. Mention that this is the approach you are thinking of, but this is why you think it will not work. The interviewer will help you out.

Amazon-specific Experience

TEST:

The test had two parts. The first one included three easy-medium DSA questions from topics like 2-pointers and primary DP. The second part was a long behavioral survey which can be easily aced through ‘Amazon’s 14 principles.’ Note that some students skipped this survey thinking it wasn’t necessary; do not make this mistake and read the instructions in their mail correctly.

I was able to solve all the coding questions entirely well within the time limit, and I carefully answered the survey, after which I was shortlisted for the interview along with many (~50) others.

INTERVIEW:

As the seniors I talked to had predicted, Amazon’s interview focused solely on testing your DSA skills. The interview started with my introduction, after which the interviewer introduced himself, and we directly jumped into coding. No behavioral or CV-based questions were asked. For this, try to incorporate your relevant qualities (refer to Amazon’s 14 principles) in your introduction while keeping it short.

I was asked two questions. The first one was a simple 2-pointer question in which I had to find the length of the longest substring with exactly k distinct characters. The second question was tree diameter-based in which, given one random node that is set on fire at t=0, we had to find the time it will take for the entire tree to burn when the fire travels through one edge in 1 second (other nodes were not given and you had to traverse through them using node->left and node->right).

I had solved the first question before and directly gave him the optimal solution because I was sure of it. After explaining the code to him, he asked me to do a dry run. He specifically asked me about some parts of my code, which I explained in detail. He was satisfied with my code, although he pointed out it wasn’t very clean and thus difficult to understand.

I was not used to tree-based questions, and it thus took me some time to come up with an approach for the second question. The interviewer was patient. After some time, I came up with an optimal but rather complex approach the interviewer approved of. I coded it entirely and explained every step to him. Once again, he said the code would work but a more straightforward approach exists, and then he explained the diameter-based procedure to me.

After all this, he asked me if I had any questions. I was prepared for this and asked him about the projects Amazon is working on right now and what role I would be playing in them if I got selected. He explained my position in detail and cleared all my doubts.

The next day, I was informed that I had been selected.

Influence of Department

I will not sugarcoat anything; being in a non-circuital department while aiming for tech roles is not the most favorable situation. The bias starts to show very early on in the process, and it only continues to get worse. You may expect Day 2 companies to be less biased than Day 1, but sadly that is not the case. Many companies won’t even open for you, while many will open but not shortlist anyone from non-circuital departments.

If you have put in the effort, this situation is bound to overwhelm you. You will see people less deserving than you getting offers on Day 1 while you are not getting any shortlists, even on Day 2. Yes, it will be tiring, but if this happens to you, trust me, it must be happening to many others. Look around, and you’ll find people way more deserving than you in even worse situations.

This happened to me, and no matter how many people told me the process was not a true judge of my skills, I was affected. At a time like this, it is crucial for you to talk to your close friends, family members, and seniors. I was hesitant to reach out to my seniors at first, but when I did, I could not explain how much it helped me. Seniors I had barely talked to before called me up and guided me for hours. People are always there for you. Reach out.

Despite all this, I want you to know that if you have worked hard, you will surely get what you deserve. In the pool of all those limited companies, some will genuinely judge your potential and give you a chance. When rejections come your way, do not get disheartened and lose hope. Realize that to get a good offer you only need that one interview shortlist. That one time, your luck favors you, and you get a chance to prove yourself. The only thing you need to focus on is to ace THAT interview. Losing hope and giving up on your preparation can potentially ruin that.

That being said, there is no substitute for honest effort. Try and utilize your preparation timeline to the fullest extent but also, do not forget to have fun along the way! Nothing’s more important than that. :)

ALL THE BEST! MACHAKE!

--

--