Goldman Sachs- Analyst Software Engineering - Interview Experience

goldman sachs logo
goldman sachs
Analyst Software Engineering2 yearsOngoing
July 6, 20250 reads

Summary

I interviewed for an Analyst Software Engineering role at Goldman Sachs with 2 years of experience. The process involved an Online Assessment, multiple DSA and System Design rounds, and a Hiring Manager discussion, resulting in positive feedback and awaiting a final offer.

Full Experience

My Goldman Sachs Interview Experience

I am a software engineer with two years of experience, and I was looking for better opportunities. After applying to Goldman Sachs with a referral, I received a call for an Online Assessment (OA) and subsequent interview rounds.

Online Assessment (OA)

The OA consisted of two questions, and I completed it within 15-20 minutes.

Round 1: DSA - 1 hr

This round focused on Data Structures and Algorithms. I was asked two questions. I felt this round went well; the interviewer seemed satisfied, and I was able to explain my solutions from the ground up, including optimizations, along with their time and space complexities.

SuperDay Rounds

After the first round, I received a call from HR to schedule my SuperDay, which I scheduled for the following week.

Round 2: DSA - 1 hr

This round also involved two DSA questions. It went pretty well, and I was able to answer all the interviewer's questions.

Round 3: Software Engineering practices - 1 hr

This round combined DSA and Low-Level Design (LLD). For the first 30 minutes, I worked on a DSA problem, explaining my approach using BFS and optimizing it with a priority queue. I also discussed the differences between BFS and DFS and their respective use cases, particularly in terms of pruning.

In the next 30 minutes, I was asked to design Splitwise. I began by discussing the application requirements, and once the interviewers were satisfied, I proceeded to define classes and their relationships. I wasn't asked to code due to time constraints, but the interviewer seemed content with my design discussion.

Round 4: Software Design and Architecture - 1 hr

This round started with an in-depth discussion of my current project, including its high-level architecture. Later, I was given a scenario and asked to determine suitable design patterns and the OOPS principles involved. Another question specifically about the Builder design pattern followed. I explained its use for creating immutable objects, resolving telescoping constructors, and performing validations. However, the interviewer asked me to consider its application in a multi-threading scenario, which I wasn't familiar with at the time, and I admitted that. Overall, this round heavily focused on project discussions and design patterns. I felt I could have performed much better in this round.

Round 5: Hiring Manager Round - 30 Mins

Around 20 minutes after completing the SuperDay rounds, HR called to inform me that I had cleared them and scheduled a call with the Hiring Manager. This round primarily consisted of 4-5 behavioral questions.

A week later, I called HR and was informed that the feedback was positive. I am currently awaiting a final response from the HR team. The entire process, from application to completing all rounds, took approximately one month. I found the interview process to be well-structured, and the interviewers were helpful, offering hints whenever I felt stuck.

Interview Questions (10)

Q1
Distribute Toys in a Circle
Data Structures & Algorithms

Given k toys and n students sitting in a circle, return the index of the first child who doesn't receive a toy. Assume students are indexed from 0 to n-1 and toys are distributed sequentially starting from student 0. If all students receive a toy and there are still toys left, distribution continues from student 0 again.

Q2
Decode Ways
Data Structures & Algorithms

A message containing letters from A-Z can be encoded into numbers using the following mapping:

'A' -> "1"
'B' -> "2"
...
'Z' -> "26"

To decode an encoded message, all digits must be mapped back into letters using the reverse of the mapping above (and sometimes multiple digits must be used to map to a single letter).

Given a string s containing only digits, return the number of ways to decode it.

The test cases are generated so that the answer fits in a 32-bit integer.

Q3
Distinct Subsequences
Data Structures & Algorithms

Given two strings s and t, return the number of distinct subsequences of s which equals t.

A string's subsequence is a new string formed from the original string by deleting some (or none) of the characters without disturbing the remaining characters' relative positions. (i.e., "ACE" is a subsequence of "ABCDE" while "AEC" is not).

The test cases are generated so that the answer fits on a 32-bit integer.

Q4
Implement In-place Sorting Algorithm (Quick Sort)
Data Structures & Algorithms

Implement an in-place sorting algorithm that uses O(1) auxiliary space. Candidates were asked to suggest suitable algorithms (e.g., Quick Sort, Heap Sort) and then specifically implement Quick Sort.

Q5
Maximal Square
Data Structures & Algorithms

Given an m x n binary matrix maximalSquare, return the largest square containing only '1's and return its area.

Q6
Sort Large File with Limited RAM
System Design

Given a file containing numbers, approximately 2 GB in size, and a system with only 250 MB of RAM available, describe an algorithm to sort these numbers. The solution must account for the memory constraint, meaning the entire file cannot be loaded into memory at once.

Q7
The Maze II
Data Structures & Algorithms

There is a ball in a maze with empty spaces and walls. The ball can go through empty spaces by rolling up, down, left or right, but it won't stop rolling until hitting a wall. When the ball stops, it could choose the next direction.

Given the maze, the start and destination of the ball, find the shortest distance for the ball to stop at the destination. If the ball cannot stop at the destination, return -1.

The maze is represented by a binary 2D array. 1 means the wall and 0 means the empty space. You may assume that the borders of the maze are all walls (see examples for details).

start and destination coordinates are represented by row and column indices.

Q8
Design Splitwise
System Design

Design a system like Splitwise, focusing on its core functionalities. This includes discussing application requirements, defining classes (e.g., User, Expense, Group, Transaction), and establishing relationships between these classes. Consider how to handle debt tracking and settlements.

Q9
Identify Design Patterns and OOPS Principles for a Scenario
System Design

Given a specific software design scenario, identify appropriate design patterns (e.g., Creational, Structural, Behavioral) that can be applied to solve the problem efficiently. Additionally, explain which Object-Oriented Programming (OOPS) principles (e.g., Encapsulation, Inheritance, Polymorphism, Abstraction, SOLID principles) are relevant and how they are utilized in the proposed solution.

Q10
Discuss Builder Design Pattern Use Cases (Multi-threading context)
System Design

Explain the primary reasons for using the Builder design pattern. Discuss its advantages, such as handling complex object construction with many optional parameters (telescoping constructors), ensuring object immutability, and performing validations before final object creation. Furthermore, elaborate on specific benefits or considerations when employing the Builder pattern in a multi-threading environment, particularly concerning thread safety and concurrency.

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!