Goldman Sachs interview experience Real time questions & tips from candidates to crack your interview

Engineering Analyst

Goldman Sachs
upvote
share-icon
2 rounds | 8 Coding problems

Interview preparation journey

expand-icon
Journey
My placement journey with Goldman Sachs was both challenging and enriching. I started with the basics of data structures and algorithms and gradually built a strong foundation through consistent practice and coursework. The opportunity encouraged me to explore advanced topics such as backtracking and object-oriented design, which greatly deepened my understanding. Although I couldn’t clear the technical test, the process taught me the importance of preparation under pressure and provided a clear direction for improvement. It was a humbling yet motivating experience that reinforced my commitment to growth and excellence in software engineering.
Application story
The application process for the Engineering Analyst role at Goldman Sachs began with open registrations for engineering students across India. After registering, eligible candidates were invited to take the Aptitude Test, conducted on March 29, 2025. The test was comprehensive, covering a wide range of topics, including Numerical Computations (12 questions), Numerical Reasoning (12), Abstract Reasoning (12), Diagrammatic Reasoning (12), Puzzles/Logical Reasoning (12), and two Comprehension passages (5 questions each). Following this, a Pre-placement Talk was held on April 4, 2025, from 5 PM to 6 PM, providing students with deeper insights into the role and the company’s expectations. After the talk, Goldman Sachs provided a structured DSA coursework covering data structures and algorithms from basic to advanced topics, including complex areas such as backtracking and advanced recursion. The next step was the Technical Test, originally scheduled for April 12, 2025, but later postponed to April 26, 2025, and conducted from 8 PM to 9 PM. The test lasted 60 minutes and included 14 questions in total: 3 coding questions, 5 DSA MCQs, 2 OOPs MCQs, 3 Quantitative MCQs, and 1 personal behavioral question. Despite my preparation, I was able to solve only 1 out of the 3 coding questions, which unfortunately led to my elimination in this round. The final round of interviews was scheduled only for candidates who successfully cleared the technical test.
Why selected/rejected for the role?
I was not selected for the Engineering Analyst role because I could solve only one out of the three coding questions in the technical test. Although I had prepared well for theoretical concepts such as DSA, OOPs, and aptitude, my coding performance under time pressure fell short of the expected standard. This experience made me realize the importance of practicing timed mock tests and consistently solving medium- to hard-level problems to improve both accuracy and speed.
Preparation
Duration: 3 months
Topics: Data Structures, Algorithms, Dynamic Programming, Backtracking, Object-Oriented Programming, Advanced Quantitative Aptitude, Logical Reasoning
Tip
Tip

Tip 1: Focus on building strong fundamentals in Data Structures and Algorithms before moving on to advanced topics.

Tip 2: Practice coding regularly on platforms to improve problem-solving speed and accuracy under time constraints.

Application process
Where: Company Website
Eligibility: Final year students; Graduating in 2025; Date of Joining: July 2025
Resume Tip
Resume tip

Tip 1: Tailor your resume to highlight relevant technical skills, projects, and coursework that align with the role you’re applying for.

Tip 2: Keep the format clean and concise, and quantify achievements wherever possible (e.g., “Improved algorithm efficiency by 40%”).

Interview rounds

01
Round
Hard
Online Coding Interview
Duration120 minutes
Interview date29 Mar 2025
Coding problem5

1. Train Booking

Ten individuals, A to J, booked train tickets for their journey from Chennai to Mumbai on either March 4, March 14, or March 21. They booked the train tickets from Chennai at different times: 4 AM, 6 AM, 7 AM, 8 AM, 10 AM, 12 PM, 3 PM, 6 PM, 10 PM, and 11 PM.

Note: No two people booked the train tickets at the same time. An equal number of people booked tickets on an even-numbered date.

  1. C is not the last person to book the train ticket.
  2. No one booked the ticket before J.
  3. H booked 8 hours after J, and no one booked a ticket between them.
  4. C and E booked tickets on the same day, and no other bookings were made on that day.
  5. I booked the ticket on the same day as D, and F booked the ticket immediately before A.
  6. There is a one-hour time gap between B, who booked the ticket on a day that is not a multiple of 7, and G, who booked the ticket at an odd time.
  7. The number of people who booked tickets before B is the same as the number who booked after I. I was the last person to book the train on the day he booked the ticket.
  8. A booked the ticket immediately before D, who booked the ticket 6 hours before I.
  9. The timing difference between the tickets booked by E and J is 1 hour (not necessarily on the same day).

Question:
How many people booked the train tickets on March 21?

Options:
a) 4
b) 3
c) 6
d) 2

2. Puzzle

If RAZOR is coded as 1860 and CLEAR is coded as 336, then BECAUSE will be coded as:

a. 56
b. 254
c. 227
d. 28

3. Puzzle

In a certain code, ACT is coded as 3 and SAM is coded as 3, then BEAN will be coded as:

a. 2
b. 3
c. 5
d. 1

4. Operator Puzzle

The following question describes the effect of various alphabets representing certain mathematical operators. Select the number that can replace the question mark (?) from the given alternatives.

  1. 54 G 8 Z 72 Q 22 = 28
  2. 210 Z 14 Q 7 G 10 = 85
  3. 34 Q 6 Z ? G 132 = 100

Options:
a) 7
b) 10
c) 12
d) 20

5. Probability Question

Two bags, A and B, consist of black and white balls only. The probability of drawing a black ball from bag A and the probability of drawing a white ball from bag B are both 0.25.

All the balls from both bags are emptied into bag C (which was initially empty). The probability of drawing a black ball from bag C is 715\frac{7}{15}157​.

Which of the following cannot be the total number of balls in bag C?

a) 120
b) 240
c) 300
d) 360

02
Round
Hard
Online Coding Test
Duration60 minutes
Interview date26 Apr 2025
Coding problem3

The technical coding round was scheduled for April 26, 2025, from 8:00 PM to 9:00 PM, which was a late evening slot. The environment was proctored and conducted online, requiring a stable internet connection and webcam access. The duration was 60 minutes with 14 questions:

3 Coding questions, 5 DSA mcqs, 2 OOPS mcqs, 3 Quant mcqs, 1 personal question.

Although there was no live interview during this stage, the test was strictly monitored, and time management played a critical role. The difficulty level was moderate to high, and solving problems efficiently within the given time frame was essential for clearing this round.

1. Common Digit Transactions

Moderate
0/80
Asked in company
Goldman Sachs

You are given a list of 'N' non-negative transaction IDs. Your task is to perform two operations: a verification check and an audit sum.

  • Verification: Check if for every pair of adjacent transaction IDs in the list, they share at least one common digit.
  • Audit: Calculate the sum of all transaction IDs in the list.

  • The verification is successful only if the common digit condition is true for all adjacent pairs.


    Problem approach

    Step 1: Read the Input
    First, take the number of transaction IDs, N.
    Then, read the list of N transaction IDs as integers.

    Step 2: Initialize Variables
    Create a variable total_sum to store the sum of all transaction IDs.
    Set a flag is_valid = True, assuming all adjacent pairs will satisfy the condition.

    Step 3: Iterate Through Adjacent Pairs
    Loop through the list from index 0 to N-2.
    For each pair (i, i+1):

    Convert both transaction IDs to sets of digits using set(str(transaction_id)).

    Check if there is any intersection between the two sets.

    If no common digit is found, set is_valid = False and break the loop.

    Step 4: Compute the Sum
    Use Python’s built-in sum() function to get the sum of all transaction IDs and store it in total_sum.

    Step 5: Print the Output
    If is_valid is still True, print "true", otherwise print "false".
    Then, print total_sum.

    Try solving now

    2. Post-War Reconstruction

    Moderate
    0/80
    Asked in company
    Goldman Sachs

    There are 'N' kingdoms, numbered from 0 to N-1, connected by 'E' bidirectional roads. A war has broken out, and 'P' of these kingdoms have become hostile invaders.

    To protect themselves, the remaining defending kingdoms destroy all roads connected to any of the 'P' invading kingdoms. This action may isolate groups of defending kingdoms from each other.

    Your task is to determine the resulting groups of connected, defending kingdoms after the war. A group is a set of kingdoms where every kingdom in the group can reach every other kingdom in the same group through a path of roads that only passes through other defending kingdoms.


    Problem approach

    Step 1: Understand the Problem
    This is a graph connectivity problem where:

    Nodes = Kingdoms (0 to N-1)

    Edges = Roads between kingdoms

    Some nodes (invaders) must be removed along with all their connections.

    After removal, we must find connected components (groups) in the remaining graph.

    Step 2: Read Inputs
    Parse the inputs:

    N: Number of kingdoms (nodes)

    E: Number of roads (edges)

    Next E lines: Pairs of integers representing bidirectional roads

    P: Number of invaders

    Last line: List of P invader kingdoms

    Step 3: Build the Graph

    Use an adjacency list to represent the graph.

    While adding edges, skip any edge that involves an invader.
    Example: If kingdom 2 is an invader, do not add any edge that includes 2.

    Step 4: Perform Graph Traversal

    Use DFS or BFS to find all connected components (i.e., groups of allied kingdoms).

    Only start DFS from kingdoms that are not invaders and have not already been visited.

    Step 5: Store and Sort Output

    For each group found, sort it in ascending order.

    After collecting all groups, sort the list of groups by the first element in each group.

    Step 6: Print the Output

    Print each group on a single line, with elements space-separated.

    Do not include any extra print statements.

    Try solving now

    3. Penguin Dance Pairing

    Easy
    0/40
    Asked in company
    Goldman Sachs

    There are 'N' male and 'N' female penguins at a dance party. Each penguin has a specific height and a preference for a partner who is either strictly taller or strictly shorter.

    The input represents this preference:

    1) A positive height h means the penguin wants a partner with a height greater than h.
    2) A negative height -h means the penguin wants a partner with a height less than h. The penguin's actual height is h.

    Your task is to find the maximum number of male-female pairs that can be formed, where every penguin's height preference is satisfied. Each penguin can be in at most one pair.


    Problem approach

    Step 1: Parse the Input

    Read N, the number of males and females.

    Read the N integers representing male penguins' preferences.

    Read the N integers representing female penguins' preferences.

    Step 2: Split Penguins by Preference

    Split both males and females into two groups each:

    Wants Taller: Positive values → wants_taller_m, wants_taller_f

    Wants Shorter: Negative values → wants_shorter_m, wants_shorter_f

    While storing, use absolute values, as the sign indicates only preference.

    Step 3: Match Opposite Preferences

    Match:

    Male who wants taller (wants_taller_m) ↔ Female who wants shorter (wants_shorter_f) → female is taller than male

    Male who wants shorter (wants_shorter_m) ↔ Female who wants taller (wants_taller_f) → female is shorter than male

    Reason: Both sides must agree on the preference, and their heights must satisfy the mutual condition.

    Step 4: Sort the Lists

    Sort each group to allow efficient pairing using the two-pointer technique.

    Step 5: Match Using Two Pointers

    For each matching group (e.g., wants_taller_m with wants_shorter_f):

    Move pointers forward only when the height condition is satisfied.

    Count one match and move both pointers when a valid pair is found.

    Step 6: Sum the Matches

    Add matches from both pairing groups and print the total.

    Try solving now

    Here's your problem of the day

    Solving this problem will increase your chance to get selected in this company

    Skill covered: Programming

    Which SQL clause is used to specify the conditions in a query?

    Choose another skill to practice
    Similar interview experiences
    company logo
    Software Engineer Intern
    2 rounds | 3 problems
    Interviewed by Goldman Sachs
    1189 views
    0 comments
    0 upvotes
    company logo
    SDE - 1
    1 rounds | 3 problems
    Interviewed by Goldman Sachs
    1349 views
    0 comments
    0 upvotes
    company logo
    Software Engineer
    2 rounds | 4 problems
    Interviewed by Goldman Sachs
    889 views
    0 comments
    0 upvotes
    company logo
    Python Developer
    3 rounds | 9 problems
    Interviewed by Goldman Sachs
    684 views
    0 comments
    0 upvotes