How to be this 100X software engineer for the financial industry?
Software is eating the world if it doesn’t already then top coder like you are part of the most important human resource of the world because you have or can gather the skills required to design and build software for any kind of industry given that you have taken the time to learn not only programming but also the in and out of the industry you will wanna apply your programming skills. Being specific about the industry into which you want to apply your programming skill is important that’s why this article and the next that I will be publishing here in TopCoder will be about the financial industry. I will be trying to provide you all the information you need to be this top coder in a bank, a hedge fund, or an investment firm. In this first article of TopCoder for Finance, the series of articles about coding for the financial industry will be about how to be a Top coder for the financial industry. I will provide you here the core set of tasks and goals needed to adapt your programming skill to this industry and what kind of knowledge you will need and the mental state that you should have.
First of all, if you want to be a Top Coder for the financial industry learning should be a lifelong commitment because the financial industry like the tech industry is constantly evolving and changes in this industry happen daily to not say instantaneously. For example, A stock price change every millisecond. I will be going into topics of coding high-frequency trading systems where changes are measured in milliseconds but before let’s discover the set of programming languages that you will need to master.
C and C++
C and C++ are the most important language in the financial industry if you are positioned in a front office team. Because front office teams in an investment firm like a bank are the teams interacting directly with the market speed is the most important factor. You or the system you have build will have to quickly react to the market by doing what’s required to do given last seen changes like executing an order to buy 10 000 shares of Microsoft and sell 10 000 of Apple. As speed is of concern in such kind of team C and C++ are the most used language because with this language you can build a faster system by handling the memory management yourself and for building custom firmware for some hardware. I will be coming back to this usage o
Python and R
These two languages are put together in this part because they serve the same needs in the financial industry. They are used for statistical prototyping which means building and testing fastly quantitative systems that could operate into the markets or provide smart insight to those that are specialized in providing financial analysis. For example, a Quant analyst may have a new idea of a metric to use in the analysis that she would do and ask you to build a prototype that will output this metric given the set of needed inputs. Like how important it is now in data science python is part of the most used language in the financial industry because of its set of modules like pandas for processing data and scikit-learn for machine learning.
Java as you may already know can be considered as an enterprise language because many enterprise in-home software solutions are built with Java. That’s the same for the financial industry mainly for corporate finance where custom in-home software solutions are needed because of the specificities of financial and business operations.
Learning Financial Engineering Understanding the industry into which you are in is an important part. For being this Top coder of the financial industry who you can be you will need to learn about financial engineering. It will not be about being an expert in this field what is possible but understanding the systemic behavior of financial instruments and their pricing, understanding how stock exchanges work technologically, and knowing each kind of financial participant and the difference between their modes of operations and goals. In subsequent articles, I will be diving into core financial engineering concepts that you should know but the first step is to understand the different types of instruments and their differences. For example, What is a stock and what an option is, and what are their differences and relationships before learning more complex instruments like CDOs, Swaps, and other credit default instruments. There are also core pieces of knowledge about economies like inflation that you should understand and all major economic metrics like GDP, metrics about consumers buying power, and so on.
You could tell me that there are many things to learn to be this Top Coder for the financial industry but knowing all the ins and outs of the financial systems while improving your programming skill is an achievable goal and the reward is worth it because top coder working for the financial industry are paid 10X to 100X than Top Coder working in other industries. Then if you want to be this Top Coder for the financial industry I highly advise you to start right now learning about this by reading blogs and books about these topics and by reading the coming articles I will be publishing that will go deeper into examples and implementations through a publication series called Top Coder for Finance that I am proposing.