Lots and lots of C. (I'm mostly an embedded C programmer these days). Some C++ for a bit of higher-level "business logic" that benefits from a class-based approach, but a fairly limited subset of "modern" C++.
Coming from the HFT side, I find C++ surpasses C in a lot of ways for optimization work. Mainly you can use integer template arguments and generic functions to abstract all the boilerplate in a way that is more safe than C macros. For a semi-contrived example, instead of writing a do4Things() and do8Things() to unwind some loops, I can write template doThings() where the int argument is the bound on the loop. And hav…
But when it comes to using things like custom allocators, etc. it's a nightmare. Or a lot of the compile time "traits".