GS Associate Interview Experience | YOE - 2.3 years

goldman sachs logo
goldman sachs
Associate2.3 yearsOngoing
October 21, 202522 reads

Summary

I recently interviewed for an Associate role at Goldman Sachs, which involved several technical rounds covering data structures, algorithms, system design, and software engineering practices, based on my 2.3 years of experience.

Full Experience

My interview journey for the Associate role at Goldman Sachs consisted of several distinct rounds, meticulously testing my skills in various domains. I'm excited to share the details from my 2.3 years of experience.

Coderpad Round 1

This was my first coding assessment, where I was presented with two DSA questions:

  1. The first problem was an easier version of a Trie-based question, specifically focusing on implementing insert(word) and countWordsStartingWith(prefix) operations. The interviewer referenced this problem for context.
  2. For the second question, I had to find the size of the largest connected component within a forest.

Coderpad Round 2

Following the initial coding round, I faced another set of two DSA challenges:

  1. I was tasked with implementing a custom class that would support two primary operations: insert(num) to add a number to the data structure and isTopK(num) to determine if a given number is among the top K most frequent numbers present.
  2. The second question involved finding the first non-repeated character in a string. We then delved into an important discussion about how to adapt this algorithm for very large strings that might not fit entirely into a single machine's RAM.

Software Engineering Practices 1

This round shifted focus towards practical software engineering knowledge:

  1. I was given a Java code snippet and my task was to identify any issues or bugs present within it.
  2. The interviewer then probed my understanding of how HashMaps work internally and questioned me on different types of exceptions in Java.
  3. A significant portion of this round was dedicated to a detailed discussion about my previous projects and contributions.

Software Engineering Practices 2

Building on the previous round, this one also focused on engineering practices, with a specific design challenge:

  1. I was asked to design a rate limiter. We engaged in a meaningful discussion about various approaches, and I specifically talked about the Leaky Bucket algorithm. Subsequently, I was asked to write a code snippet for its implementation. The discussion also included considerations on how to select appropriate leak rates and bucket sizes for the leaky bucket algorithm.

System Design Round

The final round was entirely dedicated to System Design:

  1. The discussion began with the Low-Level Design (LLD) of an oversimplified stock market system. This was a purely verbal discussion, with no coding involved.
  2. We then extended this LLD into a High-Level Design (HLD) for the same stock market, which led to discussions about transactions and locking mechanisms within databases.
  3. The round concluded with a thorough grilling of my resume, focusing on my experience and technical background.

Interview Questions (11)

Q1
Trie with Insert and CountPrefix
Data Structures & Algorithms

Implement a Trie-like data structure that supports two operations: insert(word) to add a word to the trie, and countWordsStartingWith(prefix) to return the number of words in the trie that start with the given prefix. This is described as an easier version of a problem found at algo.monster/liteproblems/1804.

Q2
Largest Connected Component in Forest
Data Structures & Algorithms

Find the size of the largest connected component in a given forest (a collection of disjoint trees or graphs).

Q3
Top K Frequent Numbers Data Structure
Data Structures & Algorithms

Implement a class with two operations: insert(num) to add a number to the data structure, and isTopK(num) to check if a given number is among the top K most frequent numbers currently in the data structure.

Q4
First Non-Repeated Character with Scaling
Data Structures & Algorithms

Find the first non-repeated character in a string. Discuss how to extend the algorithm for very large strings that cannot fit into the RAM of a single machine.

Q5
Java Code Snippet Debugging
Other

Given a code snippet written in Java, identify and explain the issues present within it.

Q6
HashMap Internals and Java Exceptions
Other

Explain the internal working mechanisms of a HashMap. Also, describe different types of exceptions in Java and when they occur.

Q7
Project Discussion
Behavioral

A detailed discussion regarding my past projects and technical contributions highlighted in my resume.

Q8
Rate Limiter Design with Leaky Bucket
System Design

Design a rate limiter. Discussed the Leaky Bucket algorithm in detail, including how to select appropriate leak rate and bucket size. I was then asked to write a code snippet implementing the Leaky Bucket algorithm.

Q9
LLD of Simplified Stock Market
System Design

Verbal discussion focusing on the Low-Level Design (LLD) of an oversimplified stock market system, without any coding required.

Q10
HLD of Stock Market with Transactions
System Design

Extend the Low-Level Design of the simplified stock market to a High-Level Design (HLD). This involved discussions about transactions and locking mechanisms within the database.

Q11
Resume Grilling
Behavioral

An in-depth review and questioning based on my resume and professional experience.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!