The first round was an online programming test on Hackerrank of 100 marks.
There were 2 questions: (one question of 40 marks and the other of 60 marks)
1.Given n sentences and q queries, for each query print the number of sentences that contains all the words of the query.
2. 0-1 Knapsack Problems (https://www.geeksforgeeks.org/knapsack-problem/)
Out of around 100+ candidates, 31 were shortlisted.
The interviewer glanced through my resume and asked me a few questions about my summer internship project at IIT Bombay.
Then, he asked me- how web application works, how is data fetched from backend/database, to draw the architecture diagram (client, server model with database), how does server answer multiple queries and ensures that the data goes to only the relevant client that requested it and some questions on POST/GET method, their difference.
Because I mentioned Java in my resume, he asked me my level of comfort with the language and how much of Java is known to me. I answered him that I knew Java for developing web applications only.
He then asked how is server connected to database (I answered wrt Java i.e. using JDBC). He then asked me if I had ever seen/written the code (internal working) of JDBC.I again answered with respect to Java in web development - Because my goal was to develop web apps in lesser time, JDBC was used as an API and was not implemented.
He, then started off with a different question-
Given a text-file containing account numbers, transaction nature(debit/credit) and amount,( which is already validated), how will I use this file to update database for changes in the amount of each account?
I suggested to avoid going and coming back to database again and again, that is first of all compute everything then make changes/updates in database. Also, if there are multiple processors available then multitasking would cut down on the total time by ensuring synchronization. I was asked methods of computing before going to database. Since sorting was one of the method involved, all sorting algorithms, their pros and cons were discussed one by one. Questions on multithreading and synchronization also were asked after this.
The interviewer was very helpful and gave hints appropriately.
In the middle, he asked me my areas of interest also.
In the end he asked – in an internship what scene/behaviour can make you feel disappointed during/after the internship ?
A team of 2 interviewers was present.
Again I was asked about my summer internship project first, then about OOPs-
Properties of OOP
How will you explain Polymorphism to a layman and two examples of the same.
Examples of Encapsulation.
They asked me how did I use Java. I again answered with respect to web development i.e. I had used java in servlets and JSPs. Then they questioned me about the life cycle of servlets. They helped me in naming each stage which I didn’t remember. Then they asked me which is the most useful jsp object. I answered it as session as the most important task of a backend code is to deal with and manage sessions.
After that they started asking me about MySQL database. I answered them that I am only familiar with basic things that were required by the kind of web applications I developed. They asked me about the kind of web application I was referring to and how was MySQL database used.
Then they asked me the programming language I was most comfortable with.
I answered C language.Then they asked me to write a code for file-handling in C and a few question(s) about the language.
Again the interviewers were kind.
In the end they asked a few questions about our VNIT campus.
Why JP Morgan ?
Why did not you join any start-up if you want to make an impact on a large amount of clients ? (Que based on my previous answer)
What if some other company selects you?
Question on areas of interest.
Location preference if selected, and why?
Do you have any questions for me? (Was asked not only here but at the end of each round)