Salesforce MTS Interview Experience
Summary
I interviewed for a Member of Technical Staff (MTS) role at Salesforce, which involved an online assessment, two virtual technical rounds focusing on Data Structures & Algorithms and Low-Level Design, and an onsite round in Hyderabad covering project discussions, system design, and coding. I am currently awaiting the offer negotiation.
Full Experience
The recruitment process started after a recruiter reached out to me on LinkedIn for a different position, but after sending my resume, I was offered an online assessment for this MTS role. My journey began with Round 1, an OA consisting of 3-4 LeetCode medium-hard questions, though I don't recall the exact problems. Following the OA, I had Rounds 2 & 3 on the same day in late September.
Round 2 started with a straightforward string question. After solving and testing it, the interviewer, seeing we had time, moved on to a more challenging dynamic programming problem. I managed to solve both questions, albeit with a little extra time needed.
Round 3 was a combination of Data Structures & Algorithms and Low-Level Design. The interviewer initially posed a simple array question, keen to see how I'd approach edge cases and scalability for increased input limits. We then transitioned into designing a Meeting Scheduler, where I discussed the core objects, classes, design patterns, and strategies for handling conflicting meetings. My design approach seemed to satisfy the interviewer.
After clearing these virtual rounds, the recruiter scheduled my onsite interview in Hyderabad.
Round 4 involved two interviewers, an SMTS and a Director. They were incredibly accommodating, allowing me time to settle in before starting. We began by discussing my previous projects. Given my background in search algorithms, they then asked me about high-level requirements for a Facebook search-type application. Following this, I was asked to design a parking lot on a whiteboard and write valid code for it. The interview concluded with me asking a few questions.
Currently, I'm in the waiting phase. The recruiter reached out the following week for offer negotiations and has been assuring me consistently that an offer is in process, though it has been ongoing for 20 days already. I'm hopeful to receive it soon and that my experience proves helpful to others.
Interview Questions (5)
Given a list of strings containing a name and a roman numeral, sort the list first by name, then by the decimal value of the roman numeral. Roman numerals follow these rules: A value is not repeated more than three times. When a smaller value precedes a larger value, it indicates subtraction. For any other two-digit numbers less than 50, concatenate the roman numerals that represent its multiples of tens with the roman numerals for its values less than 10. For example, if 43 is 40 plus 3, then XL plus 3.
The company plans to launch marketing campaigns every several weeks. Each campaign has a certain cost, and at least one campaign must be launched every week. The weekly input is defined as the maximum cost of any campaign planned for that week. Given an area of campaign costs and number of weeks, determine the minimum possible sum of weekly inputs when campaigns are optimally planned. The campaign must remain in the original order. Each campaign must be launched in exactly one week and cannot be skipped.
Part of a development team will generate M microservices. The data system reports whether each service passed Y or failed N in its health checks. Find the longest streak of consecutive days during which all services passed their checks.
Design a Meeting Scheduler, including basic objects, classes, design patterns, and how to handle conflicting meetings.
Design a parking lot on a whiteboard and write valid code for its core functionality.
Preparation Tips
My preparation for this interview primarily involved solving LeetCode problems to strengthen my Data Structures & Algorithms skills, which was crucial for the online assessment and the DSA-focused technical rounds. For the system design and low-level design aspects, I focused on understanding fundamental design principles, object-oriented concepts, and common design patterns, which helped me in tackling problems like designing a Meeting Scheduler and a Parking Lot.