After this, he asked me to code up a simple implementation of a shared pointer. I don’t remember exactly, but it was something like this: Because more than one pointer can be pointing to an object we need to maintain that information, and manage the creation and freeing of pointers correctly. Though I have worked with smart pointers, I was not very convincing in my solution. One thing I did here was kept thinking aloud, and through my discussion and some of his interjections I came up with a workable solution. This interview probably went for around an hour or so, there were so many small questions asked initially that I cannot even recall everything that was asked.
He then went on to ask me to design some sort of a system with some specifications — not a system design type of question it was more of a test of design patterns and OOPs. He made me code the classes up in Java on paper and grilled me for some time on this.
I went in for my second round, and we started off similarly. I explained the Kernel Module project and an on-disk file system I had created in my 6th Semester during OS Lab. The Kernel Module involved BSTs and she then digressed to ask me an Algo question on BSTs and Heaps.
While I was describing my Network related project, we slowly started to move towards concepts like Splicing, Kernel Space and User Space Separation, the Network Protocol Stack and I think this discussion ended with TCP — The Congestion Control Mechanism in specific. I honestly feel that I led him onto this and that they won’t have been asking all this in general. My bad luck was that I hadn’t prepared all this and even the stuff I had studied in Advanced OS and Computer Networks, I hadn’t revised at all. If someone is aiming to get into one of these HFTs, try to have a solid Systems background and please revise well.
I was greeted by the interviewer whose name incidentally was also Himanshu! After some basic introduction, I went on to describe one of my ongoing projects on his demand. Since I knew the kind of work they do roughly, I chose to elaborate one of those relevant projects which involved concepts and methods which I thought might impress him — I chose one which involved programming in the kernel and another one which involved a lot of socket and systems programming concepts like fork(), select(), signal(). I dont know how much this helped, but I still believe its a smart move.
– I started CP after lockdown, but I became more regular in my preparation in summers. Before summers, I gave codeforces contests and did questions from the JUNIOR TRAINING SHEET (a good resource for CP but not ideal for interview preparation). – In summers, I did almost all the questions from INTERVIEW BIT (have a very well organized set of questions from every topic), LEETCODE TOP 100 and the book CRACKING THE CODING INTERVIEW (FOCUSED ON CP, ALSO CONTAINS STANDARD PUZZLES AND DESIGN QUESTIONS). – I prepared for PROBABILITY PUZZLES by revising CS203 (upto linearity of expectation) and solving some puzzles from brainstellar.com. – Also went through the PREPARATION MATERIAL on the SPO website which was helpful too. – The best RESUME prep tip in my opinion is to build a draft and get it reviewed by as many seniors as you can. – I gave many MOCK INTERVIEWS with my friends. This step is very helpful and gave me a lot of confidence. Mock interviews arranged by ANC are also beneficial.
– I would strongly recommend going through Cracking the Coding Interview book. – Practicing as many CP questions as possible is a must. Start giving coding contests early. – Many people wonder which coding website to use from preparation. I would advise you to pick any one of the coding websites (leetcode, interviewbit, or geeksforgeeks) and stick to it. – Revise DATA STRUCTURES AND ALGORITHMS. – During summers, you can do internships and projects to build your resume. I did both. If you manage your time, they should not be a problem in your preparations. Please enable JavaScript to view the