Sharing my feedback report for Snap from earlier this year. The virtual onsite had 5 rounds total — two coding, two system design, and one Q&A round where I could ask anything. The Q&A round interviewer told me that if I passed at least 3 of the previous 4 rounds, I'd move on to the discussion stage; with only 2 passes, I'd most likely be rejected. I felt like I did decently, but in the end I got rejected by an automated email with no reason given, so I'm not totally sure what I fell short on.
Coding round 1: I might not remember this perfectly, but the interviewer described a floor plan and asked me to figure out whether everyone could escape (or the minimum time needed to escape). I had to define my own grid, define the exits, and consider whether there were blockers in the grid and how to define them. It's a pretty classic multi-source BFS problem — a for loop plus BFS gets it done.
Coding round 2: Implement a rate limiter, any type works. I used a sliding window rate limiter since it's the simplest. The follow-up discussed race conditions caused by multithreading, concurrent hashmap, synchronized in Java — the interviewer didn't like locks, thought they weren't efficient.
System design round 1: Design a metric collection and alerting system that needs to support both realtime queries and offline data analysis. I used the ads click aggregator approach combined with lambda architecture, handling realtime and offline separately.
System design round 2: Design Snapchat Spotlight — just the backend video feed vending functionality, supporting front-end video swipe up/down. I used a design similar to the Facebook news feed.
Discussion
Loading comments…