I recently interviewed with Salesforce Hyderbad for AMTS Distributed Systems Engineer role. A total of 5 rounds were taken.
Round 1 (Coding Round): The coding round was taken on Hackerrank. There were 2 problems to be solved in 60 mins. You have to write the code and manually test it. Only simple test cases were given to match the output format. This made it quite difficult to write a code that will pass all the edge cases. Problems were of above moderate difficulty and both were of the ad-hoc type.
Round 2 (Technical Interview): In this round interviewer first asked me the question on stock price (https://practice.geeksforgeeks.org/problems/stock-buy-and-sell/0). I told the interviewer that I had seen this problem and told them about the solution in and other modifications of this problem and general Dynamic Programming Approach for at most K transactions. The interviewer then asked me a question on dependency resolution order. Asked me to code it and run test cases. Then I told the interviewer that in case of cyclic dependencies solution won’t work and then told what we can to do for cyclic dependency case.
Round 3 (Technical Interview): After a brief introduction about him, he asked me to introduce myself. He then moved forward to the coding problem. The problem was to match a given string with a given regular expression with “*” and “.” in it, where “a*” means zero or more than one occurrence of a, and “.” means single occurrence of any character (Note: “.*” is also a valid expression) PS: This problem is a slight modification of standard interview problem that has been asked in Facebook and Microsoft. It has more cases than the standard one. He first asked me to write all possible test cases for the problem. Then he asked me to write a fully functional code and then we tested it against the all possible cases. He then asked me design concepts about Abstraction Encapsulation and Polymorphism, there differences and since I mentioned my favourite programming language is Python he asked me whether Python supports these or not.
Round 4 (Hiring Manager round): This interview round was with my Hiring manager. He didn’t ask me any technical questions. He asked me about my past intern experiences. He asked me situational questions what will I do. I gave good thoughtful answers he was quite impressed with my thinking in those matters. He was also impressed with the kind of questions that I asked him about the culture, work etc. I even asked cross-questions on the tech stack they were using. He asked me to justify the tech stack with possible reasons for using it, which I did so.
Round 5 (Anchor round): This round was with one of the senior directors of the engineering team in Salesforce HQ. He asked me questions on my resume and behavioural questions like where do you see yourself in 3-5 years. Upon my answer to this, he asked me what skills do I think would be most important to in achieving what I just said. He was also impressed with my thoughtful answers and told me some story about a great AMTS hire in Seattle.
Note: One of the things that most students don’t do is read about the company. I went through Salesforce engineering blog which helped me a lot in rounds with senior employees and also it gives a good impression.