Getting to Know Dmitri Nesteruk: Quant Finance and Developer Tools
In this interview we speak with Dmitri Nesteruk (@dnesteruk), JetBrains Developer Evangelist. We will talk a bit about his background, learn about his interest in Quantitative Finance, and hear his opinion on the impact of our upcoming JetBrains C++ Tools. Meet Dmitri in Prague, December 18th, for our free evening event, JetBrains Tools for .NET Developers.
Welcome Dmitri. Can you tell us a bit about yourself and your background?
Well, I was born in Russia but left it just before the collapse of the Soviet Union, and grew up in Sweden and the UK. I got a B.Sc. in Computer Science from the University of Southampton, and even took a shot at doing a PhD but bailed out and ended up working as a developer and then process manager for the European subsidiaries of Emerson Electric. My background is in software engineering, particularly C++ and C#. I’ve done a bit of everything, starting from WinForms/ASP.NET going to pure numerics in C++ and MATLAB. Most of my recent endeavors involve applications of technology in finance.
How long have you worked at JetBrains and what are your responsibilities?
I’ve been with JetBrains just over 3 years. My official job title is Developer Evangelist, and my work mainly involves travel to events to give talks on various products and technologies. I stick mainly to the .NET side of things, but am very excited that we’re going to have a C++ presence very soon.
You are an instructor of an entry-level course in Quantitative Finance. What is it, why should we care and how does it relate to your job at JetBrains?
Well, first of all, it’s worth noting that developer evangelists are, by and large, very much into consulting and doing trainings/workshops, and typically get exposure in specific fields of technology application. That field could be cloud computing, infrastructure management, practically any domain that uses computers. It can, of course, be the domain of software engineering itself, which is what JetBrains is about – tools by engineers, for engineers.
My domain of choice is Quantitative Finance, and it’s basically the application of mathematical and statistical apparatus for the analysis of the financial markets. Quant Finance is actually a marriage of three disciplines: finance, mathematics, and computing. It puts heavy demands on the person’s skills as it’s mainly a mathematical discipline where knowledge of technology is simply ‘assumed.’ However, there’s also a lot of programming involved.
I certainly don’t claim to be in any way an expert in the field, but I do run an online intro-level course on Quant Finance that helps students get acquainted with the subject while at the same time helping me get acquainted with some of the trickier aspects of the field that I come across. Of course, my participation in the field is not limited only to tuition.
Tell us about the tools used in Quant Finance. What kind of hardware, software and programming languages are being used?
Let’s start with hardware, first of all. As you can imagine, the financial world is one of the main consumers not just of business-grade equipment (that’s a given) but also all sorts of cutting-edge hardware. High-frequency trading firms will do just about anything to win the speed race, which implies using technologies like CUDA as well as custom hardware (e.g., FPGA-based feed handlers). Anything to get the calculations and data processing done faster.
And speaking of calculations, there’s lots of requirements there as well. A single-day market order snapshot, for example, can come in at over 8 GB, and if you need to process three months of them, this requires quite a bit of processing power, so in the quant world, Xeon-based desktop setups with 192+ GB RAM as well as PCI-based SSDs are not unheard of. Computer setups with lots of monitors are also very common – and not just for traders!
As far as software is concerned, there is a divide here between what’s used for analysis and what’s used for execution (i.e., the software that actually performs trades). A large proportion of analysis happens either in Excel or in computer algebra systems such as MATLAB. But when simulations get too big or too slow using these tools, people write those themselves, quite often using C++ and popular libraries such as QuantLib. We also see an interest in other programming languages, most notably F# (see, for example, the recent F# in Finance events), as well as Python (NumPy), which can also be used for numerics.
Incidentally, analysis of large volumes of data is quite often done across computer clusters rather than individual machines. This is particularly the case for Monte-Carlo simulations, where the same process is simulated over and over and having more realizations of the process to look at increases the statistical strength of the results. Personally, I conduct most simulations using a large cluster of CPUs as well as NVIDIA Tesla and Intel Xeon Phi cards. On the execution side, I also use GPUs plus some custom-built hardware that’s specifically designed to calculate certain models or parse certain data formats ‘in silicon.’
Have people in Quant Finance heard of JetBrains? Why should they care?
You have to keep in mind that an investment institution’s activities involve a lot more than math: there’s document management, compliance and a myriad of things that make an investment business function. A lot of software is either written in-house or subcontracted to third parties. This software can use a large array of languages, and we’ve got IDEs that cover the spectrum, plus tools for profiling, bug tracking, continuous integration, etc.
Of course, if we’re talking purely about Quant Finance, the #1 reason that financial institutions should care, is that JetBrains is entering the C++ space, aiming to bring the convenience of our C# and Java-based tooling to all users of C++. For users of Visual Studio, we’ll have awesome C++ support in ReSharper, and by awesome I mean being able to flawlessly handle preprocessor definitions and template recursion/metaprogramming scenarios. And for all other users, we’ll have a standalone IDE that will bring similar benefits to all platforms.
Do you have a good Quant Finance joke to leave us with?
I really like this joke, which is a variation on the popular “engineers and accountants” joke.
“A group of quants and actuaries are all traveling to the same conference. The actuaries go by train and spend the entire trip cramped in a single bathroom to avoid buying tickets. The quants take the corporate jet.”
Thank you Dmitri for your time. We look forward to your JetBrains .NET Tools Evening in Prague.
Subscribe to Blog updates
State of the event industry: the perspective of tech conference organizers and developers
“I don’t think the fundamental reason why people attend conferences has changed or is going to change – it’s about those meaningful connections.”Kevin McDonald, Chief Commercial Officer at Web Summit TL;DR The event industry has had to change significantly to adapt to the pandemic and it is co…
JetBrains at the ICPC North America Championship 2020
The first ICPC North America Championship (ICPC NAC 2020) took place February 19–23, 2020. The top teams from the ICPC North America Regional Contests advanced to the ICPC NAC in Atlanta, Georgia, hosted by the College of Computing at the Georgia Institute of Technology. JetBrains was proud to be a …
Software Development the JetBrains Way: Dogfooding and Other Key Principles
JetBrains has turned 20, and over the years, we've honed methods for development that match the style, values, and needs of our company. These processes work so well for us that we want to share them with others. Dogfooding, for example, has always played a central role in the development of our pro…
An Interview with Jakub Chrzanowski, .ignore Plugin Author
In this interview, we speak with Jakub Chrzanowski (@hsz @hszanowski), the author of the .ignore plugin for the IntelliJ-based IDEs. This plugin lets you mark matched .ignore files in project view, assists with editing them, and helps you generate ignore rules using templates. Welcome, Jakub! Befor…