Goldman Sachs | April 25 | Associate Software Engineer Role
Summary
I recently interviewed for the Associate Software Engineer role at Goldman Sachs. The interview process spanned multiple technical rounds covering data structures, system design, core Java concepts, and advanced topics like multithreading and database internals.
Full Experience
I recently interviewed for the Associate Software Engineer role at Goldman Sachs. The interview process consisted of four distinct rounds.
In Round 1, I was asked questions similar to the 'Number of Islands' problem, along with some functional testing questions.
Round 2 focused on core Java concepts, particularly multithreading, the Spring framework, and other advanced Java topics.
Round 3 involved a Low-Level Design (LLD) problem to design an 'Employee Access Card' system, followed by several questions based on my resume.
Round 4 was a deep dive into various technical topics, ranging from Java internals to database concepts and distributed systems. This round covered a wide array of topics as detailed in the questions below.
Interview Questions (26)
Number of Islands
Discussed questions similar to the LeetCode problem 'Number of Islands'.
Employee Access Card Low-Level Design
Design a Low-Level Design (LLD) for an Employee Access Card system.
G1 and G3 Garbage Collectors
Discussed concepts related to G1 and G3 Garbage Collectors.
Attributes of G1 Garbage Collector
What are the key attributes or characteristics of the G1 Garbage Collector?
Code Caching and JIT Compiler
Explain code caching and the Just-In-Time (JIT) compiler.
Disadvantages of Microservices Architecture
What are the disadvantages or challenges of using a Microservices architecture?
Internal Working of Database Indexing
Explain how database indexing works internally.
Use Cases for NoSQL vs. SQL Databases
In which scenarios would you choose to use a NoSQL database over a SQL database, and vice versa?
Impact of Multiple Joins on Query Performance
How do multiple joins in a SQL query impact performance?
How Indexing Works During Query Execution
Explain how an index is utilized when a database query is executed.
Indexing for Constant Query Time
How does indexing help in achieving constant query time?
Document Storage in MongoDB vs. RDBMS Tables
Why are documents typically kept in MongoDB instead of multiple tables, unlike in a Relational Database Management System (RDBMS)?
Reasons for Database Normalization
Why do we normalize databases?
Disadvantages of Database Normalization
What are the disadvantages of database normalization?
Database Level Scaling Strategies
How can you scale a database at the database level?
Database Scaling Techniques: Clustering, Replication, Sharding
Discuss database scaling techniques such as clustering, master-slave replication, master-master replication, and sharding.
Handling Foreign Key Relationships with Sharding
How are relationships between two tables having foreign keys handled in the context of database sharding?
Impact of Indexing on Write Queries
How does indexing impact the performance of write queries?
Introduction to Kafka
What is Apache Kafka?
Kafka vs. Asynchronous Threads
Why would one choose Kafka over asynchronous threads for certain use cases?
Java CompletableFuture
Explain Java's CompletableFuture.
What is a Semaphore
Explain what a Semaphore is in concurrent programming.
JWT Authentication and Session Management
Explain JWT Authentication. How is JWT persisted? How do you handle logout scenarios if someone copies and reuses a token for API calls?
JWT Token Validation Process
Who is responsible for validating a JWT token, and what is the validation process?
Client Token Authentication for 1 Day
Discuss how to implement client token authentication that lasts for one day.
Thread.wait(), Thread.notify(), Thread.notifyAll()
Explain the usage and differences between Thread.wait(), Thread.notify(), and Thread.notifyAll() methods in Java.