Position: SMTS
YOE: 5+
I got a referral for an opening back in Oct and was invited for the Hackerrank OA.
Round 1: Hacker rank OA (Nov 5)
Honestly I don't remember the questions since I took it more than 2 months back. But both problems were of medium-hard difficulty. I solved both of them with all the test cases passing.
I got a call from the recruiter same day after the OA, asking about my work experience, current TC and expected TC. She mentioned that she will forward my profile to the HM and get back in couple of days. She never got back and I tried reaching out to her as well after a week but to no avail. Probably the opening got filled.
On 20th Nov, I got an email from a different recruiter about a hiring drive on Nov 29 (Fri) for a different opening and I agreed to participate. Probably I was added in their candidate pool or something once I cleared the OA and they might invite candidates from the pool for interviews much later as well.
Round 2: Coding (Nov 29)
The interviewer invited me on Hackerrank and there were 2 questions to be solved. We would then run the solutions against all the available testcases on Hackerrank.
First question: There are 3 kinds of queries on a stream of numbers:
(1, X) - Add X in your list of numbers
(2, X) - Add X to all the existing numbers
(3) - Print the min number so far and remove it from the list
For e.g.
(1, 3) - current list = [3]
(1, 5) - current list = [3, 5]
(2, 10) - add 10 to all the existing numbers, list becomes [13, 15]
(1, 12) - current list = [12, 13, 15]
(3) - print the minimum number and remove it from the list: 12
Second question: A variation of coin change problemI was able to solve both the problems and got all test cases passing.
Round 3: Coding (Nov 29)
Given a large number as string (size upto 10^5). Find count of subsequences which are divisible by 4.
Since the count could be a large number, return the count module 10^9 + 7.I was expected to write the code on an editor. I was stuck initially for a very long time and started feeling frustrated too. but the interviewer was very helpful. The hint around what makes a number divisible by 4 really helped me and I was able to come up with a solution and code it. We ran the code for few test cases and there were couple of bugs in my code but we debugged it together and got a fully working code. Definitely not my best round but was able to cope and get over the line somehow.
Round 4: System Design (Nov 29)
I had read about the celebrity problem and hence was able to talk around it and discuss feasible solutions. For #2, I guess my work experience helped me since we practice a lot of rollout/deployment strategies at my current workplace. This round went well overall.
Round 5: Hiring Manager (Nov 29)
Standard behavioral questions and discussion around his team and their work. Typical HM round.
On Dec 4, the recruiter asked me for a discussion with the LMTS (lead) of the team I was interviewing for. They named it the fitment round. It was a decent discussion I feel around my past work, my areas of interest and why I am looking for a change.
For more than a week there was no update and I was not very hopeful about making it. I tried reaching out to the recruiter but couldn't get to him. I got a call from the recruiter on Dec 13. He mentioned that 2-3 candidates cleared the interviews and they went ahead with the best candidate (which obviously wasn't me :). He offered me a different opening as well and in case I was interested, he would connect me directly to the HM of that other opening. But that role (and its JD) didn't excite me so I politely declined. Obviously at this point I considered the salesforce chapter closed.
To my surprise, the recruiter reached out again on Dec 30 and mentioned that there has been one more opening in the same team I interviewed for and they would like to extend me an offer :). The offer negotiation process took couple of weeks and I finally got my offer letter rolled this week. Quite a long process but all is well that ends well.
My main learning from this was that very few things in this whole process are in your control. You can give your best in the interviews (even clear them) and you might not still get an offer. So just do your part and leave the rest to destiny :)
Compensation details: https://leetcode.com/discuss/compensation/6297434/Salesforce-or-SMTS-or-Offer
I had read a lot of interview experiences during my preparation so this is me giving back to the awesome leetcode community. Thanks.