Got the rejection email three weeks ago. Had some time to sit with it, talked to the recruiter briefly, and want to write the post-mortem I wish I'd seen before I started.
Background: I was interviewing for a software engineering role on the tech side (not trading, not quant). The loop was a phone screen with a recruiter, a technical phone screen with an engineer, and then a five-round onsite: two coding rounds, one system design, one behavioral, one domain-specific.
Where I think I failed, honestly.
The coding rounds weren't where I expected to struggle. I practice consistently on LeetCode, hit mediums and occasional hards without too much trouble. But Citadel's coding rounds felt less like "solve this puzzle" and more like "write clean, idiomatic code you'd actually ship." I rushed. I got to solutions but they were a bit hacky and I didn't communicate my tradeoffs well. I fixed issues when prompted but I should have been narrating more naturally throughout.
System design was the bigger gap. I'm a mid-level engineer and my system design prep was oriented toward "generic distributed systems" questions. The Citadel round felt more like: here's a real financial data problem, design something that handles it. I leaned too generic. I should have spent more time preparing to talk about latency-sensitive architectures, data consistency in financial contexts, fault tolerance requirements that matter in trading infrastructure.
The behavioral round I felt okay about in the moment. But in retrospect I think my answers were too focused on technical problem-solving stories and not enough on moments where I influenced across teams, dealt with ambiguity, or navigated real organizational friction. That's what they want at the senior+ level.
If I prepped over again: more emphasis on clean code habits (not just correct code), practice explaining system tradeoffs specifically in fintech or trading contexts, and broader behavioral story prep. Good luck to anyone going through it now.