Optiver·Software Engineer·Technical Phone Screen
May 2026
Phone screen for a software engineering role at Optiver, centered on a freight-scheduling system written in Python. Three-part deep dive: code review for correctness, complexity analysis and data structure improvements, then concurrency and scalability. The codebase was handed to you and you had to both implement and then critique your own work, which is a weird but effective format.
- You've just implemented process_order in a freight-scheduling codebase. Step back and critically review the entire codebase for bugs and unhandled corner cases. What categories of issues would you look for and how would you verify them under time pressure?
- What is the time complexity of the baseline process_order implementation, and which data structures would you change to improve it across m orders and n planes?
- Is this scheduler thread-safe as written? Walk through exactly what goes wrong under concurrent order processing, then design an approach to make it safe. What would you change if order volume outgrows a single machine?
- How would you support order cancellation or plane removal without breaking the amortized complexity you described?
- If the process crashes mid-allocation, what state could be corrupted and how would you add durability to recover cleanly?
- How would you test the concurrent version of the scheduler to reliably catch oversold capacity?
“This one tripped me up because I'd just written the function and felt weirdly defensive about reviewing it.” The rest of the author's notes on Software Engineer interview at Optiver, Technical Phone Screen round, covers how they worked through the question, what the panel pushed back on, and what they would do differently.
View Post