- 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 and it varies from department to department and team to team who uses what. This makes collaboration nearly impossible.
- Very difficult to make an impact on the tech since it's so spread out.
- You could end up on a very silo'd 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.
- Very little service-oriented architecture. Lots of monoliths. Poor understanding of basic software engineering concepts like fault tolerance, re-trying i/o, exception handling, etc.