Snowflake·Software Engineer·Onsite - System Design / Architecture
Apr 2026
Snowflake system design round for a software engineer role. Started from a blank whiteboard, no scaffold, no hints. The problem looked manageable at first but the follow-ups kept stacking and by the distributed design portion I was definitely winging parts of it.
- Design a service with two APIs: one to insert or replace a document by filename (tokenizing the text content into words), and one to check whether a document satisfies a boolean predicate over words, supporting AND, OR, and parentheses with standard operator precedence.
- Extend the service with a GetAllFiles API that returns every document satisfying a given predicate. How would you design the supporting indexes to make this efficient?
- How would you extend this into a distributed system? Discuss sharding strategies (by document vs by word), replication, query routing and fan-out, and what consistency guarantees you'd offer.
“The insert part was fine, just a map from filename to a set of tokens.” The rest of the author's notes on Software Engineer interview at Snowflake, Onsite - System Design / Architecture round, covers how they worked through the question, what the panel pushed back on, and what they would do differently.
View Post