Level: Senior-Level
Round: Full Journey · Type: Multiple Types · Difficulty: 7/10 · Duration: 420 min · Interviewer: Unfriendly
Topics: Machine Learning Design, RAG, Text Embedding, Contrastive Learning, Python, Social Network, Data Structures, Classification, AI Safety, Behavioral Questions
Location: San Francisco Bay Area
Interview date: 2026-01-03
Question: Transformer debugging question. I prepared by reviewing relevant posts and Karpathy's YouTube course. I also practiced with GPT-generated bugs. The follow-up involved modifying it into a classifier.
Question: RAG ML design. I had limited experience and only completed a short online course. The interviewer, a search expert, asked detailed questions about text embedding models, contrastive learning, loss functions, and training sample selection.
Question: General coding challenge involving Python dependency versions. It consisted of 4 parts with a large amount of coding. I managed to complete it, but didn't finish running all test cases. The interviewer said it was okay.
Question: General coding on a social network problem involving follower/followee relationships and user recommendations based on connection paths.
Question: ML coding task: building a classifier with human-annotated noise and identifying low-quality labelers to improve the classifier.
Question: Standard behavioral questions about my motivation for joining OpenAI, reasons for leaving my current job, past job changes, views on AGI, the meaning of AI safety, and how I would handle a situation where my manager wanted to release unsafe AI.
Question: This round involved discussing projects with the interviewer.
The first technical round involved a transformer debugging question. I had prepared by reviewing related posts and Karpathy's YouTube course, and practiced with GPT-generated bugs. I caught the four bugs quickly. The follow-up question was to change it into a classifier by modifying the last layer. A test program was provided for verification.
For the RAG ML design round, I had limited experience and only took a short online course. The interviewer was a search expert and asked very detailed questions, such as how to obtain a text embedding model (contrastive learning), which loss function to use, and how to select positive/negative training samples.
The general coding round involved Python dependency versions, similar to what I've seen as frequently asked interview questions. This question had four parts, requiring a lot of coding. I barely finished it, and didn't complete all the test cases, but the interviewer said it was fine.
The other general coding question was about a social network. It was a new question I hadn't seen before. The task was to create a data structure for followers/followees and support three functions: update(A, B, t) where A starts following B at time t, and check(A, B, t) to check if A follows B at time t. This was changed to support bidirectional queries.
I also needed to recommend users. The conditions were A -> B -> C, A -> B -> D, A -> M -> C. I should recommend C and D to A, prioritizing C because the relationship between C and A has two mediums.
The ML coding question involved a classifier with manually labeled noise. I needed to find low-quality labelers and see if ignoring them would improve the classifier.
For the BQ round, I was asked why I wanted to join OpenAI (the recruiter reminded me to prepare well for this question), why I was leaving my current job, the reasons for previous job changes, my views on AGI, what AI safety means to me, and what I would do if my supervisor wanted to launch AI without safety testing.