My interview process with Slack (Salesforce) was an incredibly positive experience. From what I've seen on Glassdoor, the interview experiences for Slack seem very divided, almost like people are interacting with completely different companies. This could have to do with which recruiter you get, what branch of the company you are interviewing for, etc. But as for me, here's what I experienced. (This is the review I would have written regardless of an offer. But as always, it's good to take reviews with a grain of salt as experiences differ.)
Role: Senior Software Engineer (Frontend) Time from application to offer: ~ 1 month
Interviews:
Initial After applying online, I received a call from the recruiter the next day to go over my work history and interests. This was very casual, and basically just a "get to know you" step that verifies you have experience in what you applied for. (For me, my recruiter was the same during the whole process. She was an amazing, prompt point of contact for any question I had.)
Engineering Fit After meeting with the recruiter, she immediately sent a thank you follow-up email and detailed the next step in the interview process, as well as its purpose. She left no stone unturned, and entering each interview, I had a good sense of what was in store. This one was with an Engineering Manager and was a fairly even split of "behavioral" type questions to evaluate collaboration and learn about projects you've worked on, as well as some very high-level systems design type questions. There were never any live coding, white-boarding, or algorithmic "gotcha" type questions. So I guess the best way to put it would be "conversational systems design," and no question felt out of left field. (Things like "how would you approach designing an autocomplete or a DM feature.") These are naturally open-ended questions with no right answer, so make sure to bounce ideas off the interviewer and ask lots of clarifying questions. I see these as opportunities to dig into the parts of engineering YOU find interesting. If you can let your passion bubble to the surface, that's really what they want to see.
Take Home Exercise (4hrs timed) The most hands-on technical part of the interview is the take-home assignment. Because Slack aims to avoid unrealistic algorithms and live coding assessments, the goal is to perform a code review on a new feature that has been added by a teammate. They have built out an entire example application, and you are able to run the app locally, digging into the code in your own IDE and debugging in a comfortable environment. You perform the code review in a HackerRank environment, but really, it's exactly like a GitHub or Bitbucket PR. It's a clever way to test technical aptitude as well as interpersonal skills because the way you communicate and provide constructive criticism is just as important as how well you write code.
Virtual On-Site After passing the PR review assessment, you move on to the Virtual On-Site, which for me was fully conducted over Zoom. It was made up of 3 individual interviews with 3 different engineers at different levels. The goal is to evaluate how you collaborate and work on a team in one interview, how you approach engineering/scoping/implementing features in another, and lastly, one to evaluate your knowledge of the language (in my case HTML/CSS/JS). One of these was straightforward behavioral stuff, and the other two were different flavors of systems design. I think the best thing to do to prepare for these is to study some front-end system design approaches and ideas (GreatFrontEnd.com was an awesome tool), and then continue to build things and understand the fundamentals of the language you'll be using. In every single interview, I felt that the interviewer was on my side and wanted me to succeed. There were no "gotcha" questions or quiz-style tricks. They genuinely want to see the best side of you. (Remember that you're interviewing them too!)
Team Matching After the virtual on-site, you have essentially passed the interview process! 🎉 The next steps are to meet with managers who have openings on their team. This is a chance to think about what kind of team you'd like to land in, and also for the managers to find the perfect culture fit for their teams. You may meet with anywhere from 1 to 4 team managers to find your spot. This step is much more conversational, not an intense interview-style meeting. As always though, research the people who are interviewing you and ask thoughtful questions! I always liked the idea of working at Slack, but as the process went on, I became more and more thrilled with the thought of working at such an organized and kind company. The level of care and communication I received from them was top-tier and totally out of the ordinary. Check out slack.engineering for great resources and articles.
How would you design a high-megapixel image viewer?
The following metrics were computed from 2 interview experiences for the Slack Senior Software Engineer role in Denver, Colorado.
Slack's interview process for their Senior Software Engineer roles in Denver, Colorado is fairly selective, failing a large portion of engineers who go through it.
Candidates reported having very good feelings for Slack's Senior Software Engineer interview process in Denver, Colorado.