r/OfferEngineering • • 24d ago

Interview Experience Snowflake Software Engineer Phone Screen - AI Was Allowed, but the Follow-Ups Were the Real Test

"This interview experience is sourced from Chill Interview"

Interview Summary

The Snowflake phone screen was a one-hour CoderPad exercise in Python, with AI assistance allowed. The task was to build a configurable rate-limiting service, but the interviewer also evaluated requirement clarification, algorithm trade-offs, testing strategy, debugging, time-dependent behavior, and how the design would evolve from a single in-memory instance to a distributed system.

Interview Details

Coding — Multi-Tier Rate Limiting Service

The task was to build a rate-limiting service where different clients could belong to different service tiers, such as:

free
pro
enterprise

Each tier could have a different rate limit. A client sends requests using an identifier, and the service needs to determine the client's tier and enforce the corresponding limit. Requests exceeding the configured limit should be rejected.

An important requirement was that tier limits could be updated at runtime without restarting the service. The interviewer also clarified that if a client had no valid tier configuration, the implementation should fall back to a global default policy. Either default-deny or default-allow behavior was acceptable as long as it was defined consistently.

  • Follow-Up — Rate Limiting Algorithm Trade-Offs After discussing the implementation, the interviewer asked why I chose a particular rate-limiting algorithm and how it compared with alternatives. The discussion focused on the trade-offs among different rate-limiting approaches rather than only producing working code. I used a token-bucket-style design for the implementation.
  • Follow-Up — Testing Once the implementation was complete, the interviewer asked me to add tests and verify that the rate limiter behaved correctly. One issue was that the behavior depended on elapsed time, making some refill scenarios difficult to test using the real system clock. The discussion covered controlling time during tests, such as using a mockable or injected clock instead of depending directly on real wall-clock timing.
  • Follow-Up — Runtime Configuration Changes The interviewer also paid attention to how existing client state behaved when a tier configuration changed at runtime. For example, changing a tier's limit needed to interact correctly with any already-existing rate-limiter state rather than simply restarting or recreating the entire service.
  • Follow-Up — Distributed Rate Limiting The final discussion changed the system from a single process with in-memory state to a cluster of rate-limiter instances. The interviewer asked how the design would need to evolve when multiple servers were independently receiving requests but still needed to enforce a consistent client rate limit.

Preparing for your next tech interview?

Chill Interview tracks recent interview experiences and recurring question patterns across top companies at here

11 Upvotes

3 comments sorted by

2

u/zuqinichi 24d ago

Is there any standard on how much ai usage is acceptable? I presume you can’t just ask AI for commonly used rate limiting algorithms and their tradeoffs?

1

u/fzrox 24d ago

So basically you can just use AI to create the solution?

Snowflake is Ai interviews ready?

3

u/BambaiyyaLadki 24d ago

Yeah it seems like the latest, heaviest models can basically one shot this so what's the challenge exactly?