Passionate employees who know their respective fields very well and work hard. Great compensation. Getting specific tech or tools to use isn't a problem (money-wise, anyway). Still, this depends on the team you're on. If you have a good boss (and boss's boss), you'll probably have a great experience. The challenges at the scale Citadel operates at are uniquely interesting, and they have some awesome solutions to some of these challenges. Great office, food, gym, perks like that. Generally good hiring culture (depending again on the team).
The worst siloing I've ever seen at a company. There are multiple bug tracking tools, code repository systems, wikis, and even chat/communication tools. It varies from department to department and team to team who uses what, making collaboration nearly impossible.
It is very difficult to make an impact on the tech since it is so spread out.
You could end up on a very siloed team with very little access to anything, and your boss expects you to work all the time, including nights and weekends.
Lots of teams want to just buy solutions and build their own spaghetti systems instead of leveraging what's already been built elsewhere (within Citadel and from the open-source community). Sometimes this isn't even really their fault; they just don't know what's out there.
Some of the code you'll find is comically bad because of deadlines, "not invented here" syndrome, and simply asking quants and traders to build software. This goes for use and abuse of databases and queuing technologies as well.
There is very little service-oriented architecture. Lots of monoliths. There is a poor understanding of basic software engineering concepts like fault tolerance, retrying I/O, and exception handling, etc.
Set better company-wide work/life balance guidelines. Don't expect anyone to work nights and weekends all the time—that makes for unproductive workers and uninspired thinkers.
Build up a common tech stack that supports all modern languages and a few databases. Make sure every technologist can access and use the same codebase so there aren't a million reimplementations of the same things.
Embrace open-source technologies. Commit back to projects you can. This is huge.
Instead of trying to hire more people, let the people you already have form larger, cross-departmental groups so they can build a few, well-architected things instead of trying to build and manage many things on their own.
Let good engineers come together to build great systems over a long period of time instead of trying to rush a tiny team to build complicated, bespoke scripts.
Virtual HackerRank with multiple-choice questions as the first round. Two coding problems and then ten multiple-choice questions related to caching, industry-specific topics, etc. Did not make it to the next rounds.
The first round is a tech interview. It begins with a resume check, then a coding question related to data structure design. You design the structure while communicating with the interviewer about the need. I was expecting a LeetCode-style question,
I had a first-round technical interview. It was straightforward, and I thought I did quite well, but I did not advance to the second round.
Virtual HackerRank with multiple-choice questions as the first round. Two coding problems and then ten multiple-choice questions related to caching, industry-specific topics, etc. Did not make it to the next rounds.
The first round is a tech interview. It begins with a resume check, then a coding question related to data structure design. You design the structure while communicating with the interviewer about the need. I was expecting a LeetCode-style question,
I had a first-round technical interview. It was straightforward, and I thought I did quite well, but I did not advance to the second round.