(See also http://bigblog.tanbin.com/ post on HFT)
Just to share some observations and reflections. More than one Asia (and to a lesser extent US) recruiters have reached out to me as a potential lead-developer for a HFT engine, to be created from scratch. I believe there are not many old hands in Singapore. Even in the US, this is a relatively small circle. Not a commodity skill.
A small trading shop would have very different needs than a big bank, so their HFT engine will use off-the-shelf tools for most but the most critical, customized modules. (I had a brief blog post on it.) What are the 10 essential know-how i.e. Essential functionalities you must know how to create (prove)?
• executing strategy for order origination, i.e. machine trading
** market data processor
** order book? perhaps at the center of the engine
** not needed — how to come up with strategies
• in-sample testing
• barebones GUI, or perhaps command line interface?
• FIX or other exchange APIs
* store historical data for analysis. Perhaps SQL or KDB.
• data persistence without SQL
Low-level tech knowledge
• [W] Boost
• [N] memory leak detection
• [N] unit testing
• [NW] socket programming
[N = Not needed in every shop, but often required by interviewer]
[W = my weakness, relatively speaking]