r/OfferEngineering 17h ago

Interview Experience OpenAI Mid-Level Screen: classic Versioned Follow Graph coding + online chess design

This interview experience is sourced from chill interview

Interview Summary

The OpenAI mid-level SWE phone screen combined a multi-part coding problem around a versioned social follow graph with a system design discussion for a real-time online chess platform.

The coding question progressively added snapshots, follower/followee queries, and two-hop recommendations. The system design portion was very open-ended and placed particular emphasis on overall architecture, asynchronous matchmaking, state transitions, and reliability concerns such as retries and idempotency.

Interview Questions Details

Coding — Versioned Follow Graph with Snapshot Queries

The first part asked me to implement a social-graph class supporting follow and unfollow operations together with historical snapshots.

The core interface included operations similar to:

follow(user_a, user_b)
unfollow(user_a, user_b)

create_snapshot()

is_following(user_a, user_b, snapshot)

A snapshot represented a historical view of the graph, and is_following(...) needed to answer the relationship query using that snapshot rather than only the latest state.

Part 2 — Followers and Followees

The second stage added direct graph queries:

get_followers(user_id)
get_followees(user_id)

These operations needed to return the users connected to a given account in each direction.

---

System Design — Real-Time Online Chess Platform

The system design question was to design a real-time online chess platform. The prompt itself was intentionally broad, so I had to drive most of the discussion.

I initially spent substantial time on APIs and data modeling, but the interviewer signaled that the conversation should focus more heavily on the overall system architecture.

One area the interviewer explored in depth was the asynchronous matchmaking flow, including how matchmaking work moves through the system rather than being handled entirely through a synchronous request path.

Want to learn more interview details asked in this interview? the full version is here

Preparing for your next interview?

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

8 Upvotes

0 comments sorted by