Early on in the process of setting up your fintech startup you will have to make key decisions that are very hard to un-make.
One such decision is your choice of tech stack, chiefly the programming language. If you go wrong here, your costs may skyrocket down the line, putting you in the red despite best intentions.
Your fintech needs a programming language that is easy to handle, scalable, mature, high-performance, and coupled with ready-made libraries and components.
Luckily, Python is there to answer all your fintech needs.
Table of contents
Before joining STX Next, I worked for a promising Polish fintech. While my exploits were short-lived, culminating in a “Best of Show” win at Finovate Europe 2016 (see the video FinovateEurope 2016: Valuto), I made sure that my next endeavor would keep me connected to the industry.
What I was excited to learn when joining the largest Python software house in Europe was just how prevalent the backend language was among fintechs—both startups and unicorns.
For those who may be encountering the term for the first time, fintech combines the tech of Silicon Valley with the financial services of London, New York, or Singapore. According to the annual Fintech Report, cumulative investment globally will exceed $150 billion in 2017.
Many who are familiar with fintech may be unfamiliar with its connection to Python. The rise in popularity of Python as a programming language has been demonstrated by the numerous financial industry job postings seeking Python developers since 2015—right around the time when fintech started to gain mainstream notoriety.
Python is an ideal programming language for the financial industry. Widespread across the investment banking and hedge fund industries, banks are using Python to solve quantitative problems for pricing, trade management, and risk management platforms. Python also seems to have answers to most challenges raised by the financial industry when looking at analytics, regulation, compliance, and data, which are made easy by the abundance of supporting libraries. (More on those later.)
I don’t want to deter those who are using other server-side languages for their bootstrapped fintechs. Most will allow you to accomplish similar goals and, in fact, many companies use several back-end languages to build out their product.
However, while that’s the case, there are some technologies that will help you to achieve your goals in a far quicker and more intuitive manner. I’m sure that many will have their reasons for why their favorite back-end technology is ideal for fintech, and that’s great, but I intend to put much of the debate to rest in the following paragraphs.
I’ll make my case clear right off the bat: Python is the fastest-growing technology in finance and is perfect for your next venture into fintech. Let me tell you exactly why it’s ideal.
When choosing a tech stack, it’s important for a fintech CEO or CTO to consider the current and future availability of the labor pool supporting the technologies. This can be done by tracking trends in education, Stack Overflow traffic or via recruitment.
A 2016 Study conducted by HackerRank took a look at the most in-demand programming languages across six specific industries: health care, social media, gaming & media, security, finance, and fintech.
The charts, which were created based on data from 3,000 coding interview challenges, show that while many industries demonstrate small discrepancies between top-ranked programing languages, fintech is not even close.
In fact, for fintech, Python outranks the second most frequent programming language in coding interview challenges by 2 to 1. The runner-up? Java, which has dominated financial services software development for the past decade or more.
Additionally, within the study, HackerRank affirms that Python is generally the fastest-growing language in finance.
After reviewing the labor pool and recruitment trends, it’s important to know that the programming language that you ultimately choose has a good track record. Additionally, it shouldn’t put you at a disadvantage when tackling issues typical to the financial industry, such as speed, scalability, and quantitative problem-solving.
Though Python is by no means a new language, its growing popularity across the investment banking and hedge fund industries is a relatively new development. Much of the ubiquity of Python among financial services giants can be attributed to Kirat Singh. If you haven’t heard of Singh, read about how this investment banking guru quit to start his own firm.
His reason for introducing Python? In a 2014 interview given to eFinancialCareers, Singh (a former MD at Bank of America Merrill Lynch) said:
“It is a good scripting language and easily integrated into both the front and back ends, which was one of the reasons we chose it in the first place.”
Python is a core language for J.P. Morgan’s Athena program and Bank of America’s Quartz program. Singh went on to say: “Everyone at J.P. Morgan now needs to know Python and there are around 5,000 developers using it at Bank of America. There are close to 10 million lines of Python code in Quartz and we got close to 3,000 commits a day.”
As of June 2018, Citigroup has joined the growing list of investment banks that want its analysts and traders to have strong Python coding skills. In July, the group added Python training classes to the curriculum taught to recently hired bank analysts.
But Citigroup’s Python training efforts don’t stop there. Beyond the recent hires, they’re also upskilling their managers, even going as far as having the group’s Head of Markets and Securities, Paco Ybarra, take a version of the Python class.
While J.P. Morgan, Bank of America, and Citi should be added to the list of those incumbents that you—as a fintech executive—are attempting to overthrow, this does add some serious weight behind why the language is applicable to financial services in the first place.
Developing a financial services platform is already a complicated enough task. Why not make the job easier by using a language that’s considered by developers to be easy to code and deploy?
Python is becoming known for its easier syntax and for being faster to program with than other traditional languages, such as Java or C++. When I was joining STX Next, our CEO Maciej Dziergwa told me that programmers are able to do as much with 10 lines of Python code as they are with 20 lines of Java, and with less chance of making mistakes. Given how regulated the fintech industry is becoming, it becomes clear why a lower error rate would be important to fintech CEOs and CTOs.
Need more proof?
Let’s use an example to demonstrate how much simpler Python is when compared to other programming languages, by using the way classes and inheritance are handled. Below, you’ll see what the code looks like in Python and in Java.
That’s 1 for Python, 0 for Java!
Python is fast. (Cue the crickets.)
Okay, so I’m probably in for some backlash from the developers who are reading this. Python is not widely regarded as the fastest language in terms of performance. However, for someone who’s looking to launch their fintech product, let me explain myself.
When I say “fast,” I’m not referring to CPU cycles but rather a different metric: time to market.
When all is said and done, having a product or web app that’s fast should come second to how quickly you can take your product to market. Just ask any C-level executive. (For the record, I’m not saying that Python’s performance is slow; see PayPal’s 10 Myths of Enterprise Python.)
Today, a company’s most expensive resource is its employees’ time. As a small fintech startup, you have to watch your bottom line. In most cases, you’ll have angel investors or VCs observing you and expecting the same. As a dynamically typed language, Python offers fintechs a much faster alternative to languages that are statically typed.
See this 2006 study, which tracked how long it took to write code in various programming languages.
When you’re on a budget and need to validate your product on the market immediately, the right server-side language becomes more important. Python offers quicker deployment and less required code.
As a fintech executive, you most likely come from either a financial, academic, or technological background. Regardless of which one it is, others on your team will probably complement your skill set with one or two of the aforementioned roles.
On top of that, your engineering team will operate in a fast-paced, collaborative environment to create products with team members from various backgrounds and roles. Python, with its simple composition, allows developers to work closer together on projects with professionals such as quantitative researchers, analysts, data engineers, and you—the CEO.
As technologists increase their exposure to the financial side of the business, or vice versa, Python will continue to grow in popularity.
One of Python’s major advantages as a programming language is the availability of a large number of libraries and tools. As a key language for mathematical programming, which is important for finance companies, Python offers many financial and fintech libraries.
Here’s a handy list of some of the best Python libraries used by fintech companies:
- SciPy (library for scientific and technical computing),
- NumPy (fundamental package for scientific computing),
- pandas (flexible and powerful data analysis/manipulation library),
- pyalgotrade (algorithmic trading library),
- pyrisk (common financial risk and performance),
- zipline (a Pythonic algorithmic trading library),
- quantecon.py (library for quantitative economics),
- pyfolio (portfolio and risk analytics),
- pybitcointools (commonsense Bitcoin-themed Python ECC library),
- finmarketpy (library for backtesting trading strategies and analyzing financial markets),
- scikit-learn (machine learning algorithms),
- ffn (a financial function library for Python),
- pynance (open-source software for retrieving, analyzing, and visualizing data from stock and derivatives markets).
Know of a library that should join this list? Go ahead and tell us about it in the comments section.
For fintech founders, selecting the languages and frameworks that form your core product will have serious implications over the lifespan of the product. Languages and frameworks determine the talent you have access to, the kinds of financial products that you can build, how quickly you can validate your product on the market, and—in many ways—how your team will work together.
So if anyone ever asks you about the fintech viability of Python, now you’ll know what to tell them:
- Python’s simplicity leads to lower error rates and less bug-hunting.
- Python may not be the fastest performing language, but it’s a top choice for optimal time to market.
- The straightforward syntax of Python will facilitate collaboration between developers, technical experts, and the C-suite.
- Finally, Python’s wealth of open source libraries provides ready-to-go solutions for many common problems in fintech.
Still not convinced, even with all the arguments above? Want to know more about existing fintech executives who have chosen Python for their payments, banking, insurance, and alternative finance fintechs?