# Salesforce Interview Experience for SDE Internship 2021

• Difficulty Level : Medium
• Last Updated : 27 Sep, 2021

Round 1: Salesforce came to my college in the second week of August for an SDE role. The eligibility was 7+ CGPA, with no backlogs for the Computer Science students. The first round was an online coding round conducted on Hackerrank. It comprised of 3 coding questions, based on DSA, to be solved in 90 mins.

• The first question was deleting a minimum number of digits from a string to make it divisible by 3, such that the final string has no leading zeroes. My approach was finding the remainder of the string (after converting it into a number) and deleting digits accordingly- if the number was divisible by 3, return the original string, divisible by 1, delete any one of the digits with remainder 1 (on division by 3), divisible by 2, delete either 1 digit with remainder 2, or 2 digits with remainder 1. I couldn’t take care of the leading zeroes condition while deletion, so I deleted them after removing digits. I managed to pass 5/6 TCs using this approach. Article link.
• The second question was a simple recurrence but with large constraints. The recurrence was of the form T(n) = T(n-1) + T(n-2). To take care of the large constraints, rather than storing the outputs in a large DP array, we could take reminders on divisibility by 3 and reuse space. While writing the test, I didn’t realize this, so I brute-forced my solution with a large DP array and managed to pass 4/8 TCs.
• The third question was tricky. It was a 3D DP question. The only tricky part was realizing that it is a DP question. Tabulating the approach was relatively straightforward. I managed to solve this entirely, passing 6/6 TCs.

Suggestion: Solve the questions you’re confident about/ find easy first. Never leave a question. If you have time, try to think of a brute-force way of solving it. In most cases, you’ll end up passing at least more than one of the test cases.

Round 2(Technical Interview 1): 10 candidates were shortlisted after the first round, including me. The next round was conducted the next day of the coding test. It lasted for nearly an hour.

• This was a code-pair round. The interview started with a few basic questions on strings – reversing a string and different approaches. I had to code each approach (recursion and traversing till the mid of the string) and explain time complexities for the same.
• The next question was to remove duplicate elements from an array in the least time possible. I told them an approach using an unordered map and later modified it using an unordered set.
• The next question was decoding a Roman number encoded in a string to a number. For example, decoding “XII” to 12. Due to the lack of time, I couldn’t code this completely since some of the test cases were missing.
• In the end, she asked me to mirror a binary tree (https://www.geeksforgeeks.org/write-an-efficient-c-function-to-convert-a-tree-into-its-mirror-tree/). I told her a recursive approach and explained how I’d handle the edge cases.
• After these questions, I was asked to write a SQL query to remove duplicate rows from a database. Next, I was asked to write a pseudo-code for Quicksort.
• Then we had a detailed discussion about an OOPS project that I had done and how I incorporated different OOPS features (Encapsulation, Inheritance, Polymorphism, and Abstraction) into my project. She also asked me about different layers of a mobile app and the different coding practices I follow.
• Lastly, the interview ended with a question based on designing a database, such that there’s a hierarchy in the data that is being storedâ€”for example, designing a database for developers, senior developers, managers for developers, and so on. I explained my approach using normal forms to reduce the redundant data and also mentioned integrity constraints that would be used.

Suggestion:

• Keep preparing for interviews a few days before companies start arriving.
• You won’t get a lot of time to prepare for the interviews after your coding test.
• Practice analyzing the time complexity whenever you’re writing a piece of code.
• The interviewer always asks for time (and sometimes space) complexity after you’ve written your code.
• Do not skip basic topics like sorting, arrays, and strings; they’re commonly asked in interviews. Revise OOPS and DBMS properly. The interviewers at Salesforce were really helpful. Whenever you feel stuck, do ask for help.

Round 3(Technical Interview-2): 8 candidates were shortlisted after the first technical interview.

• The interview started with a brief introduction of the interviewer and myself. Then he asked me about different data structures and what we’d use in different scenarios. Then I was asked about deletion in a singly and doubly linked list. Next, we moved to the code pair on Hackerrank.
• The first question asked to me was a DP question. It was this question – https://www.geeksforgeeks.org/find-length-longest-subsequence-one-string-substring-another-string/. I could write one of the conditions correctly, whereas the second was wrong. However, the interviewer helped me, and I was able to code the solution using tabulation. This was the only question that I was asked to code.
• Later, I was asked a similar puzzle, with 9 balls and a minimum number of steps – https://www.geeksforgeeks.org/puzzle-8-balls-problem/. Then we had an in-depth discussion about my projects and how I used DBMS and OOPS concepts.

Suggestion:

• The interviewers of Salesforce are sweet and helpful.
• Even if you’re not able to code your approach, tell the interviewer about your thought process and pick up hints.
• The technical interviews of Salesforce focus on overall CS concepts you’ve been taught till your second year.
• They expect you to have a sound knowledge of DSA, OOPS, DBMS, basic CS concepts (you cannot really practice this beforehand, in my opinion), your projects.
• You can practice a few puzzles beforehand from – https://www.geeksforgeeks.org/puzzles/.
• Be thorough with whatever you’ve mentioned in your resume. Also, prepare one or two questions about the company, like the work/projects, etc. to ask the interviewer towards the end of your interview.

Round 4(HR Round): 5 candidates were shortlisted after the second technical interview.  My HR round was conducted with a senior engineer manager of Salesforce. We briefly introduced ourselves and asked each other a couple of follow-up questions based on the introduction. This round was very personal, and I answered all the questions very calmly. A couple of questions that I was asked were –

• What do I miss the most about an offline semester?
• How do I plan my schedule for the week?
• What are my strengths/ weaknesses?
• I was asked two situation based questions –
• If I have my project changed, how would I quickly adapt to the new team and project?
• How would I respond to teammates who are not very supportive and helpful?
• What do I like the most about Salesforce?

Suggestion:

• In most cases, the HRs are very friendly, and they’re trying to understand your overall understanding of different things and whether you’re a right fit for their company.
• Prepare for the most commonly asked HR round questions beforehand.
• Be calm and answer all the questions wisely. Do not get over-excited that you’ve cleared the previous rounds.