The first interview was a typical phone screen with a recruiter. The recruiter was great and asked questions to check if my experience matched what they were looking for. The only thing I would mention is that it took some time between communications in booking a time slot for the second interview.
I was told the second interview involved speaking about my past projects with an engineer, and I was given a list of topics that we would be covering. The interview ended up being a verbal quiz on different computer science concepts, and there was no discussion of any of my past projects. Hopefully, this review can help others prepare correctly.
The engineer asked question after question for the hour, and it was a lot more like a verbal quiz than a conversation. He also just agreed to everything I said, so it was difficult to gauge if I was answering things to his expectation. Upon reflection, I think some of my answers weren't interpreted in the way I meant, and because he just said yes to everything, there was no opportunity for clarification.
The other thing was that the interview instructions specifically said it was an audio-only Zoom call, which I assumed was to help eliminate bias, since Slack is big on diversity. The engineer showed up on the call with his video on, and I asked if I could leave mine off since I wasn't prepared for video. He said that was fine. There was one point, though, when he asked me a question, and I was digressing in my response about the latest Swift release. He said, 'This isn't about what you can look up; it's about what you know.' It seemed like he thought I was looking up answers.
How do you implement your own dictionary struct?
How does an array resize itself in Swift?
When would you use a linked list?
How are user events handled in UIKit? (UIResponder)
Does the UIActivityIndicatorView still animate if the main thread is blocked?
There was a lot more about threading and UI, but I can't remember the specifics.
The following metrics were computed from 1 interview experience for the Slack Software Engineer role in Toronto, Ontario.
Slack's interview process for their Software Engineer roles in Toronto, Ontario is extremely selective, failing the vast majority of engineers.
Candidates reported having very negative feelings for Slack's Software Engineer interview process in Toronto, Ontario.