Design a Social Networking Platform Object-Oriented Design Interview
Design a social networking domain model covering users and profiles, friendship requests and symmetric friendships, and posts with a visibility policy, comments, and reactions — enforcing symmetric friendship, unique requests, author ownership, and visibility-based read authorization.
1. Problem Statement
Design a social networking platform: users become friends via a request-and-accept handshake, and publish posts that are visible to the public, only to friends, or only to themselves, and that others can comment on and react to according to that visibility. Start by clarifying scope and the core objects.
2. Live Coding Format
Work in the provided coding workspace while explaining your decisions to the live interviewer. Validation may use inline tests, examples, comments, or a verbal walkthrough.
3. Key Focus Areas
- 1Friend request handshake and symmetric friend graph
- 2Unique pending request per pair and no self-friend
- 3Post visibility policy and read authorization
- 4Author ownership, comments, and per-user reactions
4. What Strong Candidates Should Demonstrate
- ✓Model users, symmetric friendships, and a request handshake with correct authorization.
- ✓Represent post visibility (PUBLIC/FRIENDS/ONLY_ME) as a replaceable read-authorization policy.
- ✓Enforce author-only post mutation and one-reaction-per-user semantics.
- ✓Separate the social graph and content model from feed generation.
Want interactive feedback?
Practice this problem in the live coding workspace while the interviewer probes your clarification, implementation, trade-offs, and validation.
Start Interview