# Goldman Sachs Interview Experience | 2019

• Difficulty Level : Hard
• Last Updated : 02 Jun, 2020

Round 1: Online Coding

The round was conducted on Hackerrank.  600-700 students sat for the exam. This round comprised of a 2-hour long online test and had 4 sections:

Section 1: 3 coding questions:

1. You are the owner of a news channel and you have a show which starts at 0 and ends at M. You have N number of advertisements and each ad has an effectiveness value associated with it which is given in an array of size ‘n’ in the format [v1, v2, …, vn]. The time when the ads can be shown is given in the format [(x1, y1), (x2, y2), …, (xn, yn)], where ith tuple in the array denotes the timing of the ith ad in the format (startTime, endTime). You have to maximize the sum of the effectiveness values of the ads if the minimum time gap between two advertisements is 4 min. So, if you select to show an ad having timings as (1,5), then you cannot show the next ad before 10. So next ad (9,14) cannot be possible, but ad (10,14) can be. Constraints: m>=xi,yi>=0

For example, m = 20,

Ads: [(6, 9), (9, 11), (11, 14), (14, 18)]

Effectiveness values are [9, 10, 6, 7],

2. Another DP problem: An array of costs was given. You can either take two jumps forward or one jump backward. If you land on a particular index, you have to add the cost to your total. Find the minimum cost needed to cross the array or reach the end of the array.

3. Advanced coding question: Graph. I don’t exactly remember the question as I didn’t attempt it.

Section 2: 10 MCQs based on Dbms, Operating System, OOP’s, Data Structures, Algorithms, and Mathematical problems (Probability and so on). This section had negative marking.

Section 3: 2 Subjective questions:

2. You have your final end semester examinations from next week, and you also have an interview with your dream company next week. What would you do?

I could do the first two DP questions full and got most of the MCQs correct.

32 students were selected for the next round.

*Focus on the MCQs and the subjective questions also. They are equally important. *

Round 2: F2F

Total Time: 30–45mins

This round was with one of the VP. He asked me to introduce myself. Then he moved on to my projects and internships. We discussed about my last internship, and I was asked to draw the whole pipeline or architecture of my internship project and the tools I used. Most of my work was in Deep Learning, NLP, Data Science so he started asking me basic questions from the aforementioned domains.

Then he asked me one coding question and two puzzles.

Coding question: I was given a graph-like structure like the following:

Question: From every node starting from the root, you can move to the next level and to the corresponding connected nodes. Find the maximum sum of values that you can obtain from the root to the last level.

Solution: Bottom-up Dp approach, starting from the last level i.e the leaves. Keep on adding the maximum value that we can take from a particular layer to the upward layer.

Formula: particular node(level i)=Max(node1 it is connected to(level i+1), node2 it is connected to(level i+1))

Puzzles: https://www.geeksforgeeks.org/puzzle-25chessboard-and-dominos/

And another mathematical puzzle which I have forgotten, but it is similar to the puzzles you will find on Geeksforgeeks.

Try to solve as many puzzles as you can https://www.geeksforgeeks.org/puzzles/. More or less, similarly, modified puzzles will be asked.

He then asked whether I was familiar with SQL and databases. I said I was. Then he asked me to write two basic queries, which I could. Some more basic questions about Normalizations(1NF, 2NF, 3NF, BCNF) and ACID properties were asked.

Finally, he asked me whether I had any questions for him or not. So I asked some questions which I wanted to ask about the company, how is a regular day at Goldman Sachs different from other companies, and so on.

This round went pretty well. He was satisfied with my interview and so was I. 14 were selected for the next round.

Round 3: F2F

Time: 1:20 hour to 1:30 hour

This round was the most important one for me. The interviewer asked me questions related to my projects, internships, and tested my coding skills. We had a detailed discussion of two or three of my projects. He was also working on Deep Learning and thus asked detailed questions about different algorithms, optimization techniques, activation functions, different neural network models, and mathematical questions from ML, or DL. He even asked me how Google Colab works, as I stated I trained my models there. He wanted me to compare and contrast different approaches or algorithms. He asked me about the final approaches that I used and why did I use them.

Coding questions:

1. Poisonous plants https://www.hackerrank.com/challenges/poisonous-plants/problem

Solution: https://github.com/abhranil08/Leetcode/blob/master/Stacks/poisonousPlants.java

2. Kth Smallest Element in a BST.

Solution: https://www.geeksforgeeks.org/kth-smallest-element-in-bst-using-o1-extra-space/

Expected the Morris-traversal solution.

3. Implement Trie, Min-heap, Max-heap. I had to code down the implementations on a paper and the time & space complexities of their different functionalities as well.

He asked some questions about Java, as I was coding in it. Questions were asked from Core java — OOPs concept, Constructors, Inheritance, Polymorphism — Input/Output questions from Runtime and compile-time polymorphism, Interfaces, and Abstraction. He also asked me about Redis, caching, and the MVCS architecture as I implemented it in one of my internships.

Finally, we started discussing my hobbies and all. He was very friendly and cooperative.

As usual, the interview ended with the question “Do you have any questions for me?”. In reply, I more or less asked the same type of questions as in my previous interview.

This interview was also good according to me and boosted my confidence. I could write an efficient solution for the first question after some hints. As I was going in the right direction he gave me small hints which I understood. For the second question, I wrote the naive solution at first but after that he wanted me to improve. So after some time, I wrote the morris traversal solution. I had to think and come to the solution, hence it took me some time to code my final solution. Corner cases were checked for all the coding questions. I implemented Trie and Heaps in my first attempt.

Round 4: F2F with the hiring manager

Time: 30–35mins

This round was with a senior VP.

He didn’t want me to introduce myself as he stated that they had already discussed about the students. So he started with some CS topics:

1. Some common algorithms: DFS and BFS difference; union-find, shortest path algorithms difference (Dijkstra’s algorithm, Floyd’s algorithm, Bellman-Ford, Johnson’s algorithm).

3. How can I solve the Resolving Dependency problem in a system? The solution would be Topological sorting. I just had to go through the algorithm.

4. Modification of the trapping rainwater problem. He wanted only the algorithm.

5. Some basic Operating system questions about Threads, two or three different scheduling algorithms, deadlocks, and semaphores. He gave me a problem on Semaphores and also asked me to implement an LRU cache (just the algorithm).

Then, some HR questions followed:

1. I can see that most of your experience lies in Data Science but SUPPOSE I am not going to give you any work in Data Science but in application development, what are your thoughts about this?

2. Where do you see yourself in 5 years? (We had a very good discussion about my future plans.)

3. I can see that you represented your state in cricket and that you captained your university, how can you bring about a change in my team at Goldman Sachs?

4. I can see that you managed time pretty well by balancing both your cricket and studies, then why is your GPA low?

5. Why shouldn’t we hire you? (Be honest about these types of questions and don’t mug up all answers.)

6. Will you be happy about the fact that you will have to stop playing cricket as you start working for Goldman Sachs? I said Yes, so the follow-up question was, How can you be happy after devoting so much of your time in a sport and then working in an Investment Bank?

7. Do you have any questions for me?

There were more HR questions but these were the most important ones.

In this round, they were focussing mainly on how I communicated. For the CS topics, I only had to discuss the algorithms and was not asked to code. The HR questions were just to check how confident I was. I genuinely never prepared for these questions. I answered what honestly came to my mind.

I exactly don’t remember the number of students called for the final round, but not all 14 of them had been called. Finally, 4 were selected.

*Different approaches were asked for every coding question and the optimized solution was expected. Think out loud during the interview.*

Verdict: Selected.

Things to remember:

• Don’t lie on your resume.
• Know all the common algorithms, their space, and time complexities.
• Think out loud during your interview, start with the worst solution, and come down to the most efficient one that you can think of. Throughout the whole process, let your interviewer know how you are approaching the solution. But DON’T ask dumb questions. Ask questions, but also think before everything you speak.
• Don’t mug up the HR questions. Be honest.
• Everyone’s opinion might differ with me on this, but it’s not mandatory for Goldman Sachs to have a stellar GPA. I myself had a low GPA among the good candidates. If you do have a low GPA try to have good projects, internships, or extracurriculars on your resume.
• Communication is very very very important. It’s not about your speaking skills but your confidence. Be confident.
• Take forward experiences from every interview. With every interview, you improve. Try not to think about your rejection or acceptance. This will make you nervous and stressed.
• Use the question “Do you have any questions for me?” as an opportunity to develop a good rapport with your interviewer.

My Personal Notes arrow_drop_up