PracHub
QuestionsLearningGuidesInterview Prep
|Home/Software Engineering Fundamentals/OpenAI

Clarify and Design Social-Graph Milestones

Last updated: Jul 22, 2026

Quick Overview

Clarify ambiguous social-graph milestones before designing follow and unfollow operations, consistent snapshots, and user recommendations. The discussion tests directed-edge semantics, snapshot guarantees, recommendation-policy choices, exclusions, deterministic tie rules, scale assumptions, and contract-focused testing.

  • medium
  • OpenAI
  • Software Engineering Fundamentals
  • Software Engineer

Clarify and Design Social-Graph Milestones

Company: OpenAI

Role: Software Engineer

Category: Software Engineering Fundamentals

Difficulty: medium

Interview Round: Onsite

# Clarify and Design Social-Graph Milestones An interview exercise progresses through a social graph with snapshots, a milestone for retrieving followers and followees, and a final recommendation milestone. The exact first-milestone API, snapshot semantics, recommendation score, exclusions, and tie rules are not provided. Treat those as requirements to clarify, then design a coherent implementation for the contract you establish. Do not present one recommendation formula as if it were reported. Instead, compare defensible policies and show that each uses directed edges correctly. ### Constraints & Assumptions - A conventional follow edge can be modeled as directed from follower to followee, but mutation and validation behavior still need confirmation. - `getFollowers` and `getFollowees` must be defined relative to the same graph state or snapshot. - A snapshot might mean an immutable version, an explicit captured copy, or simply the graph input for one milestone; clarify which meaning is intended. - Expected graph size, mutation volume, snapshot retention, recommendation latency, and output size are unknown. ### Clarifying Questions to Ask - Which operations and return values belong to the first milestone? - When is a snapshot created, how is it identified, and must old snapshots remain queryable? - Are duplicate follows, self-follows, missing users, and unfollowing a missing edge errors or no-ops? - Should recommendation mean followees-of-followees, users with common followees, users with common followers, or another policy? - Which candidates are excluded, how are scores and ties ordered, and is a result limit required? ### Part 1: Graph Operations After confirming the mutation contract, choose structures for the current directed graph and explain how follower and followee reads remain consistent. #### What This Part Should Cover - Forward adjacency for followees and reverse adjacency for followers. - Atomic maintenance of both indexes and defensive read results. - Complexity and behavior for duplicates, deletion, self-edges, and unknown users under the agreed contract. ### Part 2: Snapshot Semantics Define what the milestone's snapshot means and compare a simple implementation with an approach suitable for more versions or larger graphs. #### What This Part Should Cover - Full-copy, copy-on-write or persistent structures, and operation-log/checkpoint alternatives. - Stable historical reads if immutable versions are required. - Mutation, read, memory, retention, and garbage-collection trade-offs. ### Part 3: Recommendation Policies Compare at least two plausible recommendation definitions, select one only after clarification, and give its candidate generation, scoring, exclusions, tie behavior, and complexity. #### What This Part Should Cover - Correct directed traversal for the selected policy. - The distinction between followees-of-followees and common-followee scoring. - Snapshot consistency, deterministic output if required, and cache invalidation trade-offs. ### What a Strong Answer Covers - A clear boundary between reported milestones and elicited product semantics. - Correct forward/reverse adjacency reasoning for a directed graph. - Snapshot storage chosen from measured read, write, and retention needs. - A recommendation algorithm that exactly matches the selected policy rather than a similarly named score. - Tests that distinguish recommendation definitions and exercise historical reads and graph mutations. ### Follow-up Questions - How would the design change if only explicitly requested snapshots must be retained? - How can you prove that a two-hop candidate generator implements the chosen directed-graph score? - When is precomputing recommendations worth its mutation and invalidation cost? - How would privacy blocks or high-degree users change the design?

Quick Answer: Clarify ambiguous social-graph milestones before designing follow and unfollow operations, consistent snapshots, and user recommendations. The discussion tests directed-edge semantics, snapshot guarantees, recommendation-policy choices, exclusions, deterministic tie rules, scale assumptions, and contract-focused testing.

Related Interview Questions

  • Count Machines and Recover a Distributed Tree Topology - OpenAI (medium)
  • Implement A Mobile Chat Interface In An Existing Codebase - OpenAI (medium)
  • Refactor a Chatbot into Clean Object-Oriented Components - OpenAI (medium)
  • Implement a Simple Memory Allocator - OpenAI (medium)
|Home/Software Engineering Fundamentals/OpenAI

Clarify and Design Social-Graph Milestones

OpenAI logo
OpenAI
Jul 17, 2026, 12:00 AM
mediumSoftware EngineerOnsiteSoftware Engineering Fundamentals
4
0

Clarify and Design Social-Graph Milestones

An interview exercise progresses through a social graph with snapshots, a milestone for retrieving followers and followees, and a final recommendation milestone. The exact first-milestone API, snapshot semantics, recommendation score, exclusions, and tie rules are not provided. Treat those as requirements to clarify, then design a coherent implementation for the contract you establish.

Do not present one recommendation formula as if it were reported. Instead, compare defensible policies and show that each uses directed edges correctly.

Constraints & Assumptions

  • A conventional follow edge can be modeled as directed from follower to followee, but mutation and validation behavior still need confirmation.
  • getFollowers and getFollowees must be defined relative to the same graph state or snapshot.
  • A snapshot might mean an immutable version, an explicit captured copy, or simply the graph input for one milestone; clarify which meaning is intended.
  • Expected graph size, mutation volume, snapshot retention, recommendation latency, and output size are unknown.

Clarifying Questions to Ask Guidance

  • Which operations and return values belong to the first milestone?
  • When is a snapshot created, how is it identified, and must old snapshots remain queryable?
  • Are duplicate follows, self-follows, missing users, and unfollowing a missing edge errors or no-ops?
  • Should recommendation mean followees-of-followees, users with common followees, users with common followers, or another policy?
  • Which candidates are excluded, how are scores and ties ordered, and is a result limit required?

Part 1: Graph Operations

After confirming the mutation contract, choose structures for the current directed graph and explain how follower and followee reads remain consistent.

What This Part Should Cover Guidance

  • Forward adjacency for followees and reverse adjacency for followers.
  • Atomic maintenance of both indexes and defensive read results.
  • Complexity and behavior for duplicates, deletion, self-edges, and unknown users under the agreed contract.

Part 2: Snapshot Semantics

Define what the milestone's snapshot means and compare a simple implementation with an approach suitable for more versions or larger graphs.

What This Part Should Cover Guidance

  • Full-copy, copy-on-write or persistent structures, and operation-log/checkpoint alternatives.
  • Stable historical reads if immutable versions are required.
  • Mutation, read, memory, retention, and garbage-collection trade-offs.

Part 3: Recommendation Policies

Compare at least two plausible recommendation definitions, select one only after clarification, and give its candidate generation, scoring, exclusions, tie behavior, and complexity.

What This Part Should Cover Guidance

  • Correct directed traversal for the selected policy.
  • The distinction between followees-of-followees and common-followee scoring.
  • Snapshot consistency, deterministic output if required, and cache invalidation trade-offs.

What a Strong Answer Covers Guidance

  • A clear boundary between reported milestones and elicited product semantics.
  • Correct forward/reverse adjacency reasoning for a directed graph.
  • Snapshot storage chosen from measured read, write, and retention needs.
  • A recommendation algorithm that exactly matches the selected policy rather than a similarly named score.
  • Tests that distinguish recommendation definitions and exercise historical reads and graph mutations.

Follow-up Questions Guidance

  • How would the design change if only explicitly requested snapshots must be retained?
  • How can you prove that a two-hop candidate generator implements the chosen directed-graph score?
  • When is precomputing recommendations worth its mutation and invalidation cost?
  • How would privacy blocks or high-degree users change the design?
Loading comments...

Browse More Questions

More Software Engineering Fundamentals•More OpenAI•More Software Engineer•OpenAI Software Engineer•OpenAI Software Engineering Fundamentals•Software Engineer Software Engineering Fundamentals

Write your answer

Your first approved answer each day earns 20 XP.

Sign in to write your answer.
PracHub

Master your tech interviews with 8,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • AI Coding Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.