The Low CP CDC Story

Yatindra Indoria
5 min readNov 21, 2023

--

Yatindra here, I am a 4th year from the Department of Computer Science and Engineering, enrolled in the Dual Degree course. I secured a Software Engineering Internship offer from APT Portfolio and was shortlisted by TrexQuant, DE Shaw, Microsoft, and Sprinklr among others. Below is a general account of my preparation, and some advice.

The article is structured as follows-

  1. Important points about your CV
  2. Handling the CDC Tests
  3. The Interview Experience

Important points about your CV

The most important part of your CV is the CGPA. Having a GPA above 8.5 (or better yet, 9) makes a massive difference in getting you shortlists, especially for guys. Most people are acutely aware of this. But most aren’t mindful of the extent of it. I know people from the absolute top departments with a CF rating above 1700, sitting without offers till after Day 5, because of their GPA. For HFTs having a CGPA above 9 is highly advisable. I had a CGPA of just above 9, and that was extremely helpful in securing shortlists.

The second most important part is having recognizable brands/achievements on your CV. Having a well-known FT (like MITACS), or an Adobe/Amazon internship before your CDC can help your profile immensely. I know of people with lower CGPAs, and less preferred departments, getting an edge due to internships at known universities/labs. There are many such opportunities available, from IR-Cell FTP to MITACS, DAAD, EPFL, and Viterbi, and even labs associated with CERN, and NASA!

Due to the number of applicants, and general human tendencies, full resumes are generally not read during shortlisting, and objective features make all the difference. That’s why CGPA, Departments, and brands are such a huge deal. Hence, good CP ranks (Kickstart, Hackercup, and more) also make a difference. I know a case where a CV with less GPA and internships got shortlisted for Oracle due to the DBMS course being mentioned!

Lastly, building your CV considering your target companies is always good to have. For example, HFTs would love to see a complex C++ project, kernel programming, or scale and latency work on your CV. My CV included my work on high-scale and real-time systems, course projects from OS, and Networks covering low-level primitives, and a good bit of C, and C++ programming.

My CV for reference.

Handling CDC Tests

Competitive programming and DSA play a huge role in the CDC tests. Preparing for the same is of utmost importance. In my case, I only prepared 2–3 weeks, and did so in parallel to an ongoing internship. I was able to cover the material fast because I had written a lot of complex code before, for coursework, and internships. I do not recommend this, and advise at least 4–6 months for preparing DSA. If you have less, taking help from courses like AlgoZenith is highly advisable. I was doing fairly well in the tests, but during the last 2 days, I ended up getting into a minor accident. Not a big deal in general, but the timing affected my tests. Had I prepared for longer, the effect would have been more manageable. The lesson here is to practice as much as you can to offset unseen scenarios.

Greedy, and binary search is being asked increasingly often. It is advisable to prepare segment trees (Google had a question), trie (Intuit had one), advanced DP (bitmasks, digit, and tree DP were present here and there), graph algorithms (bridges, articulation points, SCC, and eulerian circuits were asked in companies like Microsoft, and Morgan Stanely), and DP optimizations (UiPath had a problem).

It is also important to note that for many companies C++, math (especially probability and statistics), and CS fundamentals make up a good chunk of the exam. APT Software test was based entirely on writing good C++ (2 problems, one on “changing” code to make it more “well written”, the other on writing a parser for BrainFuck (language)). More than half the QuantBox, and NK Securities test was comprised of C++, CS fundamentals, and puzzles (with 2 DSA problems). JPMC, Goldman Quant, and APT Quant had a good emphasis on probability and math (along with 2 or so DSA problems). Graviton Quant had a math test. AlphaGrep (all profiles), and Graviton Software had a DSA test only. For systems roles other than DSA, I believe C++ to be the most important for tests, and interviews, followed by OS, and then networks, databases, and computer architecture (all equally important).

Here are a few resources I’d suggest-

  1. Operating Systems- CS162 (UC Berkely), and uploaded course videos
  2. Computer Networks- KGP content, if content/recordings are not available then NPTEL
  3. DBMS- CMU Intro to Database Systems
  4. C++ PPD Lectures
  5. Effective Modern C++ by Scott Meyers, and Cpp Reference (just for reference, adding because C++ is heavily stressed in the interviews)

The Interview Experience

APT Portfolio was the first company I interviewed for. The process is generally comprised of 2 technical rounds and 1 HR round. My interview lasted around 1 and a half hours (both rounds happened on the same link, and HR was skipped). The offer was rolled at the end of the interview.

The interview started with questions about my internships, followed by 2 DSA problems (medium difficulty, one on trees, one on greedy/math, coded and executed on Hackerrank link), and 4 or 5 C++ code snippets to predict output/debug/explain. Followed by questions on TCP/IP, and UDP use cases. Then shifting again to C++, with unordered_maps, rehashing, and collision control in C++ STL. This was followed by questions on OS, concurrency, and a container design question (here I took a hint). This was followed by 2–3 standard puzzles (Brainstellar medium/hard). I was able to answer most questions with a good amount of system-level details, and without hints.

An extremely important piece of advice is to take the interview forward like a conversation. An enjoyable conversation is going to 10 times your chances of getting the offer and will work to repair any damage done by not knowing the answers. Another extremely important skill is to “lead” the interview where you want it to go. If you have strong C++ competency, it might be a good idea to discuss small string optimizations, move semantics, or destructors. Initiating this can be as easy as making a passing reference to one of those things in an unrelated question. It is crucial to not mention things you have little expertise in. If you lead the interviewer to a topic yourself and are then unable to answer, that will have a terrible effect on your impression.

The Final Piece of Advice

The most important factor for CDC is how well you take rejection. The whole process is a series of rejections for all the participants. No matter how well-prepared you are. Missing a few test cases in the Uber test, not making the shortlist after doing well in the test (when your friends do), and screwing up the Day 1 interview, are all rejections. Humans don’t do well with rejections.

For most, the series of rejections will go on for weeks. But it doesn’t mean that great opportunities are all finished. Many well-paying companies come late, and even more hire off-campus, and are just one referral away. But to avail those opportunities, it’s imperative to not let the rejections affect you!

--

--