Answer by Laurent Bernut:
Junior-mid level means your programing skills may be good, but your understanding of the markets is still shallow.
Coding is a formidable asset. If investing is a process, then it should be automated. That said, my advice would be to red about markets at least as much, if not more than coding language. Those who succeed extend their domain expertise.
4 types of shops You may land into: discretionary fundamental, classic quants, HFT and systematic CTA trend following style
If You land in a fundamental or discretionary shop, You will be frustrated. Systematic trading is frowned upon. They believe in the superiority of man over machine. Deep down, they feel threatened. They refuse to admit that if investment is a process as the marketing pitch, then the logical conclusion would be to automate it. Do not underestimate this point. They will experiment with You, because they recognise they need more process, but they will probably not cross the final step of trusting the machine.
You will probably be asked to program some strategies. They will be ill conceived, because they focus on entry as opposed to exit and money management. Discretionary investors focus on stock picking.
So, strategies will work until they won't, then back to the drawing boards. One of the big frustrations is the inability to communicate between programmers and front office people. They want "something that looks good, or looks like that". They cannot articulate their thoughts in a formalised manner. It will be an endless: Him" This is not what i want", You: "but this is what You told me", Him: "this is not what i want, do it again"
Make sure You code in modules, because there will be a lot of editing
Classic quants: Matlab and multifactor. This is academia meets markets: complexity, underwhelming but steady returns. It does not mean that those funds do not get big. Some do.
Same story, it works until it does not, then back to the drawing board and let's add yet another factor to the 64 pre-existing ones.
One word of caution: ask if they follow a mean reversion strategy. If they do, ask if they double down when something goes wrong and if they have a stop loss. If they double down or do not have sytop loss, then next. They follow a martingale bet sizing. Martingale has an interesting probabilistic property called "certainty of ruin", LTCM 1997 and the Vol funds in 2008
All in all, it is good if You want to explore abstract concepts, write white papers.
HFT. This is programmers' paradise. This is by far the most sophisticated domain when it comes to programming in finance. This is where the best and the brightest go. Highly competitive. You will learn about the mechanics, the pluming of the markets, not the markets themselves though. You will also learn about game theory as the latest generation of algos are designed not necessarily to trade but to induce or block other algos, fascinating stuff. The drawback is that it is an arm's race. Either You are in front of the queue, either you pay for someone else's lunch
Systematic trading, CTA style. That is what I do, but on lower frequencies than classic CTAs. The basic premise is if investment is a process, then it should be automated. Unlike discretionary investors, CTAs have done their homework, they understand trading is about probabilities. They accept they will fold a lot but win big sometimes. In terms of programming skills, it is not demanding. You may feel not challenged enough after a while.
In my opinion, this is the least abstract out of the 4. You will learn about markets. There is no subjective beliefs like in the discretionary world. Everything is tested ad nauseam. There is no factor isolation and obscure magical concoction as in quants. There is no order re-routing, spoofing.
It is also less demanding in terms of hours. Let the machine run until You have an idea, test it and if it works implement. You may find it not challenging enough.
Last but not least, as You develop your craft, ask about IP. Earlier this year, i declined an offer to join a HF: they wanted an usually long probation period (something that would extend beyond coding, testing and real trading), but of course keep the IP…