# AI Safety Fellow Interview Experience

**Company:** Anthropic  
**Position:** Machine Learning Engineer  
**Interview Date:** A year ago  
**Location:** United States  
**Onsite:** Yes  
**Timespan:** 3 weeks  
**Difficulty:** Difficult

> The weirdest part was the final round: they dropped me into a Google Colab notebook with maybe 20 to 30 lines of skeleton Python and asked me to debug an actual LLM inference step, but you were explicitly not allowed to use an LLM.

## Interview process

This process felt very different from most of the interviews I've done. There was no classic DS&A round at all. Instead, they tested raw coding implementation speed early on with database-style CodeSignal rounds, and then the final loop shifted hard into research thinking and a pretty fundamental understanding of LLMs.

The most unusual part was the structure of the final: a 15-minute open-ended alignment brainstorm with almost no interviewer feedback, followed by a 55-minute Colab notebook exercise where I had to complete part of an LLM inference workflow.

- Online assessment  
- Technical interview  
- Final round

## Interview tips

I'd prep for this by focusing less on textbook coding patterns and more on writing clean code fast under time pressure. For the coding rounds, be ready for implementation-heavy problems where passing tests and debugging edge cases matter more than clever tricks. For the final brainstorm, read as much as you can about Anthropic's safety and alignment research beforehand and have your own research ideas ready, because the question is open-ended and you may get basically no feedback in the moment. Also, the interview emails were actually pretty clear, so I'd study those carefully and make sure I understand the format before going in.

## Company culture

My impression was that Anthropic was hiring for core thinking speed and research taste more than for polished interview-game performance. Even the coding rounds felt practical and implementation-heavy, like they wanted to see whether I could reason through systems and work with data fast, not just solve a trick problem. They also seemed pretty standardized and strict about no LLM use, which to me suggested they cared about seeing my unaided thinking process even for roles that would obviously use LLMs on the job. Because this fellowship was still relatively new when I interviewed, the whole thing also felt like an early-cohort process that was more specialized and less documented than a normal big-company loop.

## Questions asked

### Overview of assessment  
I started with an automated CodeSignal that felt way more like pure implementation than LeetCode. It was an in-memory database problem broken into four progressively harder rounds, and the big thing was speed because you only got to the harder parts if you cleared the earlier test cases quickly.

### Specific questions asked  
1. **Implement an in-memory database** in CodeSignal, with each round adding more functionality.  
   - Add extra behavior like TTL / time-to-live and make sure the implementation passes the platform's test cases before moving on.  
   - I used Python and got through the early dictionary-style lookup stuff very quickly. The rounds got progressively more complicated, and one of the added requirements was TTL.  
   - The platform gated progress on passing hidden or semi-hidden test cases, so I had to keep running and debugging edge cases as I went. I finished 3 of the 4 rounds before time ran out, which gave me a 750/1000, and that was enough to move on.

### Next round  
The next round was another database-flavored coding interview, but this time live with an Anthropic engineer over Zoom. The distinctive part was that the prompt was dense and took a while to unpack, so the round felt as much about clarifying ambiguity and communicating as about writing code.

1. **Implement a streaming database with the given constraints and requirements.**
   - Extend or improve the database you just built with a second part that added more functionality.  
   - This one took me maybe 10 to 15 minutes just to fully understand because there was a lot of text and I was getting lost in some unnecessary details. I had to slow down, ask clarifying questions, and confirm the scope and constraints before coding.  
   - Once I understood it, I explained my approach, picked the data structures I wanted, and implemented the first part successfully. I didn't finish the second part of the code before time ran out, but I walked the interviewer through my logic, and my impression was that they cared a lot about how I think and communicate, not just whether every line was perfect.

### Final loop  
The final loop had two very different pieces. First was a super short 15-minute research brainstorm with a potential mentor where I got almost no signal about whether I was going in the right direction. Then there was a 55-minute Colab-based LLM coding round that felt like debugging or completing part of an inference pipeline rather than doing a normal algorithm problem.

1. **How would you think about aligning an AI model with the intended objectives and preventing misaligned or harmful behavior?**
   - The discussion was broad and open-ended, around alignment rather than ethics in a generic sense. I talked through ideas around preventing bad actors from pushing the model toward bad use cases, detecting misalignment, and training models to behave more in line with the intended objectives. What made it hard was that the interviewer basically didn't give feedback while I was brainstorming, so I couldn't tell if I should keep pushing a line of thought or pivot.
   - In a provided Google Colab notebook, fill in the missing code to implement part of an LLM inference or output-processing step. Complete the provided functions so the model output is processed correctly based on the interviewer's expectations.
