OpenAI·Software Engineer·Onsite - System Design / Architecture
May 2026
System design round at OpenAI for a software engineer role. The whole thing was basically one giant chess platform question that kept expanding the more I answered, covering OOD, backend services, scaling, anti-cheat, the works. Left feeling like I'd done okay on the core design but got a bit lost toward the end on the scaling specifics.
- Design the core object model for a chess game, including the board, piece hierarchy, players, moves, and game state.
- How would you implement move validation, and handle check, checkmate, stalemate, castling, en passant, and pawn promotion?
- How would you design the matchmaking service, including ELO-based pairing?
- How would you synchronize moves in real time between two players, and what transport mechanism would you use?
- How would you persist game state and allow players to resume interrupted games?
- How would you implement time controls and per-player clocks in the system?
- How would you detect cheating, specifically players using a chess engine to assist their moves?
- How would you design support for spectators, chat, game replay, and rating history?
- How would you scale this platform, covering sticky sessions, regional servers, and reconnection handling?
“Started with a Piece base class and subclasses per piece type, which felt clean.” The rest of the author's notes on Software Engineer interview at OpenAI, Onsite - System Design / Architecture round, covers how they worked through the question, what the panel pushed back on, and what they would do differently.
View Post