Goldman Sachs | Software Engineer (Analyst) | Warsaw, Poland | June-July 2020 | Rejected/Ghosted
Backgorund: 1 year experience in another bank as backend developer
Position: Software Engineer (main language: Java)
Level: Analyst (lowest level for engineers)
Location: Warsaw, Poland
Date: June-July 2020
For every round in every stage, in the beginning there was short introduction of ourselves, as well as, at the end, there were few minutes for my questions to interviewers.
Stage 1 - phone - 1 hour
1 interviewer, we used coderpad.
2 easy questions from top 10 goldman sachs questions here on leetcode. Had about 25 minutes for each question. Both had to be compile ready and had to pass the tests. After my tests passed, recruiter asked what other edge cases I can come up with, also asked about time-space complexity.
Result: About 10 days later I got a call from recruiter that they are processing me to stage 2.
Stage 2 - video - 3,5 hours
3 techincal rounds 1 hour each - 2 interviewers for each round
and 4th round with hiring manager - about 30 minutes
Round 1 - algo & data structures - 1 hour
Used coderpad only in this round.
8 questions/topics were discussed:
1.1. Warmup question - leetcode medium: Given 2 arrays of strings, check if all strings concated from each array are equal. No code required, just pseudocode and discussion. They asked about edge cases and space-time complexity.
1.2. Difference between ArrayList and LinkedList and when one is better than the other (read/write frequency).
1.3. Design strucutre that has 2 methods: push() and getMedian()
1.4. What would happen when we tried to put 100M objects on a HasMap of size 10? Discussion on how is HashMap implemented in Java (buckets), how hashing works.
1.5. What sorting algorithms do I know? Which one is used in java api implementation (Collections.sort())?
1.6. Algorithm question: check if 2 strings are anagrams
1.7. Algorithm quesiton: how to check if there is "dominant" number in an unsorted array
1.8. Design MaxStack
Round 2 - SDLC (Software development life cycle) - 1 hour
Questions about whole SDLC process in previous company - from gathering requriements from client, through all of that development stuff (implementation, code reviews, merging, testing, release), and back to the client
How long was release cycle and why? How would I improve it/make it shorter?
How did customer support looked like?
How did I deal with ambiguity?
How do we keep ours microservices up and running (high avabilability)?
Few questions about good programming practices: SOLID principles, clean code, design patterns, difference between git commands: merge and rebase
Round 3 - System design - 1 hour
This round was split into 2 parts.
Part 1 - Previous work's systems architecture
How many requests per second in peek times, daily were our services receiving and how were they managed?
How did the services communicate with each other, what if some of them went down?
Part 2 - design URL shortener
They just threw the question and wanted to see me how I approach it, but when I got stuck they helped me by asking the right questions.
Initial requirement: shortented links stay in DB permanently (they don't expire)
How would URL looked like?
Which database should I use relational or NoSQL and why?
How do we make sure that the shortened url is unique?
What if 2 users got the same URL at the same time?
What about different regions? Should user from europe send requests to US servers?
How to manage a lot of requests per second (10k+)?
Round 4 - Hiring manager - 30 minutes
Manager told what projects they are working on, and asked me what I would want to do. No typical behavioral "amazon's LP-like" questions this time.
Result: Feedback was generally positive (recruiter had a list of things that were not enitrely right that I could improve on), but the team said they rather want someone at senior level, so another interview is required for a different team.
Stage 3 - video - 1 hour
2 interviewers, one of them was manager of the team I was applying for.
Part 1:
Questions about previous experience, what did I do, architecture of applications we had. Very similar to the part 1 from previous system design interview.
Part 2:
OOP task - Implement class that has 2 methods (they specified what methods should do), many questions why use this over that (for example access modifiers, way of passing arguemnts to these methods). Also lot of followup questions about how my implementation would behave in multi-threaded environment, where could be problems and how to solve them.
Very interesing task, I pressume, to check one's ability of abstract thinking.
Part 3:
Few questions about how we conducted sprints.
What is the most important thing in being scrum master?
What to do in situation, when team member didnt deliver feature in given deadline?
Result: Absolutetly ghosted which means I was rejected, didn't receive any feedback after stage 3 - not even a simple NO. I sent them emails asking about it - 2 and 4 weeks after interview, got nothing.
Summary: Besides being ghosted (which is only on recruiter's part, not technical interviewers), throughout the whole recruitment process everyone was really wholesome and kind. Can give them that, they really know how to ask the right question and create nice atmosphere for the interviews, you could feel the professionalism.
Also, I'd like to thank our community here, few posts were VERY helpful in what to expect in GS interviews. So this post is just me giving back to community. Maybe it will help someone else get job there (they still have TONS of job openings here). However, as I see it, the recruitment is very team-specific, meaning you gotta be the person with characteristics and skillset the team is precisely looking for, at least here in Warsaw for jobs that require some amount of professional experience.