Internships
A blog article on how I prepared for the internship season
Hey everyone! Find the updated version on the AnC website.
Let me first introduce myself and try to give you an idea about my profile for the Internship seasons. My blog would be slightly different from others since I did not prepare for internships explicitly, but was dedicated to one field for a very long time.
- CPI: Slightly above 9.0
- Department: Mechanical Engineering
- Position of Responsibility: Software Subsystem Lead, AUV-IITK
- Academic preference for SPO internships
- 2 robotics-related projects (apart from AUV) in my resume.
- Experience in SLAM, Vision algorithms, Object-oriented Programming, State Machines, and their mathematical backgrounds
- Backend Software Development Intern at New York Office, IITK (Summers 2018)
- No projects related to Mechanical Engineering
- Minimal exposure to competitive coding (did not try more than two-three contests)
- MSO201 done in Summers (flunked it badly), ESO207 done in 5th semester
Pre-intern season preparations:
First-year:
I had an interest in programming even before joining the college. Like every excited first-year student on campus, I attended all the technical lectures of various clubs. In my first semester, I tried my hands on competitive coding but left it soon enough. By the end, I only knew the names of different concepts and techniques but not the algorithms themselves. I also took part in RoboMonth, organized by RoboClub, and grew interested in robotics. I have been involved in at least one robotics project each semester from the beginning. After the SnT Team recruitments, I got into Team Humanoid. At the team, I worked on creating a GUI for their robot, integrating Robot Operating System and JavaScript. Some exposure in programming in the first semester helped me get selected in the Advanced Track project of ESC101. I created a messaging application and learned the fundamentals of web development. This helped me get an intern at the NYO (well, everyone who knew some basic programming got it). Along with that, I worked on vision algorithms in Team AUV for the entire Summers.
Second-year:
I continued working at AUV and participated in two competitions (one in January 2019 and the other in August 2019). I sacrificed my academics and other projects due to the pressure from these events. Still, I managed to take up one project at the Intelligent Systems Lab and helped in setting up SLAM algorithms on a grounded vehicle. I made a failed attempt at the ACM-ICPC, too (having done no practice, we had already prepared to fail). I grew interested in machine learning and subsequently worked on some computer vision algorithms in my fourth semester as well as the summers. I never thought much about internships in the second-year summers since my entire focus was on the upcoming competition in August. I took up MSO201 in the Summer semester and got a terrible grade there. I was preparing and working at the swimming pool for 6-7 hours just the day before the exam, and watching the World Cup final at night in CCD (I deserved the grade really).
All this while, I had made up my mind that I would go for a research internship in Robotics, and would only sit in the Internship season as a backup. Evidently, I never prepared for it specifically. In fact, I was out of campus till the night of 6th August due to the competition and only started studying on 7th August (Day 1 was on 10th August). I missed the internship tests of some great companies like Gartner and American Express. I applied for all companies which were open for me and had prepared a mediocre resume without any proper review from Seniors. Please avoid this, make your resume well in-time, and get it reviewed from seniors for errors). I could not attend any mock group-discussion session due to time constraints.
Ideal Timeline:
Ideally, you would like to have one good project/intern for the Summers. Apart from it, depending on your programming skills try to spend a part of your Summers learning about programming questions. In the last two week before Interns, practice group discussion with your friends. In the final week before Interns, make sure you are solving a lot of puzzles from different sources, since there is a high chance you’ll get the same puzzles in the coding tests. Before the summers begin, you should have spent ample time trying out projects from various fields, and try to make up your mind. In my opinion, preparing for the Internship tests and interviews specifically is not required, and you should try to build your resume by doing some quality projects.
Day 0:
I applied for multiple companies, was shortlisted for many, but only had one interview on Day 1. Deutsche Bank and Nutanix (it asked some hard-coding questions) did not shortlist me for the interviews. I was pretty confident after the Goldman Sachs coding test. Still, I did not receive a call for the interview (they did not call a lot of people with academic preferences). I was shortlisted for the GD stage for HUL and ITC. Even though they are famous for hefty stipends, I did not want a backup working at an FMCG factory, it just did not suit me. With no GD preparation, I was confused when I was in a conference room with ten people shouting the same content differently. Needless to say (and to my content), I did not make it to their interviews. CapitalOne took a simple test based on mental aptitude, and everyone who solved more questions than a particular threshold was selected. My interview took place at 7:15 AM in the morning, and the interviewers arrived after us at the tutorial block. One wingie had an interview in a different panel at the same time. The interview lasted for five minutes, and they judged our capability based on two profit and loss questions. I was without an intern as Day 1 closed.
Nomura came on the second day for Analyst roles. I was selected for the group discussion, and this time I was actually able to put my points forward in this moderated discussion. It did not matter, as they did not select anyone from my panel (some logistical mistake happened). I missed the deadline for filing the form for Mitsubishi. (please don’t do this)
JP Morgan & Chase’s process:
I read some essential topics in Data Structures and Algorithms for the coding tests for all firms. Practiced some standard questions given on Geeks For Geeks, and The Interview Bit - mostly related to linked lists, dynamic programming, and BFS/DFS. I only knew the underlying algorithms but was confident of solving them correctly.
After the tests were over, I went through a lot of quantitative aptitude questions, from books like:
- Fifty Challenging Problems in Probability, Frederick Mosteller
- A Practical Guide to Quantitative Finance Interviews, Xinfeng Zhou I also practiced the questions which I could not solve during the coding tests or were being asked in the interviews of other companies.
Related to Interview:
- Probability: Standard puzzles were asked, which were modified versions of questions given in these books. Even though the questions asked were from probability, they were not related to MSO201 a lot. They could be solved by what we had learned till JEE. There were some questions from Statistics based on p-value & hypothesis testing.
- Linear Algebra: The linear algebra part was from MTH102, they asked about vector spaces, eigenvalues, Gauss Elimination, Null Space, Rank of a matrix, QR decomposition, Newton Raphson, (some part was from numerical solutions)
- Competitive Coding: A question on Binary Search Tree (they told me what is a BST, and I had to implement it according to the problem), and one on Stacks. They asked to write a pseudocode for the challenge, along with some questions about time complexity, and recursion.
- Object-Oriented Languages: I was asked about C++ and Python. Basic definitions of polymorphism, abstraction, constructor, destructor, override functions vs. overloading functions were asked in C++. For python, they asked about lists, dictionaries, and some basic syntax.
The questions were simple, but a lot of different topics were covered. Hence, speed and accuracy were the main factors. They could not focus much on my resume, well because it got mixed up with another Ayush Gupta.
They had a final HR interview over call, which was very straight forward. I was selected for the Quantitative Researcher profile at the Mumbai head office, along with two others from the campus.
Research Internships:
After relaxing for a few days and getting back on track with academics, I started mailing professors in Germany. I was aiming for the DAAD-WISE scholarships (even though my CPI was low, I was hoping that a sub-par research experience would help me out). A very famous professor in the field of robotics, based out of the University of Freiburg, agreed for hosting me in Summers 2020. I wrote a very detailed proposal for my idea and submitted it. I also applied for MITACS, but there were not a lot of notable projects related to robotics. I was not apping in this time since I had overloaded the semester to 64 credits, and could barely get time to manage AUV and academics.
I got selected for the second stage of the Honda YES Program, which was aimed at promoting biotechnology. I could not get through the interview due to my focus on Robotics, which was evident from my profile. When I finally faced rejection in both MITACS and DAAD, by January, I started apping to various professors. After the extremely tiring process, I managed to get some interviews but was asked to join for extended projects as a Semester Exchange student. Due to the compulsory BTP in the fourth-year, I had to turn down these offers. Fears about COVID-19 turning into a pandemic had already grown by then, and I settled for a summer at the JPMC office.
Recommendations:
- Make sure you spend your Summers before the Internships wisely and have at least some projects on your resume that shows that you can deliver results, and not leave it in between. This would help you cross the criteria for resume shortlist. A decent CPI is a plus point definitely.
- My advice would be to practice some competitive coding. The questions asked are not really tough, but you need to have the practice to solve them in a timed-test. Apart from this, know your resume inside out. Don’t really write anything if you are not confident about it, as it can go against you at the interview.
- Before the internship season starts, practice some basic puzzles. This would help you in the interviews and tests, as most interesting questions are standard and repeated from somewhere.
- Practice group discussions with your friends and learn how to crack it. Franky, it does not depend on your points, but your ability to communicate your point towards others as loudly as possible.
- Be patient with the process. It revolves mostly around your hard work but is also dependent on some luck.
- The primary factor was having a good resume, and having the confidence and knowledge to back it up. My resume was heavily focussed on my Robotics projects, which showed my ability to deliver complex tasks through efficient planning in a time-bound manner.
- Talk to seniors and learn about their experiences. Most of them are free in this period and would love to help out someone willing to listen. Get an idea about which companies come, and what they look for. Play to your strengths, and make a timeline to conquer your weaknesses.
- If you’re not confident about your chances at the internships, don’t be choosy about which companies you apply to. Apply to every company which is open for you, and make sure you have resumes tailored to each category.
For people aiming at Quant profiles:
Make sure you are good at programming and mathematics. The tests, as well as the interviews, had a lot of questions, and they expected you to be accurate and fast. Go through the problems in the books I’ve recommended above. Make sure you have a strong grip on any mathematical topic you write on your resume. These positions have decent stipends and are open to all branches. There are a lot of resources on the internet related to quantitative interviews.