4 ms·
Ask HN: How to prepare for algorithm trading interview as a developer
- dsacco 9y agoIt'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.
- deleted 9y ago[deleted]
- AppeasingRoko 9y agoHey! 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.
- Abynthe 9y agoI (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!
- sharemywin 9y agoSound 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.
- wolco 9y agoTry showing them something similiar you built.
- dsacco 9y agoThis 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.
- rpedela 9y agoWhy 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.
- dsacco 9y agoBecause 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."
- chad_strategic 9y agoOn a side note, where do you find these kind of jobs specific to trading or finance?
- atemerev 9y agoefinancialcareers, 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.
- SirLJ 9y agoI would second the idea to show a sample trading algorithm based on some trading system, it would show passion and self start...
- rl3 9y agoWith 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.
- AppeasingRoko 9y agoMy 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.
- rl3 9y ago>... 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.