Goldman Sachs Interview Process - Junior Fullstack Engineer
I got an offer for a Fullstack Engineer role at Goldman Sachs. There were six rounds: a HackerRank test, a CoderPad interview, a three-round Superday and a final design round.
Round 1: HackerRank
Three coding problems, mostly medium DSA and implementation. I don't remember the exact ones. Not too tough, but you need to be quick and accurate.
Round 2: CoderPad
Live coding plus discussion. The main problem: you get two arrays, one of process IDs and one of their parent IDs. Given a target process, kill it and all of its children. I treated the processes as a tree and used BFS/DFS.
After that we talked about my recent Spring Boot projects, Java concurrency basics and handling scalability in distributed systems.
Superday (Rounds 3 to 5)
Three back-to-back virtual interviews.
Round 3: DSA
A problem similar to Valid Palindrome II: can a string become a palindrome by removing at most one character?
A greedy problem at about LeetCode hard level, with constraints to work around.
Thinking out loud and explaining trade-offs while coding mattered a lot here.
Round 4: Git, a mini HLD and DSA
Git branching in real projects: feature branches, release flow and hotfixes.
A mini HLD: the interviewer picked one component of a larger system and asked how I'd design it.
Restore IP Addresses (backtracking).
This was the most fun round, a good mix of practical engineering and algorithms.
Round 5: Concurrency and graphs
Number of Islands, with DFS or Union Find.
Handling lots of incoming requests with a ThreadPool.
Concurrency in more depth: locks, race conditions, BlockingQueue, thread safety, scaling requests and avoiding bottlenecks.
Round 6: LLD, HLD and databases
LLD and HLD of an e-commerce platform: cart, orders and payments, plus scaling and reliability.
How database indexing works internally.
How NoSQL stores data and optimizes queries.
SQL vs NoSQL trade-offs in real scenarios.
Outcome
I got the offer a few weeks later 🎉
Tips
DSA: standard LeetCode, especially graphs, strings and backtracking.
Java: thread pools, synchronization and how concurrency works in backend systems, on top of core Java.
System design: prepare both HLD and LLD. E-commerce, notification systems and caching come up a lot.
Git and engineering practice: branching, CI/CD basics and deployments.
Was this experience helpful?
Be the first to mark it helpful
No comments yet
Be the first to ask the author a question or share your own take.