The recruiting process was fairly straight forward. I submitted my resume along with my application to their careers portal. I am a university student in my third year.
I received an email from the recruiter about 3 weeks later asking for a phone call. This first phone call was to get to know me better, identify my strengths and weaknesses, and to see whether I would be a good fit for the company. This is important because if you are looking for work in a certain area and the company doesn't have work in that area, then they'll just end the recruiting process here. It's also to see which teams you would make a good for. From here I got an email that I had made it to the first interview.
The first interview was a phone interview with an engineer. 1hour in length. Average data structures and algs questions. If you've done acm competitive programming, these would be like the questions towards the beginning of the packet. No dynamic programming questions. I got an email that I had made it through to the next steps.
The second and third interviews were supposed to be onsite. Salesforce had a hiring day where they flew out all candidates and interviewed them. I couldn't make it so they set up video chat interviews for me. I had two 1-hour long interviews with two engineers. The second interview was more involved than the first. He asked a dp problem but he just wanted to you to explain the dp solution, not actually code it since it was rather long. He asked about building certain data structures using others. Asked a couple of easy os questions. Really focused on alg complexities and java specific implementation. The third interviewer asked me some behavioral questions. Asked more networking related questions since I was interviewing with the Infrastructure team. Asked more tricky questions that weren't difficult to code up but just required knowing some tiny detail to unlock the answer. I received an email that I made it past this stage that same day.
The next day my recruiter called and said they were glad to make me an offer. Housing was included and the salary was very competitive for an intern. I was pleased with the offer and accepted. I don't think they have any wiggle room with the offers, you either take it or you don't. You also get placed on a team and you can't really change that later on. Everything is final, take as is.
The entire process took about 3 1/2 months, granted it was during xmas/new years so that factored in too. Recruiter was very speedy and professional. Interviewers were on time for interviews and they ended them on time too. Overall this should be the standard for how a company interviews for Software Engineering Interns.