Tower Research Capital Interview Experience (On-Campus)

Aaditya Gadhave
Nybles
Published in
8 min readFeb 6, 2022

INTRODUCTION

After countless rejections during the Pre-Final Internship season, I finally received a 6-month internship offer from Tower Research Capital through the on-campus placement season. There were many ups and downs during the whole Intern and Placement process, but with help of my friends and family who constantly supported me throughout (and am really thankful to them), I finally received an excellent opportunity from Tower. I hope this blog will surely help those students who are seeking jobs/internships in SDE roles.

PREPARATION PHASE

To grab a SDE role in a good company, one of the key subjects which every company ask during the recruitment process is Data Structures and Algorithm. I have been practicing DSA since the beginning of college through various coding sites, mainly :

  1. CodeChef: I started off my Competitive Coding from Codechef, by mainly Long-Challenges. I liked Long challenges mainly because the questions here were based on various Algorithms. So, if you are stuck on one problem, you get time to discuss, research, and learn the algorithm which should be used and try implementing the same. Codechef really helped me to have a good start for me in coding.
  2. Codeforces: I started Codeforces in my 2nd year. It might be tough for some to have a good start in Codeforces, which was my case. But eventually, I got a good hand at it and was able to solve many questions. The main advantage of Codeforces is that it has many short contests which are held on a regular basis. So giving contests regularly will surely help to manage your time and think quickly while solving coding questions during an online assessment.

Now, though many students think that solving coding questions on these sites will help to crack all DSA-related questions in interviews. But this is just a myth. Topics like Linked-List, Binary Trees, Trie, etc. are never covered in these sites and Companies ask many questions related to the same. So for interview purposes, I followed many sites, mainly:

  1. InterviewBit: Interviewbit is really a good resource for practicing interview-related questions. It has a limited set of questions as compared to Leetcode, but the quality level of questions is pretty good plus you get to solve questions topic-wise. Make sure to try all questions if you refer to this site.
  2. GeeksforGeeks: I mainly used GeekforGeeks for reading purposes. They have quite good learning resources and will surely help during interviews. They also have many interview experiences for different companies which helps you to know the what kind or types of questions they ask. It’s good to read these experiences as many times questions are repeated in the interviews with a slight twist.

Now, apart from DSA, you need to have good knowledge of your core subjects mainly: Operating Systems, Database Management, Object-Oriented Programming, Computer Network, System Design (Low and High level). Now to learn these, I mostly saw various youtube videos and made notes which include videos of Gate-Smashers, Gaurav Sen, Exponent, and many more.

Also, make sure to read various HR-type questions as many times, HR round might be a deciding factor for your selections, so never take it lightly. HR tends to ask similar questions which are available on the internet. So prepare well on this as well.

RECRUITMENT PROCESS

The whole recruitment process consisted of 4 rounds:

  1. Online Assessment: 1 round
  2. Technical Interview: 2 rounds
  3. HR: 1 round

Apart from this, resume shortlisting was also done before Online Assessment. Resumes were shortlisted based on CGPA, Past-Internship (if any), and projects. So make sure to have a good CGPA (around 8+) and projects (at least 3 decent projects)

1. ONLINE ASSESSMENT

The online assessment was conducted on the HackerRank platform. The total duration was 90 minutes. It consisted of three sections:

  1. MCQ Section: There were 11 MCQs that were based on core Computer Science subjects. The questions were relatively tough than other companies and required a strong grasp on your subjects.
  2. SQL Query- There was 1 SQL-Query question. Again this section was tough as very few companies ask SQL queries to run. It required many join, group by, and some more operations to run.
  3. Coding Section- Here, there were 2 coding questions. One was easy based on a string which was easy-medium and another one was based on DFS/BFS + hashing + DP which was a bit tough. The hard one also had more weightage as compared to the easy one.

I solved both the coding questions, then solved the SQL query questions. I am also confident that most of the questions in the MCQs section were correct.

2. TECHNICAL ROUND- 1

The interviews were conducted after 2 days of Online Assessment. Out of 39 students, only 6 were shortlisted for this round. I was a bit nervous as my interviews slot was first and I had heard that Tower asks very tough questions.

The duration for the round was 1 hr and Tower follows this duration very strictly. The interview was divided into two sections:

  1. First Section- This was a 15-min section (strict timing) that consisted of theoretical questions only. Questions related to OS, OOPs, DBMS and Networkings were asked in this section. Questions were tough so need to have in-depth knowledge.
  2. Second Section- This was a 45-min section that consisted of one coding question. The question was as follows:

Given a 2-D binary matrix of size N*M (N*M < 10⁶). ‘0’ represents water and ‘1’ represents land. Now in this matrix there are two islands (An island consits of connected ‘1’ in all four directions). We need to build a bridge between these two islands by flipping ‘0’ to ‘1’. Find the minimum flip operations.

The question is similar to this one : Shortest Bridge

Luckily I got an easy question as compared to others. I had to code the solution on the doc and dry run it myself. I told him the solution step-by-step starting with brute force solution to most optimal (both time and space).

I luckily solved the question in 35 minutes, so Interviewer asked me another bonus question just to see my thinking. It was a string+dp question and I could just share a brute force solution for the same and could not reach the optimal one as time was limited. This was not the question he judged me on so no worries. The interviewer was also very kind and helped me whenever I needed it and understood everything I answered, easily.

In the end, he asked me if I had any questions for him. It is always a plus point to ask questions to the interviewer about anything based on the company.

The interviewer ended very positively and I was confident enough to get a call for the next round.

3. TECHNICAL ROUND- 2

I got called for the next round within 5–10 mins after the first round. Only 2 students got shortlisted for this round. This one also had a 1-hour duration and was based on a Low-Level System Design. You need to have a strong OOPs concept to crack this round. The question was:

Design a cache system. (Any coding language preferable).

As it was a LLD round, I chose to code in CPP as I was more comfortable with it. You need to enlist all the requirements in front of the interviewer first, like the type of caching method to be chosen, the data structure to be used, etc. Once the interviewer is satisfied with all the requirements, you should begin with the coding. Make sure you use your OOPs concept properly (like use inheritance, abstraction, etc. when necessary), whenever needed as the interviewer is keener to know your understanding of concepts you use rather than you writing a run-able code.

I did all the explanations and coding parts within 25–30 minutes. So interviewer tried to make this tricky by adding a second part:

Design a cache system where user has choice to choose the method of caching.

So I first enlisted all the methods of caching and tried to implement it in my existing code through inheritance. The interviewer was really impressed with my overall design and my concepts.

After I completed my second part, we still had 5–10 minutes left. So the interviewer asked me about my college life, the activities in which I participated at my colleges, my interest, hobbies, and many more. The interviewer was really nice and was very interactive and helped me whenever I needed it.

In the end, he asked me if I had any questions for him. The interviewer ended with satisfaction on my face as I did my best in this round.

4. HR ROUND

Again after 5–10 mins of my second round, I got a call for the HR round. Again only 2 students were shortlisted in this round. There were no typical HR questions asked in this round (very lucky). The HR was more interested in knowing my background, which job profile I was interested in, what is my Dream company (except Tower), what I knew about the company, etc. She then explained to me my role in Tower and what I’ll be working on.

The round ended within 10–15 mins. Usually, I am not good at HR rounds, so I was a bit nervous if I’ll get selected here.

FINAL RESULT

The results were announced on the same day after 3–4 hrs past my interview and I was the only one who got the offer. I was really glad that I was able to crack one of the best HFT company’s interviews.

TAKEAWAYS

  1. Whenever your interview is scheduled, make sure you have a good sleep before that as your mind is your best asset here and you need to keep it fresh during the interview.
  2. Always stay calm during the interview, even if the question is hard. Ask all the doubts you have to the interviewer as they are always there to help and make sure all the corner cases are clear beforehand.
  3. The interviewer is not a brain reader, so you need to have good communication skills in order to speak what you think. Try participating in mock interviews as this will really brush up your skills.
  4. Try writing a neat and simple code. Try giving a meaningful variable name. Have a good practice in writing codes in doc (as many interviewers will not allow to code on the editor). Always do a dry run of your code with your own test case before submitting and do check all the corner cases.
  5. Never jump to the optimal solution directly. The interviewer wants to check your thinking skill rather than solving skills. Try out with the brute solution and then try optimizing it level by level.
  6. Don’t waste time on any questions you don’t know. It will waste your and the interviewer’s time as time is limited. Instead, tell the interviewer to change the question so he/she can judge you on different questions.
  7. Never take any type of round lightly. Be it an HR or HM round, you need to be prepared for every round as they all play an equal part in deciding your selection.
  8. Even if you get rejected, don’t give up. Try learning what went wrong, make your concepts stronger, and eventually, your hard work and luck will eventually pay off.

--

--