← Back to Directory

Citadel interview notes, page 10 of 14

Large Enterprises

Most of these Citadel write-ups come from Software Engineers (106), then Data Scientists (33) and Machine Learning Engineers (1). The most reported rounds are the technical phone screen (111), the system design round (16), the onsite coding round (4) and the behavioral / leadership round (3).

140 interview notes · updated Oct 2026

Citadel·Software Engineer·Technical Phone Screen

Jun 2026
Citadel SWE interview with two fairly meaty technical questions. One was a deep dive on hash map internals and the other was an array intersection problem with a tricky generalization. Left feeling like I could've gone deeper on a few things.
  • Walk me through how a hash map works under the hood: the bucket structure, how the hash function is chosen, how collisions are handled, when and how resizing happens, how deletion works, and what the real time and memory trade-offs look like.
  • Given k integer arrays, find all integers that appear in every single array. Then generalize: return integers that appear in at least t of the k arrays, where t can be any value from 1 to k. Analyze complexity and handle edge cases like duplicates within a single array or empty arrays.

“This felt like it was going to be easy and then just kept going.”

View Post

Citadel·Software Engineer·Onsite - Coding / Algorithms

Jun 2026
Citadel coding round, one question, LFU cache from scratch. Pretty brutal if you haven't thought about frequency bucketing before.
  • Design and implement an LFU cache with get and put operations, both running in O(1) average time. On eviction, remove the least frequently used entry, breaking ties by recency.

“The O(1) constraint is what makes this annoying.”

View Post

Citadel·Software Engineer·Onsite - System Design / Architecture

Jun 2026
Citadel system design round focused on a real-time alerting problem with some interesting distributed systems follow-ups. The core problem felt manageable but the follow-up questions pushed into territory I wasn't fully prepared for.
  • Design a system that tracks mappings from applications to exchanges, where each application can map to multiple exchanges, and triggers an alert when a single exchange gets mapped to too many applications within a sliding time window. You decide the alerting logic, thresholds, and window behavior.
  • How would this alerting system change if it needed to run in a distributed or parallel environment, and how would you support multiple concurrent alerting rules each with their own window sizes and thresholds?

“The open-ended part tripped me up more than the actual implementation.”

View Post

Citadel·Software Engineer·Technical Phone Screen

Jun 2026
Citadel software engineer interview with a classic BST implementation question. Nothing flashy, just raw coding under pressure and hoping you remember how in-order successor deletion actually works.
  • Implement a Binary Search Tree class in C++ from scratch, including insert, search, and delete operations. Your delete function must correctly handle leaf nodes, nodes with one child, and nodes with two children using in-order successor replacement.

“The insert and search parts were fine, knocked those out pretty quick.”

View Post

Citadel·Machine Learning Engineer·Technical Phone Screen

Jun 2026
Citadel ML Engineer interview hit me with a deep-dive on MoE routing gradients. One question, very technical, felt more like a research discussion than a standard interview.
  • You have a Mixture-of-Experts router using hard routing decisions like argmax, which aren't differentiable. How would you modify it to make the routing learnable via gradient descent? Walk through at least two approaches, compare them on training stability, output quality, compute cost, and implementation complexity, and explain how you'd handle things like load balancing and expert collapse.

“This one took me a second to organize because there's genuinely a lot to say.”

View Post

Citadel·Software Engineer·Technical Phone Screen

Jun 2026
Quant interview at Citadel with a probability/combinatorics problem that looks deceptively simple until you actually sit down and grind through the cases. One question, clean setup, but the arithmetic at the end is where things get slippery.
  • Five people each independently pick one of two locations (A or B) with equal probability. Let X be the number of people at whichever location ends up less crowded. What is E[X]?

“My first instinct was to overcomplicate it.”

View Post

Citadel·Software Engineer·Technical Phone Screen

Jun 2026
Citadel SWE interview threw a 2048 simulation problem at me, which I did not expect at all. Two parts: implement the actual game move logic, then encode the whole board into a 64-bit integer. Felt like a systems-y puzzle dressed up as a game, and I had mixed feelings about how I handled the encoding half.
  • Implement a move function for the 2048 game on a 4x4 grid. Given a board and a direction (left, right, up, down), return the new board state after applying standard 2048 slide-and-merge rules.
  • Implement encode and decode functions that pack a 4x4 2048 board into a single 64-bit integer and recover it losslessly. Each cell should be stored as a 4-bit exponent.

“The sliding part was fine, I just treated each row or column as a 1D array and wrote a helper to compact it left.”

View Post

Citadel·Software Engineer·Technical Phone Screen

Jun 2026
Citadel SWE interview with a calendar scheduling problem that sounds straightforward until you actually have to handle all the edge cases they throw at you. Solid algorithmic question with a system design flavor baked in.
  • Given K participants' calendars, each containing sorted non-overlapping busy intervals within a working window, and a required meeting duration, find the earliest available time slot that fits within all participants' working hours and avoids all busy intervals. Also discuss time and space complexity, and how you'd handle unsorted or overlapping inputs and large K.

“The core merge logic wasn't too bad once I realized you just sweep through all busy intervals across calendars and find gaps.”

View Post

Citadel·Software Engineer·Onsite - System Design / Architecture

Jun 2026
System design round at Citadel for a software engineering role, focused entirely on building a distributed job scheduler from scratch. The scope was pretty wide and they pushed hard on failure handling and trade-offs, which I wasn't fully ready for.
  • Design a distributed job scheduler that supports cron expressions, fixed-delay schedules, and DAG-style dependencies between jobs, at the scale of millions of jobs.
  • How would you handle at-least-once execution semantics while keeping workers idempotent? Walk through the trade-offs versus exactly-once.
  • How do you handle missed job runs, worker crashes mid-execution, and poison-pill jobs that keep failing?
  • Compare pull-based versus push-based dispatch for delivering jobs to workers. Which would you choose and why?
  • How would you implement per-tenant fairness in the scheduling priority queue while still maintaining low overall scheduling latency?
  • What observability would you build into this system, and what metrics matter most?
  • Should the scheduler use a single elected leader or a partitioned multi-leader design? What are the failure modes of each?

“This was the core question and it ate the whole session.”

View Post

Citadel·Data Scientist·Technical Phone Screen

Jun 2026
Citadel data scientist interview, got a meaty end-to-end EDA question that covered basically everything from data types to correlation heatmaps. More of a coding/analysis exercise than a pure algo grind, which I wasn't fully expecting.
  • Given a pandas DataFrame with tabular data, walk through a full exploratory data analysis: inspect column types, compute feature scales and flag potential outliers, summarize missing values, generate basic statistics, plot a correlation heatmap, and finish with a written summary of data quality issues and suggested next steps.

“This was a lot to fit into one question.”

View Post