Recenty I got a chance to interview at Squarepoint Capital during my campus placements. It consisted of 2 stages 1st was online test and second was 3 rounds of interview.
Stage1: The test comprised of 2 medium question one was based on normal 2 pointer approach and maintaining a condition and second was based on price of stock there we have to remove the overlapping cost ranges and maintain prices. That i cleared successfully.
Stage2: Interview Rounds
Round1: My 1st round was scheduled on 22nd Oct. Interview started with a quick introduction of mine and then we moved to further discussions. Firstly he asked me to give a feature that is not there in C++14 but is there in C++17. In that I mentioned strcutural bindings and showed him that by iterating the map of pair and int. Then he asked me to explain the implementation of map ds using balanced binary search tree for which he asked me to explain the avl tree and how rotations happen and asked me to write the pseudo code. Then he asked me very deep questions on c++ and os. Difference between semaphore and locks, what is race condn, critical section, different types of casting in c++ (static, dynamic, reinterpret), what is the lifecycle of program how memory allocation occurs for static and dynamic variables etc and many more deep questions for which you must go through c++ gfg tuts or learncpp. Then we moved to a dsa question where I was give a currency exchange rate for many different currencies for eg USD to CAN 1.8, CAN to YEN 2.3....etc. now I was supposed to find the best path of conversion between two currencies which I boiled it down to graph problem sslp dijkstras. It was not simple as it looked because I was supposed to write the design level code using proper classes and oops concepts but it went smoothly and he was convinced. Further he asked me some CN questions what is TCP/IP, difference between Virtual Ckts and Datagram service and the interview ended Within 5 7 days i got to know about my next round which was in Nov 11. The gap was much because Squarepoint was carrying out the whole process offcampus pan IIT so it was little bit time taking.
Round2: This time there was British Interviewer he was chill and friendly. He started with asking about internship project and he grilled me until he was satisfied so you must have deep dive into what you have done. Then he asked me basic to intermediate questions on python list comprehension, generators, GIL which I coded and he was satisfied. Then he gave me 2 dsa questions one was normal PQ question and other was digitDP which I solved and passed all the test cases and he was happy. After that he asked me some questions on my projects which was related to multithreading and parallel programming. After this I got call for final round which was scheduled the other day.
Round3: Now this was the most tricky round. Here the interviewer didn't came up with normal dsa question. He gave me a code which I was supposed to debug. The code was regarding maintaining critical section without encountering the deadlock. The code was very tough and tricky but the catch was I was not supposed to look after everything but I was supposed to look after the queue class where this task was taking place there were two queues maintaining flight details and many much things but I was only supposed to reduce the latency of this code somehow to which i observed it was using lock normally and much time was consumed as there was no notifying condition for them to release when task was done instead they were releasing when that state came again. I implemented condition variable there and using cond.notify_all() and cond.wait(lock, lamda func) i optimised the task successfully and the run time got reduced to half and he was happy. Then he gave me a problem to implement a stock buy order sell order matching design problem where I was supposed to match buy order with sell order everytime execute func if fired but this all full code I was supposed to write in 15min - 200-300 lines of code on empty file which led me to a very small mistake that I deleted the the element while iterating just because of this chaos, and this small mistake led to negative feedback at this point.
Verdict: Not Selected ---> But eventually got an offer from Microsoft in DAY0. Will be posting the experience for that shortly!
Finally the interview got wrapped up and even after outperforming so great throughout the process one small mistake led to my rejection here. This is what sqpoint capital is they dont want even a small ounce of mistake.
TIPS: Be patient as interview will be rigrous as they only have 1hr/round and they need everything in that, no point in being careless while answering and coding. Take a deep dive into C++ end to end from gfg or learncpp as your wish. Take firm grip on OS and CN.