I started my interview process talking to four teams. Communication was very smooth, as I spoke primarily with one recruiter at this point. After the initial phone call with the recruiter, I moved on with the three teams that most interested me.
I asked questions about the specifics of each team from my recruiter, and all questions were answered extremely well.
The process moved fairly quickly early on. Each screen with the recruiter and hiring manager was scheduled quickly. Feedback was provided back very quickly, too.
After this stage, the process slowed down a tiny bit, mostly because of my schedule of interviews with other companies. I was given one three-hour take-home assignment that could be used to advance to the on-site round for all of the teams. I completed the take-home over the weekend.
I received feedback fairly quickly that all the managers wanted to move forward to the on-site round. At this point, I was instructed to select two teams to do the on-site with. The recruiting team was very helpful in deciding.
Scheduling the on-site was the next step. The recruiter offered various options to fit my schedule, and eventually, we scheduled both on-sites on the same day, a week out. I had some scheduling conflicts and personal emergencies, so we rescheduled it once.
The on-site was a very pleasant experience but also tiring. In the morning, I had three back-to-back interviews with one team, plus lunch with the manager of team 1. In the afternoon, I had four back-to-back interviews for the other team.
One thing that caught me off guard was that I was told the on-site would not be technical because I had already done the remote take-home, and that any questions of this nature would be about my take-home. At first, this was surprising to me, but I decided it did not matter because I was interviewing at other companies as well, so either way, I was prepping for on-sites. When I arrived for the on-site at Salesforce, however, every single interviewer was technical, and no one talked to me about the take-home exercise.
I told the first couple of interviewers that I was told there would be no technical questions, but they seemed confused when I told them this. One interviewer said something like, "This is for a software engineer position, so... why wouldn't I ask you technical questions?" My bringing this up seemed to create a bad impression of me. After this, I did not communicate this mismatch in expectation with other interviewers for the rest of the day. Regardless, each interviewer was friendly and easy to talk to, and very smart.
After the on-site, feedback was delivered back very quickly. One team rejected me (the one from the morning), and the other team wanted to move forward to the offer stage.
Moving forward with this team, we negotiated several aspects of the offer. It seems that there would not have been too much room for negotiation if I had not had another offer from a different company. Communication was very open and crystal clear for this part.
After this, the recruiter worked really hard with the hiring manager and other execs to get new offer numbers approved. The offer was then sent out, and I was given five days to respond.
Throughout the entire interview process, I felt heavily supported by my recruiter, and it was a pleasure meeting so many amazingly talented individuals.
Recruiter screen: General fit questions and discussion of various opportunities. The recruiter showed genuine interest in understanding what excites you as a candidate and if the team would be a good fit.
Manager screen: Some high-level technical questions about Java fundamentals, database fundamentals, and architecture.
Take-home: A timed take-home administered through HackerRank. 3 hours were given to complete a functional program with 4 key features. The focus was heavily on data structures and algorithms.
Onsites: Each team had 4 interviews, totaling 8. One of these was a lunch with a hiring manager. The onsite consisted of a mixture of technical and behavioral questions. Some straightforward Java fundamentals, some general high-level distributed systems questions, one LeetCode medium-to-hard difficulty question involving recursion/backtracking concepts, and then some more LeetCode medium questions I don't remember well. Other interviews focused a little on front-end and basic SQL.
The following metrics were computed from 40 interview experiences for the Salesforce Senior Software Engineer role in San Francisco, California.
Salesforce's interview process for their Senior Software Engineer roles in San Francisco, California is on the easier side as most engineers get an offer after going through it.
Candidates reported having very good feelings for Salesforce's Senior Software Engineer interview process in San Francisco, California.