Goldman Sachs Analyst - USA - Super Day experience (Reject)
Summary
I interviewed for an Analyst position at Goldman Sachs, participating in a Super Day consisting of DSA, System Design, and SDLC/Behavioral rounds. Despite feeling confident and answering all questions, I received a rejection email three days later.
Full Experience
I recently had a Super Day interview for an Analyst position at Goldman Sachs in the USA. The day was structured into three main rounds: Data Structures & Algorithms (DSA), System Design, and a combined SDLC/Behavioral/Managerial round, each lasting 45 minutes.
In the DSA Round, I was given four questions. First, I started implementing an LRU cache, specifically the put function, but the interviewer stopped me to move on after I completed a portion. The second question challenged me to combine two integer arrays into one without duplicates, with the constraint that hash-sets were not allowed. For the third, I tackled a dynamic programming problem: finding the maximum path sum in a matrix from top-left to bottom-right, only allowed to move right or down. This was framed as a fun scenario of maximizing national parks visited from Washington to Florida. I explained a DFS with memoization approach for this. Lastly, I discussed the optimal data structure for storing latitude and longitude, where I provided an in-depth answer about Quadtrees. I felt I answered all questions thoroughly and we even had five minutes for Q&A.
The System Design Round began with a fundamental question about REST APIs. The main challenge was to design a parking lot system with 100 spots and a single entry point, where vehicles are assigned a spot before entering. The discussion went deep into functional and non-functional requirements, identifying core entities, and designing APIs with their request/response structures. We also talked about database selection, SQL query optimization through indexing (including B+ trees), how to handle multiple entry points, and the use of in-memory versus database locks. I explained my logic for assigning spots using a hash-set for available IDs and a hash-map for assignments, all protected by locks for concurrency control.
The final SDLC / Behavioral / Managerial Round covered a range of topics. It started with resume-based questions. I then explained software testing and its various types, followed by questions about my past experience with testing and the SDLC methodologies I've followed. A significant portion involved describing my most challenging project and why it was difficult, leading to many follow-up questions. I was also asked if I'd ever faced an 'Out of Memory' exception, which led to a discussion on pagination. Finally, we touched upon debugging microservices in production and the concepts behind database indexing.
Despite feeling incredibly confident after the interviews and believing I answered every question, I received a rejection email three days later. I genuinely felt I couldn't have done anything more; I knew the answers to all questions and was happy with my performance. It felt like a significant setback, especially given my circumstances.
Interview Questions (13)
LRU Cache
Implement a Least Recently Used (LRU) cache. My task was to implement the put function.
Combine Two Arrays Without Duplicates
Combine two integer arrays into one without repeating elements. Ordered hash-sets and hash-sets were explicitly not allowed. The arrays may contain duplicate elements, but the final answer should have unique elements, and their order does not matter.
Example: nums1 = [1,2,3,4,5,1,2], nums2 = [5,6,7,8], expected ans = [1,2,3,4,5,6,7,8].
Max Path Sum in Matrix (Top-Left to Bottom-Right)
Find the maximum path sum in a matrix, starting from the top-left corner and moving only right or down to reach the bottom-right corner. This was framed as a problem of traveling from Washington to Florida, wanting to visit as many National Parks as possible, with movement restricted to east and south directions. It is similar to Minimum Path Sum but for finding the maximum sum.
Data Structure for Latitude and Longitude
What data structure would you use for storing latitude and longitude coordinates?
What are REST APIs?
Explain what REST APIs are.
Design a Parking Lot
Design a parking lot system with a single point of entry and 100 spots. Before entering, each vehicle should be assigned a spot number. The discussion covered functional and non-functional requirements, core entities, core APIs (including request/response details), database choices, SQL query optimization (specifically indexing and B+ trees), strategies for handling multiple entry points, in-memory versus database locks, locking mechanisms, and the logic for assigning a spot.
Testing and Types of Testing
Explain software testing and different types of testing.
Previous Experience with Testing
Describe the types of software testing you have performed in your previous professional experiences.
SDLC Methodologies in Previous Experience
Which Software Development Life Cycle (SDLC) methodologies have you followed in your previous professional experiences?
Most Challenging Project
Describe the most challenging project you've worked on and explain why it was challenging. This question involved many follow-up questions.
Out of Memory Exception Handling
Have you encountered an 'Out of Memory' exception? After clarifying questions, the discussion led to pagination as the expected solution.
Debugging Microservice in Production
How would you approach debugging a microservice that is experiencing issues in a production environment?
Database Indexing Concepts
Explain database indexing: why we use it and how it helps improve performance.