Salesforce | MTS Interview | Selected
Summary
I completed the Salesforce MTS interview process in Bangalore, cleared all DSA rounds and the hiring‑manager discussion, and received an offer.
Full Experience
Hi everyone,
I recently completed the interview process for a MTS role at Salesforce (Bangalore) and received an offer. Sharing my experience in case it helps others preparing for Salesforce interviews.
Background:
* Experience: 3 Years
* Current Role: SDE-2 at Product based MNC
* Education: M.Tech (CSE), Old IIT
This was a pool hiring drive for multiple business units and levels (MTS/SMTS/PMTS/LMTS), so the interview process moved relatively quickly.
For the MTS role in this hiring drive, the process consisted of:
* Online Assessment (HackerRank)
* Virtual Screening Round
* Two DSA Onsite Rounds
* Hiring Manager Round
There was no dedicated Low-Level Design (LLD) or High-Level System Design (HLD) round for my MTS interview process. From my interactions during the hiring drive, design rounds were primarily conducted for SMTS and higher-level roles.
Online Assessment (HackerRank):
Date: 15 May 2026.
Duration: 75 minutes.
2 DSA questions. Both medium.
Virtual Interview (Screening Round):
Date: 27 May 2026.
Duration: 1 hour.
This was an eliminatory round consisting of 2 DSA questions.
1. Good Ways to Split an Array
Given an array of non‑negative integers, split it into three non‑empty contiguous subarrays: A1, A2, and A3.
Let:
* S1 = sum of A1
* S2 = sum of A2
* S3 = sum of A3
Count the number of valid splits such that: S2 <= S1 + S3
Return the answer modulo 10⁹ + 7.
I was able to implement the solution partially. The interviewer was satisfied with my approach and discussion.
2. ATM Queue
* There are n people standing in a queue, numbered 1...n.
* Each person wants to withdraw a certain amount. The ATM allows a maximum withdrawal of K units per transaction.
* If a person still has money left to withdraw after a transaction, they move to the end of the queue. Otherwise, they leave the queue.
* Return the order in which people exit the queue.
I was able to solve this completely and pass all the test cases.
After clearing this round, HR scheduled three onsite interview rounds, all on the same day (6 June 2026).
Onsite Round 1 (DSA)
Duration: 1 hour.
1. I don’t remember the exact problem statement, but it was a Medium‑Hard problem involving counting permutations of a string. It took me around 40 minutes to explain my approach and complete the implementation.
2. Minimize Array Sum with Halving
Given an array, minimize its sum by performing the following operation at most K times:
* Pick any element.
* Divide it by 2.
* Put it back into the array.
I solved it using a Max Heap in about 10 minutes.
Onsite Round 2 (DSA)
Duration: 1 hour.
1. O(1) Insert/Delete/GetRandom Data Structure
Design a data structure supporting the following operations in O(1) time:
* insert(value)
* delete(value)
* getRandom() – return a random element of the data structure
getRandom() should return each element with equal probability.
I solved it using a HashMap + Doubly Linked List.
Onsite Round 3 (Hiring Manager)
This was a 30‑40 minute discussion‑based round.
Topics included:
* Standard behavioral questions
* Discussion about my current project and work experience
* Problems I had solved at work, the approach I took, and the reasoning behind my design decisions
No coding was asked in this round.
Verdict : Selected ✅
I received positive feedback on 9 June. The offer process took around three weeks because I already had a competing offer and there were compensation discussions.
I eventually accepted the offer.
Interview Questions (5)
Good Ways to Split an Array
Given an array of non‑negative integers, split it into three non‑empty contiguous subarrays A1, A2, and A3. Let S1 be the sum of A1, S2 the sum of A2, and S3 the sum of A3. Count the number of valid splits such that S2 ≤ S1 + S3. Return the answer modulo 10⁹ + 7.
ATM Queue
There are n people standing in a queue, numbered 1…n. Each person wants to withdraw a certain amount. The ATM allows a maximum withdrawal of K units per transaction. If a person still has money left after a transaction, they move to the end of the queue; otherwise they leave. Return the order in which people exit the queue.
Minimize Array Sum with Halving
Given an array, perform at most K operations. Each operation picks any element, divides it by 2 (integer division), and puts it back into the array. After at most K operations, the goal is to minimize the total sum of the array.
O(1) Insert/Delete/GetRandom Data Structure
Design a data structure that supports insert(value), delete(value), and getRandom() in O(1) time. getRandom() should return each element with equal probability.
Coin Change II
Given an integer amount and an array of coin denominations, compute the number of combinations that make up that amount. Each coin can be used unlimited times.