anirudhakulkarni / Placements-2024

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Placements 2024

Hits

I sat for placements at IIT Delhi. This is a compilation of the preparation I did from August 2024 to November 2024.

Preparation:

Majorly four components: Competitive Programming, Dev/C++, Quant section and CS fundamentals. I had prepared for quant section during intern phase. I had experience in Dev from my past interns/side projects and C++ from Optiver. My majority prep was doing CP and CS fundamentals.

Competitive Programming (CP)

Important topics: Graphs, Trees, Dynamic Programming, Recursion, and Range Queries. Some Sources of questions:

  1. Leetcode Profile

    • Leetcode hard questions are important. I found solving easy a potential time waste. Some mediums are good but I regret not trying to focus on hard questions only as early as possible.
    • Do not look at the solutions without solving for the sake of solving.
    • I kept a target of 30 minutes per leetcode hard question until I gave up and saw the hint.
    • Leetcode sheets are useful ways to get started: Striver SDE Sheet, blind75 sheet, Neetcode150 sheet. Solving these sheets is more than enough to clear all the tests. Leetcode premium question data.
    Common Coding Patterns in Algorithm Problems

    Sliding Window

    Subsets

    Cyclic Sort

    Modified Binary Search

    Two Pointers

    Tree Breadth First Search

    In-place Reversal of a LinkedList

    Topological Sort

    Tree Depth First Search

    0/1 Knapsack

    K-way Merge

  2. CSES Profile

    Most of the questions are good. This is probably a good source of questions after leetcode. Some are ridiculous. This video motivated me.

  3. cpalgorithms

    This is the bible for algorithms. Data structures, graphs, and trees are a must. You will find the most minimal version of algorithm implementations here. As I solved more and more questions from leetcode/cses/codeforces/tests I found myself going through 99% of the algorithms at least once.

  4. Codeforces
    Tests for HFTs sometimes borrow questions from codeforces 2000+ directly. I found dp on graphs questions from codeforces useful.

Some more advanced topics especially for HFTs include dp on graph and linear expectations questions on graphs.

2. Dev/C++

This is a very wide area. I felt having practical experience helps here. Some important topics one should consider (in alphabetical order from my notes):

  • Casting
  • const
  • constexpr
  • constructors
  • copy elison
  • design patterns
  • diamond problem
  • exceptions
  • fastio
  • filesystem
  • friend keyword
  • inheritance
  • iterators
  • lambdas
  • linux directory
  • lvalue rvalue difference
  • move vs copy
  • operators
  • padding and packing
  • references
  • signals
  • smart pointers
  • stack vs heap
  • static keyword
  • std::threads
  • string
  • templates
  • virtual destructors
  • vtable

Find youtube videos for each of them separately. I felt this was more than enough for what placement tests expected for. Practice gfg question sets like this Set, C++ Programming Multiple Choice Questions - GeeksforGeeks occasionally. The more you solve the better it is.

3. Quant Section

Probability is majorly required for quant profiles even though some Dev roles at HFTs also ask them as part of the general aptitude test. This includes probability and mathematical puzzles. I had prepared for this section during intern phase extensively and hence did not spend much time here (~80 questions on weekends and occasional discussion on hard questions from friends).

Xinfeng Zhou Xinfeng Zhou - A practical Guide to quantitative finance interviews and Heard on the street are the gold standard for these questions. Many companies repeat the questions as it is from these books. Some sections such as option theory are not required. Mark Joshi also has some good questions to practice. Some companies ask for linear algebra as well - I did a 4-5 hour refresher for this and got through tests.

Apart from this, I studied topics as I came across:

  • Catalan numbers
  • correlation
  • covariance
  • linear expectations
  • p-value calculation
  • sampling algorithms
  • central limit theorem
  • simulating probabilities
  • random processes
  • linear algebra in probability
  • almost sure convergence

Some other questions I practiced but were not required as such are: https://hireglyph.com/questions, https://www.quantguide.io/, brainstellar, geeksforgeeks.

4. CS Fundamentals

This section is sometimes copy-pasted GFG questions or complex questions with an application of fundamental concepts. There is no middleground. As you start to attempt placement tests, you will find repeated questions again and again.

1. Computer Networks

For Computer Networks understand the basics and layers. Understanding actual function calls instead of abstract ideas helped me in one of HFT interviews and interviewers seemed to appreciate it a lot. GFG problem sets are good for this.

2. Operating Systems

OS lectures by Sorav Bansal videos is the gold standard for OS along with notes. This series covers OS+parallel+some part of the architecture.

3. Parallel Programming

I did not find any particular lecture series useful for this. Solving gfg questions and YouTube videos as required helped. Some of the important topics are semaphores, condition variables, threads, locks, etc. Try to apply these topics in practice. HFTs ask some really good questions in this area.

4. Computer Architecture

Again, solving occasional gfg questions and reading random slides from MIT helps. Hardware role at HFTs asked for constructing arbitrary truth tables from basic logic gates. Some important topics: Understand cache, cache coherence protocol, associativity, pipelining, size calculation for page table etc. (Someone else could contribute here. I did not prepare for H/W roles).

From my experience, HFT Dev requires CS fundamentals, Dev/C++, CP extensively, and medium to high effort from the probability section depending on what roles you are being considered for.

HFT Quant requires CP, CS fundamentals, and quant section extensively. You could potentially skim through CS fundamentals but still get through.

Tech SDE requires CP, CS fundamentals, and a bit of Dev/C++.

Applications:

  • Should I apply for just “important” profiles?

Getting experience with placement tests is important. I have seen people applying just for “important” profiles and then panicking in tests and not getting shortlists. I shamelessly applied for every profile out there. I experimented with time management and handling stress during tests. The same goes for interviews. I gave several Tech SDE interviews as a mock for tech rounds and HR rounds.

Placement Tests:

  • Very few openings have 9+ CGPA requirements

  • Placement tests are mainly CP. Being able to solve a random leet code hard within 30 minutes helped me to get through all of the tests. Few will require CS fundamentals and C++ as well (a must for HFTs). HFT quant will have additional quant sections as well.

  • Most of the tests are quite straightforward with a similar pattern of 2 leetcode hard questions with 30 mins each and an MCQ section of CS fundamentals or CP fundamentals or a quant section.

  • Some companies shamelessly repeat the questions: Refer to these sheets Inter IIT Placements 2021-22, Inter IIT Placement 2018-2019, 2019-20 inter iit placement questions

Apart from this there will be some whatsapp groups, discord channels. It sometimes helps to reduce anxiety or get a place to bitch about companies. Check with your batchmates for this.

Understanding Compatibility

This is usually a neglected part of placements. Try to understand the requirements of each profile beforehand. Understand the company culture and see where you fit beforehand. Do not waste both your time and their time in this process just to realize it's not the culture you want to join. Avoid fancying any profile. Understand the requirements of all profiles, what is fun to do, and what you can do. Stay away from firms with toxic work cultures.

  1. Across roles:

    1. Tech SDE - great for someone looking for work-life balance or wanting to gain tech skills, depending on the firm’s culture. Some tech SDE jobs could require as little as 3 hours of work a day, and some could require as much as 12 hours.

    2. HFT Quant - No work-life balance. Be prepared to sit from 9:30 AM to 5-7 PM in the office, depending on load. High pay - some firms could be toxic depending upon HR, people in management, and seniors.

    3. HFT Dev - Same as HFT quant but workload could be a bit more lenient or harsh depending on firms and culture. Less pay after 4-5 years but more employable and less risky compared to HFT quant (Hire to fire?)

  2. Startup vs. established:

    1. Established firms relatively have better work-life balance. But relatively lower pay and lower workload. They tend to have established cultures, less uncertainty if company will survice and access to industry pro people.

    2. Startups are usually high risk and high reward. More responsibilities and more workload. Usually great if you want to gain skills early in your career or if you want to startup in the future. It is easy to get exploited here.

Interviews

  • Interviews usually start well before (November month) day one (now day 1.1). Most of the HFTs will conduct multiple rounds before. Enjoy the attention you get from companies during this period before day one (we da best, join us) Some Tech SDEs tried to conduct interviews this time, but OCS imposed restrictions.

  • OCS restricts the number of interviews available on any slot to just five interviews (petition to change this). You can select the preference a day before and get interviews slotted accordingly. I had all HFTs at the top and could not interview for Tech SDE roles on day one. You could be more strategic in filing the preferences to minimize the risk.

  • Having a friend with your phone handling interview scheduling can be useful. Companies tend to overshoot the time limit if they like you, and you can easily miss other interviews. You can prioritize beforehand which one to focus on and which one to skip to avoid any miss on the actual day. I skipped the final round for some of the profiles to continue with rounds for prioritized profiles.

  • Interview prep: Most of the prep is done while doing the tests. There is nothing to do here towards the end but polishing, reducing the stress and being confident. Give some mock interviews with friends, seniors or anyone who can ask you a leetcode question and judge your response.

  1. CV - be ready to explain internships and projects, highlight achievements etc

  2. Live coding - common with tech SDEs

  3. Puzzles and quant questions - common with HFTs both tech and quant

  4. HR - be ready with cultural fit questions - why do you want to join us, why not competitiors, strengths, weakness etc

  5. Dress well - plan your haircut well in advance to avoid last minute embarrassments

After Interviews

  • Not getting what you wanted in the placements is not the end of the world. There will be some openings that weren't available during placements. Approach seniors to check if openings are available.

  • Some startups are great yet they don't get a slot at IITs - approach them

  • Some firms will approach you after the interviews once you get an offer from competitors ready to match or hike up whatever is being offered.

  • I have seen people not solving a single question in on-campus placement tests and yet approach them after placements and bag an offer. Caution: This does not work with all companies, so be prepared for being embarrassed if you do so.

A Side Note

  • Placements are stressful and can worn you out. Given the current market situation, it is easy to panic/get depressed. IITs usually see several suicides during this phase. Make sure to create a support system with friends, and reach out to counselors.

Some More Prep Links

  1. C++ Coding Standards: 101 Rules, Guidelines, and Best Practices

  2. Spring 2015 -- Computer Architecture Lectures -- Carnegie Mellon - YouTube

  3. MIT 6.824 Distributed Systems (Spring 2020) - YouTube

  4. Arithmetic Game – Online Speed Drill

  5. Sparse Table and Fenwick Tree (Binary Indexed Tree) [CodeISM 2023] - YouTube

  6. Full Interview Preparation Cheat Sheet... This will save a lot of time. found this to be really helpful. Hope you also gain benefit from these resources.

  7. (16) Discord

PS: After endless Pros & Cons Jams, I finally ended up joining Quantbox Research Capital as Dev.

About