Goldman Sachs is one of the top global financial companies that specialises in banking, investment, and financial advice. It was founded in 1869, and its headquarters are in New York, with multiple offices worldwide. The main goal of this company is to create financial opportunities for everyone and support them in growing economically. Like all other MNCs, it also values problem-solving skills, honesty and teamwork.
In this article, we are going to see the Goldman Sachs interview process and questions that can be asked during a technical interview.
Table of Contents
Goldman Sachs Interview Process
Goldman Sachs’ recruitment process can vary based on the job domain. Usually, they hire candidates by conducting three rounds.
1. Online Assessment Test
This is the first round of the recruitment process, where you will have several sections.
- Quantitative Aptitude: In this section, expect the questions related to topics like profit and loss, time and distance, averages, probability, and ratios.
- Reasoning: This section will test your logical thinking, like how you are able to create an algorithm, data patterns, or solve puzzles.
- Verbal: This section will contain questions related to comprehension and grammar to check your English skills.
- Technical Section: This section will cover some basic coding and technical questions about data structures, object-oriented programming, and SQL.
2. Technical Interview
Once you clear the online assessment test, you will receive an email regarding your technical interview. This round, the panelists are going to ask you technical questions that can be related to your past projects. They will also check your understanding of programming languages like Python, Java, C, or C++. They will give you some scenarios and ask how you would have handled the situation, what your approach to solving such problems is, and how you will work under pressure.
3. HR Interview
After getting passed in your technical interview, you have to go through an HR interview. This will be the last round of the recruitment process. This round mainly focuses on your personality, strengths, and weaknesses. To check whether you are fit for the company culture or not. They will have your resume, where they’ll see your qualifications and experience. Questions can be asked regarding the company also, like, What do you know about the company and the role? Be confident and try to answer the questions honestly, which helps them see the transparency.
Goldman Sachs HR Interview Questions
1. Tell me about yourself.
I recently graduated with a Bachelor of Computer Applications degree and developed skills in web development by learning tech stacks like MERN and MEAN. I did an internship at a fintech company and gained some work experience in developing dashboards and websites. I’m really interested in working on problems and utilizing my knowledge at a high-impact company such as Goldman Sachs.
2. Why do you want to work at Goldman Sachs?
Goldman Sachs is an innovative global company that is renowned for its excellence, honesty, and teamwork. I appreciate the company not just for its financial impact on the world but also for its deep focus on helping its employees develop professionally. I’m looking forward to applying the skills I have and learning from the leaders in the industry.
3. Describe a time when you faced a challenge at work and how you handled it.
At my previous work, I was given a project that was too challenging for me. I broke the project down into lots of small steps and organized my team so that I could get the support that I needed. After doing so, I was able to complete the project within the given timeline and produce great quality work.
4. How do you handle working under pressure?
In times of high stress, I am always organized and focused. I use time management techniques and breaks to relieve stress. With everything I plan to do ahead of time, I am always on target and never behind in meeting deadlines.
5. Where do you see yourself in five years?
In the next five years, Goldman Sachs is where I can grow while taking on more responsibilities and participating in important projects. I want to sharpen my skill set as well as my ability to lead, making me a valuable team member who serves the long-term vision of the company.
Get 100% Hike!
Master Most in Demand Skills Now!
Goldman Sachs Interview Questions for Fresher
1. What is Object-Oriented Programming (OOP)?
OOP is a programming paradigm that follows the concept of objects, which are the instances of a class. This approach organizes code in such a manner that writing code and managing it would be much easier. It follows four principles: encapsulation (used for hiding the data), abstraction (simplifying complex tasks), inheritance (sharing data members between classes), and polymorphism (using methods in different ways).
2. Explain the difference between == and .equals() in Java.
== is a comparative operator in Java that checks whether the two objects are referencing the same memory location or not. If it’s the same, it will return true; else, it will be false.
.equals() is a method that compares whether the value of two objects is the same or not.
For example, with strings:
String a = "hello"; String b = new String("hello");
a == b is false, but a.equals(b) is true.
3. What are SQL Joins? Name the types.
SQL joins are the ways to merge rows from two or more than two tables based on related columns. There are five main types of joins:
- INNER JOIN: It returns only matching rows.
- LEFT JOIN: It returns all the rows from the left table and matched rows from the right table.
- Right JOIN: It is the opposite of LEFT JOIN
- FULL JOIN: It will return all the records when there’s a match in either of the tables.
- CROSS JOIN: It returns the Cartesian product of both tables.
4. What is normalization in databases?
Normalization is a technique that allows us to organize the data in a database in such a way that it reduces redundancy and improves data integrity. It divides the data into smaller, related tables and connects them using keys. Practicing this makes data easier to maintain and helps us to get rid of duplicate information. We have different normalization forms like:
- 1NF: The First Normal Form makes sure that all columns will have single values and no repeating columns.
- 2NF: The second Normal Form specifies that the database should follow 1NF and remove the partial dependencies where non-key columns depend completely on the primary key, not just part of it.
- 3NF: The Third Normal Form specifies that the database should be in 2NF, and columns should depend only on the primary key, not on any other column.
- BCNF: The Boyce-Codd Normal Form is just a strict version of 3NF that fixes the cases where non-primary keys can decide other columns.
- 4NF: The Fourth Normal Form specifies that no columns should have multiple separate sets of values.
- 5NF: The Fifth Normal Form splits the table if required to remove unnecessary joins.
5. Explain the difference between stack and queue.
A Stack follows the LIFO: the most recently added item is the first to be removed. Consider how plates are stacked: the one on the top is the first one to be taken.
A Queue follows the FIFO principle: the first added item is the first to be taken out, similar to people standing in the queue for services.
Both serve the same purpose of data storage, but they do it differently.
6. What is a deadlock in operating systems?
A deadlock occurs when two or more processes are waiting on each other in such a way that progression is not possible. Imagine two people trying to cross a bridge from opposite sides. Both of them are ready to move, but neither one wants to go back. In computers, this can hang programs. Thus, deadlocks may be avoided by holding the allocation of resources and interprocess communication.
7. What is the difference between HTTP and HTTPS?
HTTP, or HyperText Transfer Protocol, does not offer protection because it can be easily blocked while transferring data between a browser and a website.
HTTPS, or HTTP Secure, protects data by using SSL (Secure Socket Layer)/TLS (Transport Layer Security) encryption, making it impossible for intruders to access the information. The padlock icon in the address bar can help you identify whether the domain is using HTTP or HTTPS. This is very important when dealing with sensitive issues like banking and shopping online.
8. What are data structures? Name a few.
Data structures are the ways we organize the data and store it in the computer so that it can be used efficiently. They allow us to access, modify, and manage the data easily. There are different types of data structures. Some of them are mentioned below:
- Array: It stores homogenous elements in a fixed size. Follow the order of indexing.
- Linked List: It stores multiple elements that are connected through pointers.
- Stack: It follows Last In, First Out approach to fetch data (LIFO)
- Queue: It follows First In, First Out approach to fetch data (FIFO)
- Tree and Graph: It is used for hierarchies or data that are connected together like a network.
9. What is a constructor in programming?
A constructor is a special method in object-oriented programming that executes automatically when we create an object. It is mainly used to initialize the attributes that we have in class. For example, in a class Car, a constructor can allow users to set the car’s colour or model when they create a new object. In many programming languages, like C++ and Java, the constructor has the same name as the class, but in Python, we use the method named __init__().
10. Explain recursion with an example.
Recursion is a process of solving a problem where a function calls itself until it reaches its goal. Each call is made for a simpler version of the problem until a base case exits the loop. The following example illustrates how a recursive function would solve a factorial such as
(5! = 5×4×3×2×1):
5! = 5 × 4!
4! = 4 × 3!
and so on until factorial(1) = 1, which then leads to one. The results can then be multiplied back together.
Goldman Sachs Interview Questions for Experienced
11. Explain multi-threading and its benefits.
Multi-threading allows a program to run multiple tasks simultaneously, which helps us to use the CPU more efficiently. These small tasks are also known as threads. Each thread runs independently, but they share the resources to improve speed and efficiency. There are a lot of benefits to using multithreading, as it enhances the system’s responsiveness. Applications like gaming and web servers usually use multi-threading concepts. Handling the execution of multiple threads should be done carefully, as it can lead to deadlocks and race conditions.
12. How do you optimize SQL queries?
The approaches that we can use to optimize the SQL queries are:
- To speed up the searches, we can use the concept of indexing rather than using SELECT * for only necessary columns.
- Instead of using nested queries, we can perform joins.
- We prefer to normalize the data, which helps us reduce the data redundancy. But sometimes denormalizing the data improves the performance.
- We can use proper indexing and apply limits to the number of rows with LIMIT or WHERE clauses and EXPLAIN to analyze the queries.
13. What are design patterns? Name a few commonly used ones.
Design patterns offer developers a way to address repeated issues in software design more efficiently. They improve the structure of the code while making sure that it can be maintained and scaled. Some of the popular design patterns include:
- Singleton: It guarantees that a class will have only one instance.
- Factory: It allows us to create the object without defining the exact class.
- Observer: It alerts multiple objects that some changes have been made.
- Strategy: Enables the modification of an object’s behaviour at execution time (dynamically).
These design patterns improve code organization, promote reusability, and make things easier to understand.
14. What is dependency injection?
Dependency injection (DI) is a design pattern where one object gives dependencies to another object without creating them itself. Its goal is to enhance the maintainability and testability of the code. For example, a class that requires a database connection does not create the connection by itself. Instead, it is provided externally. In this way, dependencies between classes are reduced, which allows us to modify the system efficiently. DI is very popular in frameworks like Spring (Java) and Angular (JavaScript) for efficient dependency management.
15. How do you handle memory leaks in Java?
In Java, when memory is allocated for objects but not released when they are no longer needed, it is known as a memory leak. This can be resolved by utilizing weak references, closing database connections and file streams, and avoiding static references to allow garbage collection. Memory leaks can be found using VisualVM or Eclipse MAT. Implementing specific coding standards, such as using try-with-resources when closing resources and nullifying unused objects, helps mitigate memory leaks.
16. Explain the difference between REST and SOAP APIs.
REST (Representational State Transfer) is a flexible and lightweight API style that works along with HTTP methods such as GET and POST. REST supports JSON and XML files, making it faster and easier to use than other APIs.
On the other hand, SOAP (Simple Object Access Protocol) is a strict XML based API that comes with its own security and transaction capabilities. REST is suitable for web services that require speed or scalability, whereas SOAP works best for highly secure applications like banking. REST is simple, very accessible, and the most popular out of the two, whereas SOAP is more structured.
17. What is the difference between a process and a thread?
While a thread is a smaller packet within a process that shares itself with other threads, you can take the process as an independent program with its own memory. Processes are not resource-friendly, and they take time to start. Memory is shared to reduce the time it takes to execute a task; therefore, threads are lightweight. Multiple threads can be executed at the same time within a process. This increases the overall efficiency per process. Although threads improve system performance, they need to be managed carefully to avoid conflicts.
18. What is a microservices architecture?
Microservices architecture is a method of developing applications as a group of connected yet independent services. Each service is responsible for a particular section of the application, such as signing up a user or handling payments, and interacts through APIs. This allows for greater scalability, easier modifications, and an increase in application uptime. Unlike traditional rigid applications, microservices architecture gives the different teams the freedom to develop, test, and deploy features on their own. The only disadvantage you can say is that microservice architectures are hard to manage and require thoughtful coordination of communication across services, ensuring security and maintaining data integrity with care.
19. What is the CAP theorem in distributed systems?
The CAP theorem states that a distributed system will only guarantee two of the following three properties at once:
- Consistency (C): All nodes see the same data simultaneously.
- Availability (A): Outputs are provided at all times, irrespective of the state of data nodes.
- Partition Tolerance (P): The system is functioning successfully even in the event of a network failure.
Since network issues are something that we can’t avoid, systems must choose between Consistency + Partition Tolerance (CP) or Availability + Partition Tolerance (AP) based on their needs.
20. Explain the concept of garbage collection in Java.
The Java Virtual Machine (JVM) ensures that memory is not overloaded with unused objects by deleting them automatically, which also means there will never be memory leaks. Java also has many types of garbage collectors, like Parallel GC, G1 GC, and Serial GC, that each serve different performance purposes. Developers can also assist by nulling unused variables and tracking memory consumption through an array of tools such as VisualVM. GC handles memory recovery processes automatically, unlike traditional techniques that require user input.
Goldman Sachs Coderpad Interview Questions
It is basically a technical coding interview round that is conducted on the CoderPad platform. If you are appearing for roles like software engineer or software developer, it will be a part of the online technical screening or live coding interview. Below are some common questions that you can expect during the process.
1. Reverse a Linked List.
class Node {
int data;
Node next;
Node(int data) {
this.data = data;
this.next = null;
}
}
class LinkedList {
Node head;
void reverse() {
Node prev = null, current = head, next;
while (current != null) {
next = current.next;
current.next = prev;
prev = current;
current = next;
}
head = prev;
}
void printList() {
Node temp = head;
while (temp != null) {
System.out.print(temp.data + " -> ");
temp = temp.next;
}
System.out.println("null");
}
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.head = new Node(1);
list.head.next = new Node(2);
list.head.next.next = new Node(3);
list.head.next.next.next = new Node(4);
System.out.println("Original List:");
list.printList();
list.reverse();
System.out.println("Reversed List:");
list.printList();
}
}
In the above code, we are going through the list while changing the links between the nodes in reverse order. Prev contains the last node that was reversed. Current moves and modifies the links. In the end, the Head includes a reference to the previous node (which is now the first node).
2. Check if a string is a palindrome.
class PalindromeCheck {
static boolean isPalindrome(String str) {
int left = 0, right = str.length() - 1;
while (left < right) {
if (str.charAt(left) != str.charAt(right))
return false;
left++;
right--;
}
return true;
}
public static void main(String[] args) {
String str = "madam";
System.out.println(isPalindrome(str) ? "Palindrome" : "Not a Palindrome");
}
}
The above code helps us to check whether the word reads the same forward or backward. We are using pointers to read each word. If the characters match, then it is a palindrome. For example, ‘hannah’.
3. Find the missing number in an array of 1 to N.
class MissingNumber {
static int findMissing(int[] arr, int n) {
int total = n * (n + 1) / 2;
int sum = 0;
for (int num : arr)
sum += num;
return total - sum;
}
public static void main(String[] args) {
int[] arr = {1, 2, 4, 5, 6};
int n = 6;
System.out.println("Missing Number: " + findMissing(arr, n));
}
}
The above code allows us to find a missing number in a sequence by subtracting the sum of all provided numbers from the total sum. For example, {1, 2, 3, 4, 5, 6} will give you the output 3, which is my missing number.
4. Find the first non-repeating character in a string.
import java.util.LinkedHashMap;
import java.util.Map;
class FirstUniqueCharacter {
static char firstNonRepeating(String str) {
Map<Character, Integer> countMap = new LinkedHashMap<>();
for (char c : str.toCharArray())
countMap.put(c, countMap.getOrDefault(c, 0) + 1);
for (char c : str.toCharArray())
if (countMap.get(c) == 1)
return c;
return '_';
}
public static void main(String[] args) {
String str = "swiss";
System.out.println("First Non-Repeating Character: " + firstNonRepeating(str));
}
}
The above code allows us to find the first unique letter in a word by using the concept of LinkedHashMap, which helps us to count letters. For example, in the word ‘swiss’, the First non-repeating character will be ‘w’, which appears only once.
5. Implement the Fibonacci sequence using recursion.
class FibonacciRecursion {
static int fibonacci(int n) {
if (n <= 1)
return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
public static void main(String[] args) {
int n = 6;
System.out.println("Fibonacci(" + n + ") = " + fibonacci(n));
}
}
The above code allows us to calculate the Fibonacci number using the concept of recursion. It will call itself (n-1) + (n+2) until they reach 0 or 1. For example, fibonacci(6) will give 8 as an output.
The best way to prepare for this round is to practice questions on leetcode (medium-hard) or other platforms like HackerRank. Pick any programming language (Python, Java, or C++) and start implementing more and more possible questions.
Goldman Sachs Interview Experience
The process and experience of interviewing at Goldman Sachs is, without a doubt, competitive, lengthy, and challenging. Most candidates said it is very technical, and its primary focus is only on coding, algorithms, system design, and some behavioral questions.
It could very much be noted that a lot of candidates feel exceptionally tough, and strict standards are set in the interview that often take months of preparation. It is common for there to be large gaps between interview rounds, which makes the process slow for most candidates. Some candidates have unexpectedly faced changes of teams or hiring freezes. While these interviews are hard, the company greatly appreciates having a solid foundation in engineering, along with exceptional problem-solving skills and clear communication.
The successful candidates mentioned that they were doing consistent practice on coding platforms, kept brushing up their Computer Science Fundamentals, and had patience for getting an offer.
Conclusion
To sum it all up, if you are preparing for a Goldman Sachs Interview, you should be aware of the interview process, HR questions, and coding challenges that you might face during the technical round. You need to focus on problem-solving, technical skills, and communication skills as well to get selected. This article will help you to do the right preparation and build confidence to ace your interview and secure your dream job.