Sharing two questions I got when I interviewed for Citadel EQR in November 2025, for anyone preparing. It was a while ago, so this is mostly put together from memory.
Question 1: Battleship design
This one was mainly a discussion about how to design Battleship. I started from the basic classes and interfaces, then talked through the game operations, the board state, and how to determine whether an attack hits a ship, and so on.
Question 2: Reading and optimizing a Python async DAG codebase
The interviewer gave me a fairly large Python async task codebase, where the dependencies between tasks are represented as a DAG. The code ran slower than expected, and I had to read through the existing implementation, find the cause, and optimize it.
The focus of the investigation was the startup time of each job. The optimization idea after that was to merge any job that has only one parent into its parent, which reduces the number of job startups and so cuts the startup overhead. In the end I had to implement two functions for the merging in the existing code.
I don't remember the full constraints on the merge conditions clearly, or the exact interface of each of the two functions, so I'll leave them out rather than mislead anyone.
Hope this helps anyone preparing for the EQR interview!
Discussion
Loading comments…