The OpenAI interview process for software engineers usually runs a recruiter screen, a live technical screen, a system design interview, and a final round of two to four interviews. A US engineer who got an offer in July 2025 had exactly that: a recruiter call, a live coding challenge, a design round on building GitHub Actions from scratch, then two technical interviews and one behavioral interview. Coding problems are practical builds, such as an in-memory database, rather than trick puzzles, and the design rounds ask for products like Slack.
The process is set by each team, so round counts differ. An August 2025 San Francisco candidate had only two one-hour rounds, system design then coding, before a no-offer decision.
OpenAI interview process
- Recruiter screen~30 min
- Online assessment (some new grad loops)~2 hours
- Technical screen~60 min
- System design~60 min
- Final round3-6 interviews
- Decision and team matchvaries
| Round | Duration | What it tests |
|---|---|---|
| Recruiter screen | ~30 min | Background, why OpenAI, team interest, logistics |
| Online assessment (some new grad loops) | ~2 hours | Two hard algorithm problems (one November 2025 report) |
| Technical screen | ~60 min | Live coding on a practical problem with many cases to handle |
| System design | ~60 min | Design a real product (Slack, GitHub Actions) and defend the trade-offs |
| Final round | 3-6 interviews | More coding and design, plus a behavioral interview on motivation and teamwork |
| Decision and team match | varies | Leveling and team placement, references usually at offer stage |
OpenAI interview questions with answers
Q: Build an in-memory key-value database that supports transactions.
Keep committed data in a hash map and a stack of transaction layers, each layer a map of pending writes plus a set of deleted keys. GET reads the layers from the top down and falls back to the base map. BEGIN pushes a layer, ROLLBACK pops it and returns an error when no transaction is open, and COMMIT merges the top layer into the one below or into the base map. If the prompt adds a count of keys holding a given value, maintain a value-to-count index on every write and delete so the query stays O(1). Say out loud how nested transactions behave before writing code, because that is where follow-ups go.
Q: Implement spreadsheet cells that hold numbers or formulas such as =A1+B2.
Store each cell as either a value or a parsed formula, plus a list of the cells it references. Build a reverse dependency map so that when A1 changes you know which cells to recompute. Cache computed values and invalidate only the cells downstream of a change, found by a traversal of the reverse map. Detect cycles with a visiting set during evaluation and return an error value instead of recursing forever. For a range sum such as SUM(A1:B3), expand the range into cell references when the formula is set so the dependency tracking stays the same.
Q: Design Slack.
Start with the core flows: send a message to a channel, deliver it in real time to online members, and load history. Clients hold a WebSocket to a gateway tier; a message is written to a durable store partitioned by channel, then published to a fan-out service that pushes it to gateways holding connections for that channel’s members. Offline users get push notifications and catch up from history on reconnect, using a per-channel sequence number to find gaps. Large channels change the fan-out math, so discuss pulling instead of pushing for channels with tens of thousands of members, and cover search as a separate indexing pipeline.
Q: Design GitHub Actions from scratch.
A push or pull request event arrives by webhook and is written to a queue. A scheduler parses the workflow file into a graph of jobs, respects needs dependencies, and places runnable jobs on a job queue. A pool of isolated runners, each in a fresh VM or container, pulls jobs, streams logs back, and reports status. Store job state in a database with a state machine (queued, running, succeeded, failed, cancelled) and use heartbeats so a crashed runner’s job is retried. Cover secrets injection, per-repository concurrency limits, caching of dependencies between runs, and autoscaling the runner pool on queue depth.
Q: Design a system to enforce usage limits.
Decide the unit (requests, tokens, dollars) and the windows (per minute, per day, per month). Put a fast limiter at the gateway using a token bucket per API key in Redis, updated with one atomic script. When the true cost is only known after the request, as with model output tokens, reserve an estimate up front and settle the difference afterward. A billing pipeline built from usage events is the source of truth for monthly caps. Return 429 with Retry-After, show remaining quota in headers, and choose fail-open or fail-closed explicitly for when Redis is unavailable.
Q: Encode a list of strings into one string and decode it back.
Use length prefixes: for each string write its length, a delimiter such as #, then the string itself. Decoding reads digits up to the delimiter, then takes exactly that many characters, so strings containing # or any other character are safe. This runs in linear time. Escaping a delimiter also works but is easier to get wrong; mention that you would add a version byte if the format had to be stored long term.
Q: Implement an iterator that flattens a nested list of integers.
Keep a stack of iterators. hasNext loops while the stack is not empty: if the top iterator is exhausted, pop it; if its next element is a list, push an iterator over that list; if it is an integer, stash it and return true. next returns the stashed integer. This keeps memory proportional to nesting depth instead of flattening everything up front, and handles empty inner lists correctly, which is the case most first attempts miss.
OpenAI interview questions by role
| Role | Reported questions and topics |
|---|---|
| Software engineer (backend, infra) | Practical coding (in-memory database, a generic problem with many cases), Slack or GitHub Actions system design, a behavioral interview in the final round |
| Senior iOS engineer | Implement a chat feature in an existing app, refactor chatbot code, design usage limits |
| New grad software engineer | Online assessment of two hard problems in about two hours (November 2025) |
| Forward deployed engineer | Posted in San Francisco, New York, Seattle and Washington, DC; public 2025 reports on this loop are scarce, so ask the recruiter for the exact round list |
Asked in every role: why OpenAI, what you would build here, and how you work when priorities change quickly.
OpenAI recruiter screen
A short call about your background and why you want to work at OpenAI specifically. In January 2025 a San Francisco candidate’s 30-minute call with the recruiter moved straight into a technical question: build an in-memory database in any language. Expect the recruiter to ask which product area you care about (ChatGPT, API platform, infrastructure, safety), since OpenAI posts roles by team.
Common questions
- Why OpenAI, and why this team?
- Walk me through the most technically difficult system you have built
- What are you looking for in your next role, and what is your timeline?
- Are you open to working from San Francisco three days a week?
OpenAI coding interview questions
OpenAI coding rounds favor building something that works over solving a known puzzle. The August 2025 San Francisco candidate said the coding problem was not algorithm-heavy or LeetCode-style but had many use cases to cover. The candidate who received an offer in July 2025 called the questions “a little tough” and still recommended LeetCode practice for speed.
Reported prompts
- Build an in-memory database (key-value store, then transactions and queries)
- Implement spreadsheet cells that hold values or formulas, with recalculation and caching
- Implement a chat feature inside an existing app (senior iOS, April 2025)
- Refactor existing chatbot code (senior iOS, April 2025)
- Encode and decode a list of strings into one string
- Questions listed against OpenAI on Taro: Design SQL, Flatten Nested List Iterator, Design Excel Sum Formula
The prompts tend to grow in steps. Get a simple version passing first, then extend it, and keep the code readable enough that the next requirement does not force a rewrite.
OpenAI system design interview
System design comes early at OpenAI, sometimes before the final round. Reported prompts are all products people use daily:
- Design Slack (August 2025, San Francisco)
- Design GitHub Actions from scratch (July 2025, US)
- Design a system to enforce usage limits (April 2025, senior iOS)
- Design a payment processing system (listed in a third-party question roundup)
Interviewers push on what happens at high load, when a dependency fails, and how the system is observed in production. Usage limits are worth extra prep, since every OpenAI API product meters requests and tokens.
OpenAI final round (onsite)
The final round is a set of interviews in one or two days, virtual by default. In the July 2025 offer report it was two technical interviews and one behavioral interview. A senior iOS candidate in April 2025 had a technical screen with an engineer, then two full-length coding and system design interviews, with two hiring manager interviews scheduled after; the rejection came before those happened, by automated email. A third-party guide puts the final round at four to six sessions with four to six people.
The behavioral interview covers why OpenAI, how you handle disagreement, and a failure you learned from. Sample answers are on the OpenAI behavioral interview questions page.
OpenAI new grad and early career hiring
OpenAI had no open new grad software engineer posting in its October 2026 job listings; nearly all engineering roles ask for prior industry experience. The one 2025 new grad report on Taro (November 2025, US) describes an online assessment of two very hard problems in about two hours, and the candidate could not see how either was meant to be solved.
If you are early in your career, the realistic routes are internships where a team runs them, the forward deployed engineering track (posted at $185k-$325k base in San Francisco and $153k-$325k in New York in October 2026), or joining after a first role elsewhere.
Who does well in OpenAI interviews
Good fit: You build working software fast and keep it clean while requirements change mid-problem. You have run production systems and can talk about load, failures and observability from experience, and you have a specific reason to want to work on OpenAI’s products.
Harder path: You prepared only with timed algorithm drills. The August 2025 candidate who was rejected said the coding problem was about covering many use cases, and the design rounds expect real systems depth, so pattern recall alone does not carry the loop.
A four-week OpenAI prep plan
- Week 1: Build three small systems in 60 minutes each, with tests: an in-memory key-value store with transactions, a spreadsheet with formulas and cycle detection, and a rate limiter. Extend each one twice after the first version works.
- Week 2: System design on the reported prompts: Slack, GitHub Actions, usage limits. For each, write down the data model, the hot path, and three failure cases.
- Week 3: Timed medium and hard algorithm problems (iterators, design problems, graphs) for speed, since one 2025 offer holder still advised LeetCode practice. Read the OpenAI posting for your team and list what it ships.
- Week 4: Two mock final rounds: one practical coding, one design, one behavioral. Prepare stories on a disagreement with a manager, a failure, and a time you shipped under a fast-changing plan.
10-day version: Days 1-3 practical builds, days 4-6 the three design prompts, days 7-8 timed algorithm practice, days 9-10 behavioral stories and one full mock.
OpenAI pay in the US
OpenAI’s October 2026 San Francisco postings list base pay by team, all with equity: $230,000-$385,000 for Software Engineer, Core Services; $266,000-$445,000 for Data Infrastructure and several others; $210,000-$490,000 for Developer Productivity; and $380,000-$500,000 for Collective Communication. The Washington, DC Backend Software Engineer, Gov posting lists $207,000-$385,000.
Levels.fyi’s self-reported US medians for total pay, including stock, are about $249,000 at L2, $349,000 at L3, $711,000 at L4, $911,000 at L5 and $1.94 million at L6. These are self-reported figures; the range on your posting is the firmer number.
Frequently asked questions about OpenAI interviews
What is the OpenAI interview process for software engineers?
Most 2025 reports describe a recruiter screen, a live technical screen on a practical coding problem, a system design interview, and a final round of several interviews. A US engineer who received an offer in July 2025 had a recruiter screen, a live coding challenge, a system design round on building GitHub Actions from scratch, and a final round of two technical interviews and one behavioral interview. The process differs by team, so the number of rounds varies.
What OpenAI interview questions come up in coding rounds?
Practical build tasks more than puzzles. A January 2025 San Francisco candidate was asked to build an in-memory database in any language, an August 2025 San Francisco candidate described a coding problem that was not algorithm-heavy but had many use cases to cover, and an April 2025 senior iOS candidate was asked to implement a chat feature in an existing app and refactor chatbot code. Questions listed against OpenAI on Taro include Design SQL, Flatten Nested List Iterator and Design Excel Sum Formula.
What system design questions does OpenAI ask?
Reported prompts include design Slack (August 2025, San Francisco), design GitHub Actions from scratch (July 2025, US), and how you would design a system to enforce usage limits (April 2025, senior iOS). Interviewers go past the first diagram into how the system behaves under load and failure.
Does OpenAI have an online assessment?
Some loops do. A November 2025 US new grad candidate had an online assessment with two very hard problems in about two hours and did not pass. Most experienced candidates in 2025 reports went from a recruiter call straight to a live technical screen.
How long does the OpenAI interview process take?
No 2025 report gives an exact start-to-offer time. A third-party guide describes about three to four weeks from first call to decision and says OpenAI aims to reply within a week of each stage. Some candidates reported no reply after their final interviews.
How much does OpenAI pay software engineers?
OpenAI’s October 2026 San Francisco Software Engineer postings list base ranges such as $230,000-$385,000 (Core Services), $266,000-$445,000 (Data Infrastructure) and $210,000-$490,000 (Developer Productivity), all with equity. Levels.fyi’s self-reported US medians for total pay are about $249,000 at L2, $349,000 at L3 and $711,000 at L4.
Is OpenAI remote or in office?
Most October 2026 OpenAI engineering postings say the company uses a hybrid model of three days a week in the office and offers relocation help. A few roles, such as Software Engineer, Infrastructure Security, are listed as US remote.
Sources
- OpenAI job board on Ashby (pay ranges and hybrid policy, October 2026)
- OpenAI: Software Engineer, Core Services posting
- OpenAI: Software Engineer, Developer Productivity posting
- Levels.fyi: OpenAI software engineer pay
- Taro: software engineer, US, July 2025
- Taro: software engineer, San Francisco, August 2025
- Taro: software engineer, San Francisco, January 2025
- Taro: new grad, US, November 2025
- Taro: senior iOS engineer, San Francisco, April 2025
- Aced (formerly Exponent): OpenAI interview process guide