Goldman Sachs Associate Interview Experience
Summary
I interviewed for an Associate role at Goldman Sachs, which included an Online Assessment, a Coderpad round, a Superday (comprising DSA, Software Engineering Practices, and Software Design & Architecture rounds), and a final Hiring Managerial round. I successfully cleared all technical rounds and was informed of my advancement before the HM round.
Full Experience
Work Experience : 4.5 years College : Tier 1
HR called me and she told me to apply on their portal, so First round was OA round, in which two questions were asked, one of them was easy and another one was medium level ( i dont exactly remember the questions)
All Test cases for both the questions passed and i was called for coderpad round.
Coderpad Round
Two questions were asked , one person joined, in this round you need to write the code and pass all the test cases, and if time remained you can work on optimization
Que 1 -> Trapping rain water problem and asked to optimize it, space optimization basically, i already provided O(n) time complexity solution, they wanted me to give O(1) space complexity which i eventually provided
Que 2 -> Find length of circular loop in an array where you will be given a starting index and you need to jump to the index which it points to, while traversing if you find loop, you need to return the length of loop example : arr-> [1,2,3,0,2,1] and startingIndex -> 0, answer will be -> 4
Superday
There were total 3 round on superday, 1 hour each
DSA Round
So this was the first round on that day, two people joined, total two questions were asked, and we need to write the code and pass the test cases
Que 1 -> You are given a hashmap where key is a child and value is parent, with this map we can create a forest of trees, we need to find the root of the tree which has highest number of nodes so basically interviewer wanted me to provide Disjoint Set based solution, we need to implement UFD, i identified the pattern quickly and interviewer seemed impressed
Que 2 -> Longest Substring Without Repeating Characters
Software Engineering Practices Round
- Low level design of Parking Lot system
- Deep dive into one of the projects i mentioned in my resume, what database, api endpoint structure, api performance optimization
- Caching related question, since i used caching in my projects, so asked how did you use caching and how it optimized API performance
- what is Shallow copy and deep copy of objects in java and also some question on multi threading
Most of the time was given to Parking lot LLD
Software Design and Architecture
So this round was basically HLD round, two person joined, gave intro, one of them started this round with threading concepts in java, we had around 10 minute discussion on threads After that i was asked about Rate Limiting , its usage , algorithms which are used, why not use it at client side, and what are the ways to use it at the client side
After that i was asked to write code for one of the algo, sliding window algorithm
After that i was asked on whatsapp message delivery mechanism, how whatsapp ensures that once a person goes offline , messages are sequentially delivered to the person once it comes online again, what tech stack can be used for this, we had around 10-15 min discussion on this
Since i mentioned about redis stream, so one of them asked why not kafka, and also which one is good for low latency , kafka vs redis discussion in the end
This round was more of discussion, and went quite well for me
So i was informed after half an hour that i cleared all the rounds , and there will be a last round which is Hiring Managerial round
HM round
We introduced each other, he told me about the team and what kind of projects they work on, also i was asked couple of behavioral questions , situation based questions basically, i also asked couple of question and round ended in half an hour
Interview Questions (10)
Trapping Rain Water with O(1) Space
Implement the Trapping Rain Water problem and optimize it for O(1) space complexity.
Find Length of Circular Loop in Array
Given an array arr and a startingIndex, where arr[i] indicates the next index to jump to. If a circular loop is found during traversal from startingIndex, return the length of the loop. Example: arr -> [1,2,3,0,2,1] and startingIndex -> 0, answer will be -> 4.
Find Root of Tree with Most Nodes in a Forest (Disjoint Set)
Given a hashmap where keys represent children and values represent their parents, forming a forest of trees. Find the root of the tree which has the highest number of nodes. The interviewer expected a Disjoint Set (Union-Find Data Structure - UFD) based solution.
Longest Substring Without Repeating Characters
Low Level Design (LLD) of Parking Lot System
Design a Low-Level Design (LLD) for a Parking Lot system.
Caching Strategies and Performance Optimization
Discuss caching related questions, specifically how caching was used in projects and how it optimized API performance.
Shallow vs. Deep Copy and Multithreading in Java
Explain the concepts of shallow copy and deep copy of objects in Java. Also, discuss questions related to multithreading.
Rate Limiting Concepts and Algorithms
Discuss Rate Limiting: its usage, various algorithms used (e.g., sliding window algorithm), reasons why it should not be implemented at the client side, and alternative ways to use it at the client side. I was also asked to write code for one of the algorithms, specifically a sliding window algorithm.
WhatsApp Message Delivery Mechanism Design
Design the WhatsApp message delivery mechanism, focusing on how sequential delivery is ensured when a user comes online after being offline. Discuss potential tech stacks and considerations like Kafka vs Redis Streams for low latency.
Behavioral and Situational Questions
Answered behavioral and situation-based questions during the Hiring Managerial round.