Goldman Sachs SDE Interview Experience
Summary
I successfully cleared the Software Development Engineer (SDE) interview process at Goldman Sachs, securing an offer after a comprehensive multi-round evaluation. The interview series included an Online Assessment, Coderpad, two DSA rounds (part of a Superday), a Software Engineering round, a System Design round, and a final Hiring Manager discussion.
Full Experience
My journey through the Goldman Sachs SDE interview process was quite extensive, unfolding over several months. It began with an Online Assessment where I tackled two LeetCode medium difficulty DSA problems. This was followed by a Coderpad round, where I faced a graph problem involving virus propagation in a unidirectional, acyclic graph, and a follow-up extending it to multiple initial infection sources.
The Superday consisted of three rounds. The first DSA round presented me with a problem to find the top K tallest buildings from a given list of heights. Another graph problem was asked, which I don't recall precisely, but it was described as a direct LeetCode medium requiring BFS and topological sort concepts, primarily an implementation task. The Software Engineering round delved into my resume, OOPS principles, and different Java HashMap types along with their time complexities. I also encountered a puzzle question and general SDLC practices.
The System Design round focused on designing an LRU cache, alongside further resume-based questions. Finally, the Hiring Manager round was predominantly behavioral, with only a few basic technical inquiries.
I successfully received an offer. The entire process, from initial application to offer letter, took about 2-3 months, with each round's result taking roughly two weeks. Patience is definitely key when interviewing with Goldman Sachs.
Interview Questions (5)
There are some set of people represented as graph (Uni-directional and no cycles). Each person has an ID. Given an ID of a person, that person gets the virus. Return all the set of people who will get the virus.
Follow-up to the previous problem: Instead of one ID, now the initial infected set is a list of IDs. With minimal changes in code, you have to achieve finding all people who will get the virus. The ID here is a unique person/human identifier.
Given a list of building heights, return the top k tallest buildings.
Discuss different Java HashMap types and the time complexity of their operations.
Design a Least Recently Used (LRU) cache.
Preparation Tips
My most significant takeaway from this experience is the critical importance of resume accuracy and depth. For instance, if you mention 'caching' on your resume, even if your experience is limited to a specific type like write-through cache, be prepared to discuss various cache mechanisms, eviction policies, and related concepts comprehensively. It's crucial to know any term you include in your resume inside out, and also to understand the broader concepts surrounding it—aim for at least 80% mastery.