Goldman Sachs FTE Interview Experience for Software Engineer | On-Campus
Goldman Sachs came to my campus offering a full-time offer for an analyst role. All branches were allowed to appear for the coding round.
We got a test link that was to be conducted on HackerEarth. The test had 5 sections –
- Coding Section (2 moderate questions – 30 minutes): One was a noble element question that had to be solved using Dynamic Programming and the other was a basic string manipulation question. I was able to code the string question but for the noble element one, I used backtracking as I was not able to code the DP approach and got 6/10 test cases passed.
- Advanced Coding Section (1 question – 45 minutes): It was a graphs question, I did not have time to even read this question completely, so I skipped this one.
- Quantitative Aptitude ( Trigonometry, PnC, Co-Ordinate Geometry, Time and Work) – 25 minutes
- Computer Programming MCQ’s (OS, DSA, DBMS) 20 minutes
- Behavioural Questions (2) – 15 minutes
I would suggest attempting all sections. Don’t skip any section completely. The marking scheme was +5 for every correct MCQ and -2 for every wrong answer.
Round 2(Technical Interview – Time: 40 mins): Difficulty: Easy
- The round started with the interviewer asking me to tell him about myself. After that, he asked questions related to the project I mentioned on my resume. He asked me about a DSA problem and I had to code it on Hackerrank’s code pair platform.
- Problem: Implement an n-ary tree
- I began by implementing a binary tree and slowly took it to n-ary. I discussed my implementation with the interviewer, he being very helpful and polite. He was giving little hints to me and was very patient throughout the interview. I was able to implement the basic Node class and all its methods, for n-ary I was not able to do that completely. The time had passed and therefore I was asked to stop eventually. The interview lasted for about 40-45 minutes.
- After that, he asked me some questions on memory allocation in C++ as I was coding in this language. We had a nice discussion on how memory is allocated in C++ and Java as he was a Java coder.
- Finally, the interview ended with the interviewer asking me if I had any questions for him. This is the time you can make an impression so think over questions beforehand and do some research on the company. Never say No to this question.
- I was asked to wait for the next round.
Round 3(Technical Interview – Time: 30 mins): Difficulty: Easy
- Again this round started with the interviewer asking me to tell her about myself. We had a quick introduction after which she straight away presented a DSA problem for me. I was first asked to discuss my approach to the solution.
- Problem: https://leetcode.com/problems/product-of-array-except-self/
- At first, I gave the basic brute force approach, she asked me not to use the divide operator. I thought for a few minutes.
- As I discussed the approach, she seemed satisfied and asked me to code it.
- I coded it and asked if I could do a quick dry run. I found a few errors and immediately corrected them. She was impressed with the approach. She asked me if I could optimize it furthermore by not using additional space. Again, I took some time, though for 2-3 minutes and told her that it could be further optimized. She asked me to code it. I was coding it but the solution did not run perfectly. Since we running short on time, she seemed satisfied that I knew the approach at least even if I was not able to code it properly. It was a short round and the HR asked me to wait for the next round.
Round 4(Technical – Time: 40 mins): Difficulty: Medium
- The round started with the interviewer asking me to tell him about myself.
- After that, he asked questions related to the project I mentioned on my resume. Since I was doing a data engineering internship, he asked me if I was comfortable asking some DBMS/SQL-based questions. I said yes and he asked me a question on the normalization of tables.
- He gave me some dummy tables on the whiteboard and asked me to write a query. I was able to write the query quickly and he was impressed.
- After that, he asked me to solve this problem. I did not have to code it, we just had to discuss the approach to this problem and we were allowed to use the whiteboard for the same.
- Problem: https://www.geeksforgeeks.org/count-total-anagram-substrings/
- I discussed the whole approach. I was getting stuck in between but he guided me. He asked d a lot of questions in between so that I could correct myself. The approach that I used was an O(n^2 ) one and although he asked me to think of an optimized approach, I was able to come up with another approach which I guess was solving the question in O(nLogn). I guess he seemed satisfied and finally, he asked me if I had any questions for him.
- I asked a few questions about my role and what department I will be working with. We kept on talking about the different technologies that the department, in particular, uses.
- After a fruitful discussion, the round came to an end and after 5-6 hours of this round, the results came in.
7 students got the offer including me!