Interviewed in June. Second round: system design interview, 1 hour. Project deep-dive (about 20 minutes).
System Design — Video Content Moderation System
Question: design a simplified video content moderation system.
The interviewer scoped it very clearly: I didn't need to design the video upload part — assume there's already a system that pushes uploaded videos to you. What I needed to design was the moderation pipeline itself. He gave four stages:
Video ingestion — a user posting a video triggers the moderation process. Results don't need to be real-time: first tell the user "under review," then notify them of pass or takedown once review finishes.
Model scoring — calls a lot of ML models (something like 20-30), each one outputting a risk score from 0 to 1, with a higher score meaning higher risk. Different models handle different aspects of the video (text models, vision models), and each has different inputs and parameters.
Rule/policy engine — configures business rules based on the model scores, e.g. "Model A > 0.9 AND Model B > 0.95" gets flagged as a violation. The real rules are much more complex than that.
Enforcement action — once a rule is hit, call downstream APIs (video service, account service) to take the video down, ban the account, etc.
Follow-up questions covered: the data model (both models and rules need to be versionable, and there needs to be an audit table recording what each decision was based on), how the rule engine gets configured, and how review results flow back.
A really important lesson on pacing: I spent the first 10 minutes drawing the table schema, so the architecture diagram got drawn late, and I completely ran out of time to get to scaling and failure handling. For an SD round: draw the block diagram first, write the schema after, and leave yourself time to walk through scalability and fault tolerance.
Discussion
Loading comments…