Interview Experience: SMTS, Salesforce, Hyderabad
After six years in the industry and two years as an SDE 2 at Indeed, I was ready to take on new challenges and explore opportunities that aligned with my career goals. Coming from a Tier 3 college, I’ve always aimed to overcome the odds and prove myself through hard work and perseverance. When I was approached by Salesforce for an SMTS position, I knew it was a fantastic opportunity to work at a company known for its innovation and people-first culture. Here’s how the interview process unfolded:
Screening Round: Hackerrank Test
The initial screening was a coding test on Hackerrank with questions of medium difficulty. While I can’t recall the exact questions, I remember they required solid problem-solving skills and covered essential data structures and algorithms.
Round 1: Coding Round
In the first coding interview, the focus was on binary trees.
Problem 1: Print the rightmost leaf node of a binary tree.
After analyzing the tree structure, I suggested using a modified breadth-first traversal to locate the rightmost leaf efficiently. I implemented the solution and walked the interviewer through my thought process, ensuring they understood each step.Problem 2: Given a binary tree and a specific node X, retrieve all nodes located at a distance Y from node X.
This problem was more challenging. I used a recursive approach combined with a level-order traversal to identify nodes at the specified distance from the target node. I created helper functions to make the code more modular and easier to test. The interviewer appreciated my approach to breaking down the problem.LeetCode: 863. All Nodes Distance K in Binary Tree
Round 2: Coding Round
The second coding round featured questions on graph traversal and recursion.
Problem 1: "Rotten Oranges" graph traversal problem.
This classic BFS problem involved spreading "rot" from one orange to others in a matrix until all reachable oranges were rotten. I explained my approach of using BFS with a queue to track the rotting process layer by layer and implemented it accordingly. My solution accounted for edge cases and provided an efficient solution.LeetCode: 994. Rotting Oranges
Problem 2: Generate valid combinations of parentheses for a given number, X.
For example, if X = 2, the output would be["()()", "(())"]
. I applied a backtracking approach to generate all combinations and ensure that each was balanced. After writing the code, I tested it with examples, and we discussed potential optimizations.LeetCode: 22. Generate Parentheses
Round 3: High-Level Design (HLD) for an E-commerce Flash Sale System
In this design round, I was tasked with creating a high-level architecture for an e-commerce flash sale system. We discussed the following requirements:
User Homepage - The structure and functionality, particularly for promoting time-sensitive flash sales.
Search - How to handle high traffic on the search functionality during sales periods.
Ordering Workflow - Efficient order placement, processing, and the critical need for scalable architecture to handle high user demand during a flash sale.
The discussion covered multiple aspects, including scalability, caching strategies, and database design for handling large datasets and high concurrency. I highlighted potential bottlenecks and provided solutions to mitigate them. The interviewer seemed satisfied with the depth of my knowledge and my approach to trade-offs in large-scale design.
Round 4: Hiring Manager (HM) Behavioral Round
The final round was with the hiring manager, who conducted a deep dive into my past projects, focusing on those with significant business impact. We discussed some of the most challenging aspects of these projects and the solutions I implemented.
The hiring manager also asked behavioral questions about:
Handling conflicts with peers.
Navigating challenging tasks and deadlines.
Building and maintaining trust within a team.
Drawing on my experiences at Indeed and other roles, I shared stories that highlighted my ability to work collaboratively, adapt to complex situations, and keep the end goal in sight. I aimed to convey my proactive approach to problem-solving and my dedication to delivering impactful results.
Conclusion
Overall, the interview process at Salesforce was comprehensive and tested a wide range of skills from technical problem-solving to system design and behavioral questions. After several weeks of waiting, I received an offer for the SMTS role, and I’m excited to join a team where I can make a meaningful impact.