Goldman Sachs had come to our campus to hire students for both Placements and Internships. This article describes the experience for internships but at the end, I’ve added the link to the coding question that was asked for placements too.
Round 1, The Coding + Aptitude Round
This round was open to students for all branches.
This round consisted of one Coding question and Logical + Aptitude + Core CS fundamental questions. The coding question was a spinoff of the Longest Increasing Subsequence problem. It wasn’t a direct question and we had to reduce the problem to the LIS problem. One required knowledge of STL and experience of working with LIS problems to solve it. The other questions in the section were related to computer science fundamentals and were of multiple choice in nature. Some of the topics that the questions were asked from were –
- Time Complexity (Algorithm was described and we were asked to find the complexity)
- Binary Search (To find the number of recursions)
- Kruskals Algorithm (Problem reduced to finding the number of times we do the ‘union’ in Kruskals Algorithm)
- Object Oriented Programming (Basic OOP questions)
- Probablity (Basic Probablity)
- BFS and DFS (very non-trivial, we were asked to find the complexity of a spin-off version of the DFS/BFS algorithms)
I would like to mention that only solving the coding questions completely does not mean that you will be shortlisted. I think that they definitely have a section wise cutoff for the Aptitude questions that one needs to fulfill. Some of my friends had solved the coding question completely but were not shortlisted but others who had not solved the coding question but a good number of aptitude questions were shortlisted. However if they considered CGPA or other factors for shortlisting, I do not know.
Out of 190 students who had answered the round 30 were selected.
Round 2, The Technical Interview Rounds
My first Interview with Goldman Sachs had gone terribly. The interviewer had asked me a question for which I had no idea. It was a DP question which went something like finding the number of ways in which I can build a wall with some predefined specifications (brick sizes given, edges of the bricks should not overlap etc). I had no idea so I just tried to brute it for height = 1 and width = 1 to w, then for height = 2 and width = 1 to w and so on. I was expecting a pattern to come up but could not find any. I had even made a mistake in one of the cases and the interviewer had pointed it out to me. At that moment I was thinking that there would be no chance for me to further in this company. However, I tried my best to keep on bruting the solutions to find a pattern (which I could not). In the end, the interviewer told me that he had ‘seen what he needed to see’ and that I can leave.
Each student was supposed to answer two rounds before they announced who would proceed to the further rounds. So I was lucky to get to answer another round.
This round went exceptionally well for me. The interviewer was very friendly and she made sure that I was comfortable before proceeding with the questions. She started by asking me what all sorting algorithms that I know of, to which I answered Merge, Insertion, Quick, Heap, Bubble, Selection and even Tim. She then asked me a few questions related to them (which would be better to use when, complexity, some pseudo code, tradeoffs etc). She also asked a few questions related to the Tim Sort which I was able to answer correctly and it seemed that she was impressed. She then asked me which of the sorts are stable. I reasoned about them one by one and got all of them correct. Next, she asked me a few coding questions from trees which were basic in nature. She also asked me if I had solved this question previously, to which I replied that I hadn’t. She then explained the question and asked me to code it. I was able to code it properly and also write the test cases. She seemed happy with me as I had answered all the questions correctly until now and then she asked me some HR questions. Why Goldman Sachs, motivation in your life etc.
I was selected for the next round.
Round 3, The Final Techinical Round
In this round, I was asked to design an Air Traffic Control System something like what’s given in this link. I started out with abstracting the problem but the interviewer said that he was not interested in these abstractions but was more interested in how I handle all specifications that he had provided. He had actually provided a lot of them. Some of them were – Plane comes in every 2 mins, Plane that is in the hanger is ready to leave after every 6 mins of its arrival and can stay max up to 10 mins, some specified time for the plane to reach the hanged from and to the runway. Some specified time for the takeoff and landing. Also, some specified time for which the runway cannot be used after there has been a takeoff and landing. This made the question a real-world Data Structures and Algorithms questions. I threw in a lot of queues, priority queues, heaps and circular queues to solve it. We even reached to the point where we would consider the case where the airplanes were circling above the airport waiting for them to land. In between were a few jokes as to what airplanes would do if they did not follow our model.
All in all, I think that this round went well too. I do not have much experience with such questions but was able to handle and point all the specifications that he had mentioned.
Round 4, The Hiring Manager Round
Not all students had this round (even out of those who were finally selected), as the interviewers had a flight to catch in the evening. I was the first to finish my three rounds so I had this round. The Hiring Manager asked me HR questions and Technical Questions. He would also dig deep into the HR questions that he had asked me. Some of them were what would you do if your team member starts to underperform. He asked a lot of questions which would end up at whether I would own up or not when I made a mistake and at what point I would mention it to the manager. He also asked me some Technological questions such as the difference between Java 7, 8, 9 but only because I had told him that I like to read Java release docs. He then told me about his experience in Goldman Sachs and shook my hands. He was very professional.
The interview experience was fine for me. The interviewers were mostly friendly and the company made the decisions on all the previous interviews and not just one which can go bad for anyone.
Finally 7 students were selected for Internships.
Here is the question that was aked in the coding round of the Placements.