Applied directly online via LinkedIn job portal. No referral.
Reached out to by recruiter via email to chat.
Then, phone interview (60 minutes):
Then, onsite interview (4 hours, 4 interviews, 60 minutes each):
Declare, define, and implement a Network Client API and use concurrency to deliver results (dispatch groups, semaphores, barriers, queues, session, etc.) in the expected manner.
Non-company-tagged LeetCode medium for one problem mixed with OOD (create classes); variation of BFS.
System design for Snap-specific functionality. Mock interviews with other candidates interviewing for iOS roles really helped here.
Hit API, get data, build a simple app with a collection view, and show data and images for each cell.
Overall, not too hard and was pretty practical. I made some dumb mistakes that wasted time, but I think the interviewers saw that they were dumb mistakes and gave me grace. Either I fixed them soon after, or they gave me small hints along the way.
Know iOS concurrency well.
The following metrics were computed from 2 interview experiences for the Snap iOS Engineer role in New York, New York.
Snap's interview process for their iOS Engineer roles in New York, New York is fairly selective, failing a large portion of engineers who go through it.
Candidates reported having very good feelings for Snap's iOS Engineer interview process in New York, New York.