It's hard to provide very detailed advice without knowing what exactly you're doing - are you developing market making algorithms? Working on execution algorithms? Implementing strategies developed by researchers? Is this a hedge fund or a prop trading firm? There is a lot that can encompass "quantitative developer" in the front (and back!) office.
There are three standards that you can think of as the Cracking the Coding Interview of quant finance (insofar as that is a homogenous field, which it isn't):
1. Heard on the Street
2. Quant Job Interview Questions and Answers
3. A Practical Guide to Quantitative Finance Interviews
You want to also practice algorithms as you would for a Google/Facebook whiteboard interview, but alongside that drill down on statistics. If you have the time review your linear algebra.
Higher math will be less necessary if you're a developer as opposed to a researcher, but they'll still want it. It's probably in your best interest if you know at least one "serious" language used for performance (C++, Java typically) while also being familiar with the data analysis libraries of Python.
If you have no experience with finance and you're coming in to that cold, give Options, Futures and Other Derivatives a read. I'm assuming you're in this boat because you're asking the question.
This is sort of catch-all advice. If you're working at Virtu or Jump, you're going to want to know as much as you can about low level programming with regards to latency, networking and memory, because those are HFT firms. If you're working at a place like Two Sigma, Java will be more applicable and you want to know more about statistics and data analysis on a practical level, because you're be implementing the strategies developed by quantitative researchers.
Tailor your approach to the type of trading the firm engages in. I've made two assumptions here - 1) you're interviewing with a firm considered "quantitative" as opposed to discretionary and 2) you're interviewing for a front office role, not a back office role (support, farther from money).
If you give more information about the type of firm and the type of role we can provide much more constructive advice.
Hey! Thank you so much for your answer, it's very helpful. I'll give that book a read. I'm applying for a dev job at Janestreet, which I know is very competitive. I'm a pretty good at maths for a programmer, and pretty good at programming for a mathematician, but I'm not sure if the interview will be a mix of both or specifically on designing algorithms, doing toy problems, etc.
I (successfully) interviewed at Jane Street about 5 years ago at their London office. I ultimately went elsewhere, but I can give a general overview of the stuff we talked about.
My background was, at the time, electronic market making in fixed income with substantial experience in functional programming using languages other than OCaml. Prior to that, I'd done signal processing for radar systems in C++.
We did multiple general programming questions, working on purely functional data structures, system design in functional languages and then some stuff on concurrency and asynchronous systems in OCaml.
The asynchronous systems conversation then ended up with a conversation about some category theory from the viewpoint of a functional programmer - I suspect that arose from my background and I don't imagine it's something they ask everyone about.
Finally we had a bunch of more mathematical questions, where we covered some number theory, some linear algebra and some formal logic. Again, it's hard to say how much of that is part of their normal set of questions and how many of those were specific to my background.
I'm not sure any of that is directly applicable/useful to you, but hopefully there's something that helps!
Sound like a lot of places if you can't impress them with something on your resume. take it off or put in a caveat about you working with it minimally.
With that username, I suppose humanity should be thankful that OP isn't applying for a job in AI. :)
On that note though, I'm curious how useful modern deep learning techniques are for trading. Traditional machine learning for the past couple decades was never terribly useful for entry or exit signals, merely as pattern recognition for ancillary purposes. I'm wondering if that's changed now.
If I was to guess, ML is probably easier applied to longer time frames. On the other hand, it's certainly possible to pipe the output of a GPU supercomputing cluster to an FPGA/ASIC HFT fleet. A slight delay in updating the trading model isn't the end of the world if execution speed remains good.
My not particularly informed view is it wouldn't be great. Overfitting would be the biggest problem, as well as the fact that people design trading software specifically to exploit other trading bots these days.
On the plus side, less human input in trading software may greatly reduce human biases which make us suck at trading.
>... as well as the fact that people design trading software specifically to exploit other trading bots these days.
I figured modern ML would be the first thing firms use for that purpose. Might be interesting though with bots trying to learn the behavior of their counterparts and vice versa. The ensuing feedback loops are probably quite interesting.
efinancialcareers, but mostly through networking. If you are interested in trading and finance, you try things on your own (there are many free market data sources), you are active on profile communities, and eventually you get noticed.
This is risky advice, because it's very unlikely someone without any prior experience can independently develop a trading algorithm that would impress an interviewer. Modern trading algorithms typically have significant amounts of infrastructure, which means you'd have either done this at another firm (in which case, why ask the question), or you've bootstrapped software that correctly handles data processing (multiple types and multiple sources!), performant I/O, data analysis and strategy development, execution methods, risk management and all those assorted goodies, etc.
If the OP wants to show interesting and relevant work, I'd do something like implement an order book client from scratch using the NASDAQ ITCH spec, then add data processing and interesting analysis functionality to it.
I think they will be impressed by any developer, without professional algo trading experience, being able to understand the nitty gritty of how exchanges work plus some basic algos.
Absolutely. But my thesis here is that most developers without that experience won't actually self-learn how exchanges work and develop algorithms with that knowledge. But your point is somewhat covered by my NASDAQ ITCH suggestion :)
I think I haven't conveyed my point very well - I'm not saying developers need to have a working, profitable algorithm to impress interviewers. I'm saying they need to develop what an interviewer would consider to be an algorithm if they call it that, and it's more likely they won't think of things like e.g. exchange protocols and execution models. It's not a good look if you develop what you think is a relevant portfolio item and instead develop something completely orthogonal to it.
But if they can self-learn that they can absolutely try it. It's not about making it a production-capable algorithm, it's about being aware of what constitutes a modern trading algorithm. The unknown unknowns are more prevalent.
I think a better suggestion than developing a portfolio item is just developing the requisite skills in any case.
Why is it "risky"? Pretty strong word to use to mean they may not impress the interviewer. Besides relevant demos are almost always good in my experience.
Because it's extremely difficult to develop trading algorithms in isolation without any prior background. It's difficult for both programming/software development and research/strategy development. It's also a comparatively secretive industry. It's hard to learn how to correctly develop trading algorithms without "opening the kimono" so to speak.
Imagine if you knew how to develop databases very well, it was your company's core competency and you were (rightfully) opinionated about it. Now imagine you're interviewing someone, and they show you a database they developed, ostensibly to demonstrate familiarity or initiative with the subject matter. Except it's not a database at all, and it doesn't at all match the specification for what your firm (or similar firms) would consider a database. It's just a peculiar method of storing data in a custom file structure.
If you attempt to develop a trading algorithm independently and without prior training, you are approximately certain to design something from first principles that is utterly unlike what professionals do on a day to day basis. Take a look at /r/algotrading (or similar forums) sometime and read about the preconceived notions people have about that a trading algorithm is and what it takes to develop one. These are programmers who read about the subject matter, not simpletons. It's just that there is far more development and strategy work for the modal trading algorithm to be close to something resembling professional work, and the unknown unknowns are very difficult to eliminate without explicit guidance.
That's not to say it's literally undoable, I am aware of people who successfully do it. It's just risky, because you have far higher downside than upside in trying to go that route and present your work to a firm. The problem is not just that you might not impress the interviewer, but that they may (for better or worse) believe you have a lot that needs to be "unlearned."
Unless the demo is hello world level, relevant demos are almost always a net positive. They show passion and initiative. Given two candidates being the same, the one with the demo wins. Given ten candidates, the one with a demo is going to stand out even if the demo itself isn't impressive.
I know nothing about trading, but my expertise is databases and search. If someone built a toy database or search engine, I would be impressed even if it didn't come close to Postgres, Elasticsearch, etc. Especially since they would likely be able to answer questions that others would miss, including experienced people, because they built it from scratch. I find it hard to believe that algorithm trading interviews are fundamentally different to every other CS discipline in regards to demos.
In addition, the word "risk" implies danger. There is no danger in failing an interview. Absolutely none. No one dies. No one loses a leg. No one becomes homeless.
I feel like you're contesting my use of the word "risky", but not the substantive point I made. Risk doesn't really imply danger at all in this context, which I would think is self-evident given the usage of the term in colloquial and professional contexts (information security, finance, etc). There are obviously other forms of risk than standing under a piano suspended in the air.
To put my actual point more succinctly: yes, I agree a relevant portfolio item is generally a net positive; my concern is that most candidates without prior experience will develop a "trading algorithm" which is actually irrelevant to the process of trading in most firms. It's not about developing something past "hello world" quality, it's about developing something that resembles what the interviewer agrees is a trading algorithm.
What is the algorithm's core strategy? How was this strategy developed? Was it backtested? Did you overfit? Are you sure? Did you forward test on out of sample data? How does it weight the inputs for identifying eligible securities? Does it dynamically alter these weights in response to real time data? So then how does it process streaming data in a performant way? What time resolution does it require for the data? Okay, now that it's identified eligible securities, how does it manage risk and portfolio size? How many positions can be open and how much of the available capital can be utilized? Why and how are these specific limits enforced? But wait, how is it executing trades? How does it minimize market impact and slippage? How does it attempt to anonymize trades? Are you sure your algorithm isn't predictable? Can it be baited by market makers (i.e. your algorithm is trying to increment up to a minimum bid that will be sold to, which a market making algorithm takes advantage of by raising their price ahead of you)?
If a candidate develops an algorithm that handles considerations like these and can reason about them intelligently (if not necessarily correctly) in an interview then yes, it's impressive. They don't need it to be complete and ready to deploy, they need to understand why all of these things matter. If they don't, they haven't developed a trading algorithm, they've just slightly automated point and click trading on an Interactive Brokers GUI.
There are three standards that you can think of as the Cracking the Coding Interview of quant finance (insofar as that is a homogenous field, which it isn't):
1. Heard on the Street
2. Quant Job Interview Questions and Answers
3. A Practical Guide to Quantitative Finance Interviews
You want to also practice algorithms as you would for a Google/Facebook whiteboard interview, but alongside that drill down on statistics. If you have the time review your linear algebra.
Higher math will be less necessary if you're a developer as opposed to a researcher, but they'll still want it. It's probably in your best interest if you know at least one "serious" language used for performance (C++, Java typically) while also being familiar with the data analysis libraries of Python.
If you have no experience with finance and you're coming in to that cold, give Options, Futures and Other Derivatives a read. I'm assuming you're in this boat because you're asking the question.
This is sort of catch-all advice. If you're working at Virtu or Jump, you're going to want to know as much as you can about low level programming with regards to latency, networking and memory, because those are HFT firms. If you're working at a place like Two Sigma, Java will be more applicable and you want to know more about statistics and data analysis on a practical level, because you're be implementing the strategies developed by quantitative researchers.
Tailor your approach to the type of trading the firm engages in. I've made two assumptions here - 1) you're interviewing with a firm considered "quantitative" as opposed to discretionary and 2) you're interviewing for a front office role, not a back office role (support, farther from money).
If you give more information about the type of firm and the type of role we can provide much more constructive advice.