The Goldman Sachs Group, Inc. is one of the leading global financial institutions which offers a wide range of financial services to a diverse client base which comprises financial institutions, corporations, individuals, and governments across banking, investment management, securities, and consumer banking. Founded in the year 1869 and headquartered in New York, Goldman Sachs has offices in many major financial hubs across the world. The goal of the organization is to boost global economic growth as well as financial opportunities.

Goldman Sachs also mobilizes its people as well as resources in enhancing the success of its clients, widening individual prosperity as well as accelerating economic progress for all, drawing on more than 150 years of working experience with the world’s largest organizations, institutions and entrepreneurs. According to Goldman Sachs, collaboration, teamwork, and honesty provide the ideal environment for employees to deliver the best possible results for their clients.

It always looks for professionals who thrive in this environment with passion, quick thinking, as well as communication skills taking precedence over precise qualifications. So, whether you're still in school, a recent graduate, or have a few years under your belt, Goldman Sachs wants to hear from you if you're interested in working there.

Goldman Sachs Recruitment Process

Interview Process

Candidates will be analyzed based on their programming and their analytical abilities. The company conducts generally four rounds in their recruitment process:

  • Online Test
  • Technical Interview
  • HR Interview

Interview Rounds

Online Test

The sections of the Goldman Sachs online assessment test are as follows:

  • Quantitative Aptitude Test: This test comprises questions on numerical computation, and reasoning. The candidates have to prepare for questions based on profit and loss, numbers, probability, ratio, time and speed, distance, average, permutation and combination. Candidates' mathematical ability will be assessed through Diagrammatic puzzles and Series.
  • Reasoning: This section comprises quotations on diagrammatic reasoning, abstract reasoning, and logical reasoning. They also have to prepare questions on coding, decoding, data arrangements, algorithms, data interpretations, input, output, circuits, flowcharts, etc.
  • Verbal Ability: This section is all about reading comprehension. You need to practice the topics based on omissions, errors and articles.
  • Technical Section: In this test, you need to solve the questions on:
    • Computer science
    • Advance aptitude
    • Coding
    • Competitive programming
    • Subjective

Technical Interview

Candidates who pass the online assessment test will be called for the face to face technical interview. The goal of conducting the technical interview is to assess your technical abilities which are related to the particular role you are looking for and to discover how you analyze and solve stressful situations. 

The interviewer will also assess your problem-solving abilities. You will be asked about your previous jobs and projects, as well as what you did and how you used technology, and your level of success. Prepare yourself by learning the principles of computer science.

Goldman Sachs seeks candidates who have a strong conceptual knowledge of at least one programming language such as Java, C/C++, JavaScript or Python. Your progress in earlier rounds, your job profile, your experience, and the company's demands will all influence the number of technical interviews you have. In most cases, each candidate will go through two rounds of technical interviews.

HR Interview

Once you have cleared the technical interview, you will be invited for the HR round. The goal of conducting the HR interview is to analyze the personality of the candidate, his or her background, personality, strengths and weaknesses to determine whether he or she is suitable for that specific role. Thus, you should be well prepared for the HR interview. 

Evaluate your cv to make sure you have added all essential personal information and that the data you have provided is accurate to the best of your knowledge. They can also inquire about Goldman Sachs' history, including when the company was founded, as well as its aims, beliefs, and organizational structure. Prepare to address any queries that may be asked about your résumé. In your answers, explain your interest in the profession and what motivates you the most.

The following are some of its sample questions:

  • Tell me about yourself (You should start telling about your family history and then explain your educational qualifications and professional advancement)
  • Can you relocate to other parts of India?
  • Where do you see yourself after five years?
  • Why should you hire you?
  • Tell me about your internships and the projects that you handled.
  • What made you decide to seek a new job?

Goldman Sachs Technical Interview Questions for Experienced and Freshers

1. What is multithreading in Java? How are threads formed?

Multithreading is a feature in Java which permits the execution of two or more sections of a program simultaneously for maximizing CPU efficiency. It is also a process which is followed to execute multiple threads simultaneously. 

Threads are formed by using two different mechanisms:

  • Extending the thread class: We will create a java.lang extension class. Thread is a type of thread. The Thread class's run() method is overridden by this class. A thread's life begins with the run() method. We initialize an object of our new class and call the start() function to start thread execution. The run() function of the Thread object is called by Start().
  • Bringing the runnable interface into practice: We create a new class to implement the java.lang interface. Override the run() method of the interface. Then we build a Thread object and invoke the start() method on it.

The following are the advantage of multithreading:

  • As threads use a shared memory space, it helps to save memory.
  • Threads are self-contained, allowing multiple tasks to be completed at the same time, saving time.
  • As threads are independent, an exception in one thread has no impact on other threads.

2. Explain hashCode() and equals() in Java.

The Java collection framework includes HashMap. HashMap employs the hashing technique. The process of transforming an item into an integer value is known as hashing. The integer value aids indexing and search speed. It's in charge of designing the map's user interface. It keeps the information in a Key/Value pair. The node in HashMap is represented by a class that has an array of nodes. Internally, it stores Key and Value in an array and LinkedList data structure. HashMap contains four fields.

  • hashCode() is a functionality in the object class. It returns an integer representation of the object's memory reference. The value returned by the method determines the bucket number. The bucket number represents the element's location within the map. The hash code for Null Key is 0.
  • equals() is a function that is used to compare two objects and determines whether they are equal. The Key is compared to check if they are equivalent. It is a method that belongs to the Object class. It's possible to bypass it. If you override the equals() method, you have to override the hashCode() method too.

3. Explain the final keyword in Java.

The final keyword is used to restrict the user in Java. In Java, the final keyword can be used in a variety of ways. A variable, method, or class could all benefit from the final keyword. A variable, method, or class can only be assigned once it has been designated final.

  • Final class: A class that has been declared as final cannot be extended.
  • Final variable: You won't be able to change the value of a variable if you mark it as final.
  • Final method: A class that has been declared as final cannot be extended.

4. What is the difference between StringBuffer and StringBuilder classes in the context of Java?

Strings are Java objects that use a char array as their internal storage. As arrays are immutable (they can't grow), strings are immutable. A new String is created every time a user makes a change to a String. Java, on the other hand, provides a number of classes for manipulating strings. StringBuffer and StringBuilder are two examples of these types of classes.

5. Explain Garbage Collection in Java.

Garbage collection is the process of scanning heap memory, determining which items are used and which are not, and then removing the non-used ones.

A referenced object, also known as an in-use object, indicates that it is still used by some part of your application. Unreferenced objects, also known as unused objects, are objects that are no longer used by any part of your software. The memory of an unreferenced object can therefore be reclaimed. The most important advantage of garbage collection is that it frees us from the tedious task of manual memory allocation and deallocation, enabling us to concentrate on the task at hand.

The garbage collector won't be able to destroy an object once we've declared it garbage-collectable. When JVM runs the Garbage Collector programme, only the object is destroyed. However, we cannot know when JVM will run the Garbage Collector.

6. Explain the difference between an interface and an abstract class in Java.

The abstract keyword is a non-access modifier for classes and methods. An abstract class is a class type that can't be used to make anything (to access it, it must be inherited from a different class). When it comes to abstract methods, they have no body and can only be utilized in abstract classes. The body is provided by the subclass (inherited from).

An interface is a blueprint for a class in Java. It has static constants and abstract methods. The interface is a tool for achieving abstraction in Java. Only abstract methods, not method bodies, are allowed in the Java interface. It is used in Java to achieve abstraction and numerous inheritances. Interfaces can have abstract methods and variables, to put it another way. The presence of a method body is prohibited.

7. How can you implement dynamic and static polymorphism in C++?

Polymorphism describes the existence of numerous versions of anything. In simple words, polymorphism refers to a message's ability to be displayed in numerous ways. It can be classified in two ways based on the time it takes to resolve the procedure call:

  • The invocation (call) of a function is resolved at build time, which is known as static polymorphism. This can be accomplished by overloading the system.
    • Operator Overloading: Overloading operators is also possible in C++. To concatenate two strings, we can use the string class's operator ('+'). The addition operator's job is to add two operands together. When the operator '+' is applied to integer and string operands, it adds them together, however, when applied to string operands, it concatenates them.
    • Function Overloading: When there are several functions with the same name but different parameters, this is known as overloading. Functions can get overloaded as the number of arguments or the type of arguments changes.
  • The resolution of a function call during runtime is referred to as dynamic polymorphism. It is implemented in C++ using the inheritance method Overriding.
    • Function Overriding: Function overriding occurs when a derived class defines one of the base class's members functions. It is stated that the basic function will be overridden.

8. Explain the differences between pointers and reference variables in C++.

A pointer is a variable that keeps track of another variable's memory address.

A reference is an alias for an already-existing variable. A reference to an initialized variable cannot be changed to refer to another variable. As a result, a reference and a const pointer are similar.

9. Can a constructor be private in C++?

A function Object() { [native code] } is a member function of a class that is in charge of initializing the objects of the class. The function Object() { [native code] } is automatically invoked when a class object is created in C++. Constructors are usually defined in a class's public section. As a result, the question is whether construction can be defined in the private section of the class. The answer is a resounding yes. A function Object() { [native code] } can be defined in the private section of a class.

  • If we want to avoid a class to be instantiated by anyone other than a friend class, we can use the friend class.
  • We can use the Singleton pattern to construct a singleton class if we need to. This indicates that a single item or a limited number of objects, rather than several objects of the same class, are driving the system.
  • Different constructors are distinguished by their parameter lists because they have the same name as classes; however, if there are multiple constructors, an implementation may become error-prone. According to the Named Constructor Idiom, you must declare all of the class's constructors in the private or protected sections, and then create public static functions to obtain the class's objects.

10. Explain a Red-Black Tree in context to data structures.

Different constructors are distinguished by their parameter lists because they have the same name as classes; however, if there are many constructors, the implementation may become error-prone. 

According to the Named Constructor Idiom, you must declare all of the class's constructors in the private or protected sections, and then create public static functions to obtain the class's objects. These trees have a similar memory footprint as a standard (uncoloured) binary search tree because each node only needs one bit of memory to store the color information.

If you're eager to gain the skills required to work in a challenging, rewarding, and dynamic IT role - we've got your back! Discover the endless opportunities through this innovative Post Graduate Program in Full Stack Web Development course designed by our partners at Caltech CTME. Enroll today!


It doesn't matter if the Goldman Sachs interview is challenging or easy. The more you prepare for the interviews, the better your chances of succeeding are. Learn all about interviews, including stages, rounds, and questions. Completely comprehend the role, including what they want of you, the skill sets you'll need, and the credentials you will need. 

You can also opt for courses like PGP Full Stack Web Developer - MEAN Stack. As a MEAN stack developer, this training will help you progress your career. Throughout this Full Stack MEAN Developer curriculum, you will study top skills like MongoDB, Express.js, Angular, and Node.js ("MEAN"), as well as GIT, HTML, CSS, and JavaScript, to develop and deploy interactive applications and services.

If you have any questions, feel free to post them in the comments section below. Our team will get back to you at the earliest.

Our Software Development Courses Duration And Fees

Software Development Course typically range from a few weeks to several months, with fees varying based on program and institution.

Program NameDurationFees
Caltech Coding Bootcamp

Cohort Starts: 17 Jun, 2024

6 Months$ 8,000
Automation Test Engineer

Cohort Starts: 29 May, 2024

11 Months$ 1,499
Full Stack Java Developer

Cohort Starts: 4 Jun, 2024

6 Months$ 1,449
Full Stack Developer - MERN Stack

Cohort Starts: 18 Jun, 2024

6 Months$ 1,449

Learn from Industry Experts with free Masterclasses

  • Java FullStack: Your Gateway to a Recession-Proof Future?

    Software Development

    Java FullStack: Your Gateway to a Recession-Proof Future?

    28th May, Tuesday9:00 PM IST
  • Learn to Develop a Full-Stack E-Commerce Site: Angular, Spring Boot & MySQL

    Software Development

    Learn to Develop a Full-Stack E-Commerce Site: Angular, Spring Boot & MySQL

    25th Apr, Thursday9:00 PM IST
  • Fuel Your 2024 FSD Career Success with Simplilearn's Masters program

    Software Development

    Fuel Your 2024 FSD Career Success with Simplilearn's Masters program

    21st Feb, Wednesday9:00 PM IST