Salesforce MTS Interview Experience | India | August 2026
Summary
I went through a three‑round interview process for a MTS role at Salesforce in India, cleared the first two technical rounds but was ultimately rejected after the hiring‑manager round.
Full Experience
Sharing my Salesforce interview experience even though I was not selected, since I found previous interview experiences helpful while preparing. Hopefully this helps someone preparing for a similar hiring drive.
Role: MTS Hiring Drive: AMTS / MTS / SMTS / LMTS Experience: ~3 years Process: OA -> Virtual Interview -> 3 Interview Rounds Final Result: Rejected
Online Assessment
A recruiter approached me through LinkedIn. I applied and received the OA.
There were 2 DSA questions.
1. Maximum requests within a window
Given an array of request timestamps and a window size, find the maximum number of requests that can be allowed within any window.
For example:
requestTime = [1, 3, 4, 5, 7]
windowSize = 4
For a window starting at 1, requests with timestamps < 5 are included, so 1, 3, 4 -> answer 3.
2. Splitting an array into partitions
Given an array and a required number of partitions, split the array into the required number of non-empty subarrays.
For each split, the cost is determined using the values at the split indices(start & end). We had to find the maximum and minimum possible cost.
For example :
array = [1, 3, 5, 10], numPartitions = 2
cost for [1, 3] = 1+3 = 4
cost for [5, 10] = 5+10 = 15
Total cost = 19
It was a greedy problem. I solved them both.
After ~2 weeks, I received the virtual interview. They asked about the two OA questions and a Merge Intervals problem(Leetcode 56).
Round 1: DSA
Given start time, end time and profit arrays for tasks. Select non-overlapping tasks to maximize total profit(LC 1235).
Initially considered greedy, but realized it doesn't work. Interviewer pointed me toward DP.
I explained recursion -> top-down DP with memoization and coded it.
Then optimized it using bottom-up DP + binary search for the next compatible interval.
Initial: O(n^2) Optimized: O(n log n)
Verdict: Hire
Round 2: DSA + LLD
DSA:
Given task dependencies such as:
dependencies = [['a', 'b'], ['c', 'b']]
Given queries, determine whether one task is a direct/indirect dependency of another.
I used DFS and precomputed the dependency set for each character to avoid repeating DFS for every query.
Time: O(26 * N) Space: O(26 * N)
LLD(low level Design):
Implement LUDO
I was told by HR that MTS wouldn't have LLD, so I wasn't prepared for this part.
Had to design the classes/UML for a Ludo game and explain:
Board representation Player Token Dice Movement
Initially represented the board as a 2D structure, but it became difficult to represent the actual movement path. Changed it to a list of cells with position/path information.
Had to modify the design a few times before arriving at a satisfactory solution.
Takeaway: In LLD, understand the complete game/problem flow and identify dependencies before starting the class design. Otherwise, it's messy to keep redesigning classes during the interview.
Verdict: Hire
Round 3: Hiring Manager
No major technical questions. Mainly resume and project discussion.
This round went poorly for me. I had used an older version of my resume and wasn't sufficiently prepared to explain some of the things on it in depth.
The interviews had also gone quite long by this point, and I was mentally drained, which affected my answers.
Verdict: No Hire
Final Result: Rejected.
I called HR after 4 days and received the feedback:
Round 1: Hire Round 2: Hire Round 3: No Hire
HR mentioned that a stronger verdict in the first two rounds would have resulted in another Hiring Manager round.
Key takeaways:
- Don't assume the interview format based only on the initial HR information. Prepare LLD for MTS as well.
- Know everything on your resume and be ready for deep questions.
- For LLD, understand dependencies and interactions before locking down classes.
- Interview stamina matters when multiple rounds happen back‑to‑back.
Hope this helps someone preparing for Salesforce.
Interview Questions (6)
Maximum requests within a window
Given an array of request timestamps and a window size, find the maximum number of requests that can be allowed within any window.
Example:
requestTime = [1, 3, 4, 5, 7]
windowSize = 4
For a window starting at 1, requests with timestamps < 5 are included, so 1, 3, 4 → answer 3.
Splitting an array into partitions
Given an array and a required number of partitions, split the array into the required number of non‑empty subarrays. For each split, the cost is determined using the values at the split indices (start & end). Find the maximum and minimum possible total cost.
Example:
array = [1, 3, 5, 10], numPartitions = 2
cost for [1, 3] = 1+3 = 4
cost for [5, 10] = 5+10 = 15
Total cost = 19
Maximum Profit in Job Scheduling
Given start time, end time and profit arrays for tasks, select a subset of non‑overlapping tasks to maximize total profit.
Task Dependency Query
Given a list of task dependencies (e.g., dependencies = [['a', 'b'], ['c', 'b']]) and multiple queries, determine whether one task is a direct or indirect dependency of another task.
Design Ludo Game
Design the classes and UML for a Ludo board game, covering board representation, player, token, dice, and movement logic. Adjusted the board model from a 2D structure to a linear list of cells to better represent movement paths.
Merge Intervals
Given a collection of intervals, merge all overlapping intervals and return the resulting list of intervals.