Goldman Sachs | Assoiciate |

goldman sachs logo
goldman sachs
associatebengaluru2.33 yearsRejected
December 16, 202433 reads

Summary

I interviewed for an Associate role at Goldman Sachs in Bengaluru, undergoing a rigorous 2-month process that included coding, technical, and design rounds. Despite clearing most rounds, I was ultimately rejected after the final system design round due to my inability to recall exact production-level code implementations for Kafka and MongoDB.

Full Experience

Round 1: Hackerrank Test (Cleared)

This round consisted of two easy-level problems that I completed within 30 minutes. Unfortunately, I don't recall the exact questions, but they were straightforward.

Round 2: Coderpair Round (Cleared)

In this round, I was asked two coding questions:

  1. A grid problem: Given an N*M grid containing coins, the task was to find the optimal path to collect the most coins, with movement restricted to North and East.
  2. Max average score: I had to process a list of students with their scores in various subjects, where scores were strings and could be negative. The goal was to find the student with the maximum average score.

They expected working code that passed various test cases, which I managed to provide.

Super Day (Elimination Rounds on Same Day)

Round 3: Data Structures (Cleared)

This round focused on Data Structures, and I was specifically asked to code in Java, which was slightly challenging as I usually code in C++. I was given two problems:

  1. Maximum Sum Circular Subarray: I successfully solved this LeetCode problem.
  2. Student with max average score: This was the same question from Round 2, which I again solved.

I also faced questions about ConcurrentHashMap, likely because I used a HashMap in my solution.

Round 4: Software Engineering Practices (Cleared)

This round deep-dived into my past experience and related technical aspects. The discussion flowed based on what I mentioned, covering:

  • Schedulers: Questions on their working mechanisms.
  • Database Choice: My rationale for choosing NoSQL over MySQL.
  • Elasticsearch: Various questions regarding its functionality.
  • Spring Boot: Core concepts and best practices.
  • JVM Architecture: My understanding of JVM internals.

I was also tasked with coding a Singleton Class that is thread-safe, requiring proper use of locking mechanisms and the volatile keyword. I successfully implemented this and answered follow-up questions on multithreading.

Additionally, they inquired about retry mechanisms, specifically expecting knowledge of exponential backoff strategies. I also discussed how to ensure data consistency between MongoDB and Elasticsearch, suggesting checksums and elaborating on their implementation and verification. Several Kafka-related questions were also posed, testing my understanding of message processing and stream handling.

Round 5: Software Design and Architecture (Rejected)

This was the final round, lasting about 45 minutes. I discussed the high-level and low-level design of my recent work. They then asked me to write specific code for MongoDB calls like findBy(), expecting exact production-level code. I struggled to recall the precise implementation and could only provide pseudo-code, which seemed to displease them.

Next, questions on inter-process communication came up, where my OS concepts knowledge was lacking. When I mentioned Kafka for asynchronous communication, they asked for its implementation code in a real project. Again, I could only provide pseudo-code, which was not well-received.

Further questions included: "How many threads can run at one time in an instance?" (which led to a deep dive into what a core is), garbage collection algorithms (requiring a deep dive into all core concepts), and how to obtain a heap dump.

Ultimately, I was rejected in this round. I believe my inability to recall and write exact production-level Kafka and MongoDB code played a significant role in my rejection, despite feeling I had performed well otherwise. This was my first interview experience blog, and I hope it can be helpful to others.

Interview Questions (12)

Q1
Optimal Path to Collect Most Coins in Grid
Data Structures & AlgorithmsMedium

Given a grid of size N*M containing coins, find the optimal path to collect the most coins. The only allowed movements are North and East.

Q2
Student with Max Average Score
Data Structures & AlgorithmsMedium

Given a list of students with their scores in different subjects, find the student with the maximum average score. The scores are provided as strings and can include negative values.

Q3
Maximum Sum Circular Subarray
Data Structures & AlgorithmsMedium

Given a circular integer array nums, return the maximum possible sum of a non-empty subarray of nums.

Q4
NoSQL vs. MySQL Choice
System Design

Discussion on the choice of NoSQL over MySQL for a specific project.

Q5
Thread-Safe Singleton Class Implementation
Data Structures & AlgorithmsMedium

Implement a Singleton class that functions correctly in a multithreaded environment, ensuring proper use of locking mechanisms and the volatile keyword for thread safety.

Q6
Retry Mechanisms with Exponential Backoff
System Design

Explain retry mechanisms, specifically knowledge of exponential backoff strategies.

Q7
Data Consistency between MongoDB and Elasticsearch
System Design

How to ensure data consistency between MongoDB and Elasticsearch if data is stored in both systems. Discussion on using checksums and their implementation/verification.

Q8
MongoDB Data Fetching Implementation
OtherMedium

Write detailed production-level code for MongoDB data fetching, including specific calls like findBy().

Q9
Kafka Implementation Code in a Real Project
OtherMedium

Implement Kafka code as it would be used in a real project for asynchronous communication.

Q10
Number of Threads and Core Concepts
System Design

Discussion on how many threads can run concurrently on an instance, based on the number of cores, and a deep dive into what a core is.

Q11
Deep Dive into Garbage Collection Algorithms
System Design

A detailed discussion and deep dive into various garbage collection algorithms and their core concepts.

Q12
Heap Dump Generation
Other

How to obtain a heap dump for debugging purposes.

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!