Thrilled to have accepted the offer from Snowflake after a challenging interview process. It all started with a technical phone screen where I tackled a DSA question on course dependencies and cycles. The onsite included multiple rounds, including a system design question and behavioral interviews. The wild thing is, I had literally seen this exact problem on prachub.com just a week prior, which really helped me stay calm and focused. Overall, the intense but rewarding experience left me excited to join their talented team.
Questions d'entretien [1]
Question 1
There are a total of n courses you have to take, labeled from 0 to n-1. Some courses have prerequisites. Given the total number of courses and a list of prerequisite pairs, determine if you can finish all courses (detect a cycle in the dependency graph).
J'ai passé un entretien chez Snowflake (San Francisco, CA)
Entretien
"Overall, it took about three weeks to hear back after my initial phone screen, which felt longer than expected for a role like this. The technical round involved a DSA question on grouping anagrams, where I discussed my hashmap approach and its time complexity. a few days earlier. While I felt prepared, I stumbled on a follow-up question about Unicode handling, which impacted my confidence. Eventually, I got the no-offer news, but it was a good learning experience."
Looking back, I’m relieved it’s over — the interviews were tougher than I expected. The process kicked off with a technical screen that was brutal; they asked me to design a metadata service for columnar storage and discuss sharding strategies. I had practiced a similar scenario on prachub.com just a week before, and it helped a lot. The final round was filled with complex system design questions that left me drained. Ultimately, I received an offer, but the overall experience didn’t align with what I was looking for, so I declined.
Questions d'entretien [1]
Question 1
Design a metadata service that tracks micro-partitions for a columnar storage engine handling petabyte-scale tables. Walk through how you'd shard the metadata across nodes, handle concurrent table updates without locking entire partitions, and prune partitions during query planning using min/max statistics. Then implement the in-memory pruning index in code, including how to merge per-column statistics after a background compaction job rewrites partitions.