Gepubliceerd met Google Documenten
AI research interviews
Wordt elke 5 minuten automatisch geüpdatet

AI research interviews

Bas van Opheusden, Aug 12, 2025

A few weeks ago, I started a new job at OpenAI. This document describes my interview process and lessons learned. If you’re reading this, I assume that you are on the job market or considering a career change, and at least tangentially interested in generative AI and Large Language Models. And if you’re not, I’d encourage you to check out openai.com, and read about our latest research. I hear gpt-5 is not bad ;)

Disclaimer: this is NOT a guide to get a job at OpenAI. It only describes my process and learnings interviewing at multiple AI/ML companies. All opinions are my own.

Protect your mental and physical health

Interviewing is stressful, the stakes are high, and you’ll have moments in which a single 30-minute conversation will change your life dramatically for the better or worse. When you come out on the other side with one or more offers, it’ll all be worth it, but it’ll be rough at times. Make sure you have a support network of friends and family, and don’t underestimate the physical effect that mental stress plus late nights can have.

Everyone wants you to pass your interviews and sign an offer

The interview process can feel adversarial, frustrating and unfair at times. Despite this,  remember that everyone involved, your referrers, recruiters, interviewers, hiring managers, etc, wants the same thing: for you to pass and accept an offer. Generally, companies will try to set you up for success and any other outcome is a loss for everyone. While we all play different roles, this is a team sport.

Failure is an option

At the end of my interview cycle, I had a bunch of rejections and 3 offers. If I'd had 2 or 1, I'd still be stoked. If I had none, I would have been sad. I'd have been emotionally crushed and it'd have been difficult to even consider applying to other companies for a while. But I'd get there eventually, and I'd have certainly reapplied to OpenAI in about a year. We're all on growing career trajectories, and if you pass even a single stage at any company, they generally would love to reconnect in 1-2 years. This has happened to me, and many people I know. This year was not the first time I applied to OpenAI.

Enjoy yourself!

It’ll be hard to do considering the stakes, but interviewing is also fun. You get to learn about new cool startups, you’ll get one-on-one time with world experts in your exact field of research, and you’ll learn a bunch of new skills. Coding interviews are kinda fun in a way too. A very type-2 fun way.


General advice

Prepare early

Any time spent preparing for job interviews is likely the highest return on investment of anything you do in life. I wish I’d started earlier. Preparing for interviews also carries side benefits: you get to learn new skills, read papers, or revisit some classics. Through practice interviews you’ll get to receive honest feedback and zoom out. I have noticed myself getting better at my previous job due to interviews. As an order of magnitude, I’d recommend around 100 hours of practice on leetcode or other platforms, and a similar amount of time reading papers, refreshing knowledge (use Deep Research!) and talking to friends.

There are no informal conversations. 

Recruiters may invite you for a chat with your hiring manager or to have lunch/dinner with the team and frame those chats as “informal”, but that mostly means that there is no formal grading rubric. Every interaction you have with any company or its representatives is an opportunity to show your character, competence and excitement (both positive and negative) and this remains true from the initial chat until the day you sign your offer.

Practice with friends

Interviews, and especially coding interviews, are awkward. They involve debugging off-by-one index errors while someone you have never met before is watching over your shoulder and expecting you to talk through your process. It also requires you to not use codex or cursor or any LLM tools in your regular workflow. You don’t want your first experience to be during a high-stakes interview. As much as you can, practice with friends, practice coding under time pressure, select annoying problems, and have your friends pretend to not know you. This will be awkward, but that’s the point. Learn to embrace the awkwardness.

Simple tricks

The interview process is designed to measure your competence and company fit, and to some extent, you either meet the bar or you don’t. However, there are many small things you can do to shift the odds in your favor - and doing them signals effort and professionalism.

How to get interviews

Getting your foot in the door at big tech companies is tricky. They’ll have careers pages with openings but they’re generally swamped and applying has a low success rate. I’ve had more success with inbound or referrals.

The recruiter intro call

Step 1 in the process at most companies will be a short “informal” call with a recruiter. They will explain their process, they’ll tell you who your hiring manager is and what team they’re on, and for startups, what the company’s mission and strategy is. They might also ask you about compensation expectations. During this call, take notes! I didn’t do this, and regretted it. This might be the last time someone will explain the org chart and team structure, and I’ve had coding interviews 2-3 weeks later where someone would ask what role I was applying to and I didn’t know.

The hiring manager chat

At some point, you’ll likely speak to your hiring manager. After this call, they need to be convinced that you have the skills to do the job that they’re hiring for, and that they will personally enjoy working closely with you for the next few years. There are no cheat codes or secret tips. Your hiring manager generally will have more experience than you, have good judgment and know proprietary information that you don’t (for example, the exact job description). However, there are a few things you can do.

You are pitching your current employer almost as much as yourself

I was surprised how often I’d be asked about Imbue, from our research and technical approach all the way to the company mission, business plan, revenue model etc. I’m not sure why  - especially since I cannot disclose that information - but my sense is that some interviewers are just curious, and some interviewers may treat your ability to explain the company mission as a sign of competence and your current choice of employer as a sign of good or bad judgment. Regardless, make sure you have practiced your company pitch, and are able to connect your day-to-day technical work to the overall goal of the company. This shows leadership, I guess.

Behavioral interviews

Most big tech companies have a version of a leadership interview. The Amazon Bar Raiser and Googleyness interviews are notorious. With preparation and practice - around 10 hours is probably enough - you can ace these. There are many articles and videos you can watch and I have little to add.

Coding interviews

Coding interviews will make up the majority of your time and it is where the battle is often won or lost. One very important concept is to understand the psychology of the coding interview, and leverage it to your success. The goal of the interview is not to write good code, or to pass tests, or to calculate complexity - it is to make the interviewer feel positive about you as a future colleague. I’ve passed interviews in which I wrote almost no code.

What to prepare:

Tricks:

1 def bubble_sort(arr: list[int]) -> list[int]:

2     n = len(arr)

3     for i in range(n-1):
        4         for j in range(n-i-1):
        5             if arr[j] < arr[j+1]:
        6                 arr[j], arr[j+1] = arr[j+1], arr[j]

When implementing this, you may find yourself wondering (or your interviewer might ask) if it really should be n-i-1 or something else. You can handwave that away or try to talk through it at the time, but my solution is to leave todo’s, so on line 4: #todo: check indexing and line 5: #todo: < or >? And when you finally run this code and find that it is wrong (it sorts descending), having left the todo explicitly in the code allows you to turn a failure into a win: “Ah yes that’s what I worried about. It should be > not <. That makes sense. Cool, I’ll delete this todo now”.

One downside of leaving todo’s is that it might make it more obvious when you’ve overlooked something. For example, in one interview I had to implement a method from a paper and started with

X = torch.zeros([N,N]) #todo: check if initialized at 0?

and then forgot about it. I did not pass that one…

assert all(x<=y for x,y in zip(arr, arr[1:])) #arr is sorted

And this might help you remember that fact, or catch bugs if that assumption wasn’t true in some edge case, or you made a typo in the upstream code. You can always comment them out or delete them at the end.

ML Domain interviews

You may get scheduled for a domain interview, or something similar-sounding. These vary wildly in content, from exam-style questions and answers, to a discussion of a paper you’ve written to “tell me what you’re working on”.

Negotiation & Decision

 

When I started applying, my mental model was that after you conduct interviews, you get rejected at 50-75% of places, get some offers, compare them, negotiate and make a decision. Sadly, this is not how it works. After you pass the official rounds and receive a congratulatory call from your recruiter, there can be more rounds of chats, you might have more onsites, and you might not actually get formal offers for a while. You also have the opportunity to negotiate. I don’t know this world well, but the one thing I’d say is to avoid focusing exclusively on compensation. We’re ML researchers, when we see a number for which higher is better, our instinct is to hill-climb. And you can. But don’t let the number distract you from everything else that influences your quality of life: your team, the mission, the location, the company culture, the food (but actually). Yes, money is nice, but don’t sacrifice happiness for money - that defeats its entire point.

Finally, there will come a point where you actually have to decide what you want to do with your life. If OpenAI has given you an offer, you should take that, it really is a blast here ;) If not, go work for whichever company will put a smile on your face every time you walk through the front door.

Final thoughts

Interviewing is rough and stressful, but also a skill you can master. I hope some of the above helps you in your journey, and I hope we’ll get to work together ;)


Appendix: Learning resources

Here are some resources that I or friends of mine have used to study. I cannot vouch for these, but I hear good things.