1 Why Program?
“Humans are allergic to change. They love to say, ‘We’ve always done it this way.’ I try to fight that. That’s why I have a clock on my wall that runs counterclockwise.” - Grace Hopper (1987)
1.1 Chapter Overview
We motivate why a financial professional should adopt programming skills which will improve their own capabilities and enjoyment of the discipline, whilst allowing themselves to better themselves and the industry we work in.
1.2 Introduction
The financial sector is undergoing a profound transformation. In an era defined by big data, (pseudo) artificial intelligence, and rapid technological advancement, the traditional boundaries of finance are expanding and blurring. From Wall Street to Main Street, from global investment banks to local credit unions, technology is reshaping how financial services are delivered, how risks are managed, and how decisions are made.
This digital revolution is not just changing the tools we use; it’s fundamentally altering the skills required to succeed in finance. In the past, a strong foundation in mathematics, economics, and financial theory was sufficient for most roles in the industry. Today, these skills, while still crucial, are increasingly being augmented (and in some cases) superseded by technological proficiency.
At the forefront of this shift is the growing importance of programming skills. In the beginning of the computer era in finance, the differentiating skill was being able to utilize digital computing, data processing, and calculation engines to automate, analyze, and report on the business. These skills required low level programming and the success of many of those early programs is evident in their legacy: many of them are still around in the 2020s!
At some point, due to regulatory pressures, attempts at organization efficiencies, or management decision making, the skill of programming became highly specialized and most financial professionals (investment analysts, actuaries, accountants, etc.) became relegated to being “business users”, utilizing either Microsoft Excel or a proprietary third-party software to accomplish their responsibilities. The reasons for this were not totally wrong, even in retrospect.
At some point, an increasingly complex stack of software sitting between the developer and the hardware, the proliferation of computer security risks, it makes some sense that many financial developers were pushed out of the programming trade. Instead specialized, separate business and IT units were developed. Of course, this led to many inefficiencies and is now swinging back the other way.
What’s changed that’s enabling financial professionals to re-engage with the powerful tools that programming provides? Some reasons include:
- Code management tools. Github and other version control systems provide best-in-class ways of managing codebase changes and collaboration. Tools exist to scan repositories for leaking secrets, security vulnerabilities, and dependency management.
- Increasingly accessible development. Originally, very few layers of complexity existed between the written code and running it on the mainframe. Over time, drivers, operating systems, networking, dependencies, and compilers made development more complex. Today, languages, libraries, code editors, and deployment tools have smoothed many of these frictions.
- Competitive Pressures. An increasingly commoditized financial product with evermore competition has led to a need to improve efficiency of manufacturing and selling financial products. Having a business developer is a lot more efficient than a business user who needs to get an IT developer to implement something. Further, pressures from outside the financial sector abound: It’s easier to teach a tech developer enough to be successful in a finance role than it is to teach a finance professional development skills.
- Regulatory and Risk Demands. Pressures that previously motivated the move to proprietary software for modeling included regulatory reporting, internal risk metrics, and management performance evaluation. However, companies are realizing that their unique products, risk frameworks, preferred management measurements, and employee potential means that having a bespoke internal model is seen as a key capability. Many regulatory frameworks also encourage the use of a bespoke model, which is a particularly attractive option especially for those who view the given regulatory framework as inappropriately reflecting their own business and risk profile.
Whether you’re an investment banker modeling complex derivatives, an actuary calculating insurance risks, a financial planner optimizing client portfolios, or a risk manager stress-testing scenarios, the ability to code is becoming as fundamental as the ability to use a spreadsheet was a generation ago. To remain competitive, adaptable, and effective in the evolving landscape of finance, professionals must embrace programming as a core skill.
One subset of business analysts that did not start to migrate away from development as a strategic part of their value were “quants” or quantitative analysts who heavily utilized programming skills to develop unique products, trading strategies, modeling frameworks, and risk engines. This book is not really for that class of people and is instead geared towards the mass of financial professionals who want to get some of the benefits of the tools that the quants have been using for years. Quants may find value here in adapting some of their existing knowledge with the concepts and capabilities that Julia enables.
As we delve into this topic, keep in mind that learning to code is not about replacing traditional financial acumen—it’s about augmenting and enhancing it. It’s about equipping yourself with the tools to tackle the complex, data-driven challenges of modern finance. In short, it’s about future-proofing your career in an industry that is increasingly defined by its ability to innovate and adapt to technological change.
1.2.1 Market Forces
Today, there is a trend towards technological value-creation and is evident across many traditional sectors. Tesla claims that it’s a technology company; Amazon is the #1 product retailer because of its vehement focus on internal information sharing1; Airlines are so dependent on their systems that the skies become quieter on the rare occasion that their computers give way. Companies that are so involved in things (cars, shopping) and physical services (flights) are so much more focused on improving their technological operations than insurance companies whose very focus is ‘information-based’? The market has rewarded those who have prioritized their internal technological solutions.
Commoditized investing services and challenging yield environments have reduced companies’ comparative advantage to “manage money”. Spread compression and the explosion of consumer-oriented investment services means a more competitive focus on the ability to manage the entire asset or policy’s lifecycle efficiently (digitally), perform more real-time analysis of experience and risk management, and handle the growing product and regulatory complexity.
These are problems that have technological solutions and are waiting for insurance company adoption.
Companies that treat data like coordinates on a grid (spreadsheets) will get left behind. Two main hurdles have prevented technology companies from breaking into insurance and traditional finance:
- High regulatory barriers to entry, and
- Difficulty in selling complex insurance products without traditional distribution.
Once those two walls are breached, traditional finance companies without a strong technology core will struggle to keep up. The key to thriving is not just adding “developers” to an organization; it’s going to be getting domain experts like financial modelers to be an integral part of the technology transformation.
1.3 Why Programming Matters Now
Programming is becoming as fundamental for financial professionals as spreadsheet skills were a generation ago. Here’s why:
Enhanced Analysis Capabilities: Programming allows for more complex analyses, handling of larger datasets, and application of advanced statistical and machine learning techniques.
Automation and Efficiency: Repetitive tasks can be automated, freeing up time for more value-added activities.
Customization: Bespoke solutions can be developed to address unique business needs, risk frameworks, and regulatory requirements.
Data Handling: As data volumes grow, programming provides tools to efficiently process, analyze, and derive insights from vast amounts of information.
Integration: Programming skills enable better integration across different systems and data sources, providing a more holistic view of financial operations.
Competitive Edge: In an increasingly technology-driven industry, programming skills can be a significant differentiator.
It’s now commonly accepted that to gather insights from your data, you need to know how to code. Modeling and valuation needs, too, are often better suited to customized solutions. Let’s not stop at data science when learning how to solve problems with a computer.
1.4 The Spectrum of Programming in Finance
It’s important to note that becoming proficient in programming doesn’t mean you need to become a full-time software developer. There’s a spectrum of programming skills that can benefit financial professionals:
- Basic Scripting: Automating repetitive tasks in Excel or other tools.
- Data Analysis: Using languages like Python or R for statistical analysis and visualization.
- Model Building: Developing financial models or risk assessment tools.
- Full-Scale Application Development: Creating more complex applications for internal use or client-facing solutions.
1.5 Avoiding Red Herrings
One tantalizing path to contemplate is to avoid really learning how to code. Between artificial intelligence (AI) solutions being developed and low-code offerings, is there really a need to learn the fundamentals of coding? We argue that there is, for the basic reason that coding is not about mechanically typing out lines in an editor, but both a tool and a craft that is designed to enhance and apply your own creative and logical thinking.
The current generation of AI is fundamentally limited. As Yann LeCun, Meta’s Chief AI Scientist, notes, current Large Language Models (LLMs) lack a fundamental grasp of logic and causality. They ‘cannot reason in any reasonable definition of the term and cannot plan… hierarchically,’ making them powerful assistants for syntax and boilerplate, but unreliable architects for the complex, logical structures required in financial modeling (Murphy and Criddle 2024).
An important role for AI to play will be to support modelers in boilerplate, syntactical hurdles (“in VBA I would do it like this, but in Julia how do I do X, Y, or Z”), and basic algorithmic support. What is not likely to change in the short term is most of the value that a modeler brings to the table: creative thinking, understanding of company and market dynamics, and capability to understand broader architecture and conceptual aspects of modeling.
A similarly fraught path is low-code solutions. Low-code solutions are inherently limiting in their capabilities and lock you into a particular vendor’s proprietary ecosystem. If you know enough about what you are trying to do to be able to state it in clearly in plain English, then you are most of the way to being able to program in a full coding solution (AI can actually help bridge this gap here). As soon as you hit a limitation of the system (“I’d like to use XYZ optimization algorithm at each timestep”), you are reliant on the vendor to implement that option in the “low code” solution. Further, you are out-sourcing a lot of the important inner-workings of the model to someone else and not building that expertise yourself of in-house somewhere.
1.6 The 10x Modeler
The increasingly complex business needs will highlight a large productivity difference between a financial modeler who can code and one who can’t — simply because the former can react, create, synthesize, and model faster than the latter. From the efficiency of transforming administration extracts, summarizing and aggregating valuation output, to analyzing available data in ways that spreadsheets simply can’t handle, you can become a “10x Modeler”2.
In the technology sector, a 10x developer is term for a software engineer who is an order of magnitude more productive, creative, or capable than a typical peer. Here, we extend the notion to developers of financial models.
Working within a vendor’s graphical user interface (GUI) makes you a consumer of their modeling tool. Writing your own model in code makes you an architect of the solution. This is the difference between having a surface-level familiarity and having full command over the analysis and the concepts involved — with the flexibility to do what your software can’t.
Your current software might be able to perform the first layer of analysis, but be at a loss when you want to take it a step further. Tasks like visualizations, sensitivity analysis, summary statistics, stochastic analysis, or process automation, when done programmatically, are often just a few lines of additional code over and above the primary model.
Should you drop the license for your software vendor? No, not yet anyway. But the ability to supplement and break out of the modeling box has been an increasingly important part of most professionals’ work and this trend appears to be accelerating.
Additionally, code-based solutions can leverage the entire technology sector’s progress to solve problems that are hard otherwise: scalability, data workflows, integration across functional areas, version control and versioning, model change governance, reproducibility, and more.
30-40 years ago, there were no vendor-supplied modeling solutions and so you had no choice but to build models internally. This shifted with the advent of vendor-supplied modeling solutions. Today, it’s never been better for companies to leverage open and inner source to support their custom modeling, risk analysis/monitoring, and reporting workflows.
Open source refers to software whose source code is freely available for anyone to view, modify, and distribute. It promotes collaboration, transparency, and innovation by allowing developers worldwide to contribute to and improve the codebase. Open source projects often benefit from diverse perspectives and rapid development cycles, resulting in robust and widely-adopted solutions.
Inner source applies open source principles within a single organization. It encourages internal collaboration, code sharing, and transparency across different teams or departments. By adopting inner source practices, companies can reduce duplication of effort, improve code quality, and foster a culture of knowledge sharing. This approach can lead to more efficient development processes and better utilization of internal resources.
It is said that you cannot fully conceptualize something unless your language has a word for it. Similar to spoken language, you may find that breaking out of spreadsheet coordinates (and even a dataframe-centric view of the world) reveals different questions to ask and enables innovative ways to solve problems. In this way, you reward your intellect while building more meaningful and relevant models and analysis.
1.7 Risk Governance
Code-based workflows are highly conducive to risk governance frameworks as well. If a modern software project has all of the following benefits, then why not a modern insurance product and associated processes?
- Access control and approval processes
- Version control, version management, and reproducibility
- Continuous testing and validation of results
- Open and transparent design
- Minimization of manual overrides, intervention, and opportunity for user error
- Automated trending analysis, system metrics, and summary statistics
- Continuously updated, integrated, and self-generating documentation
- Integration with other business processes through a formal boundary (e.g. via an API)
- Tools to manage collaboration in parallel and in sequence
These aspects of business processes are what technology companies excel at. There is a litany of highly robust, battle-tested tools used in the information services sectors. This book will introduce much of this to the financial professional (specifically Chapter 12, Chapter 21, and Chapter 23).
1.8 Managing and Leading the Transformation
For managers: the ability to understand the concepts, capabilities, challenges, and lingo is not a dichotomy, it’s a spectrum. Most actuaries, even at fairly high levels, are still often involved in analytical work. Still above that, it’s difficult to lead something that you don’t understand.
Conversely, the skill and practice of coding enhances managerial capabilities. When you are really skilled at pulling apart a problem or process into its constituent parts and designing optimal solutions… that’s a core attribute of leadership as well as the most essential skill in programming. This perspective also allows for a vision of where the organization should be instead of thinking about where it is now.
The skillset described herein is as important an aspect of career development as mathematical ability, project collaboration, or financial acumen.
1.9 Outlook
It will increasingly be essential for companies to modernize to remain competitive. That modernization isn’t built with big black-box software packages; it will be with domain experts who can translate their expertise into new forms of analysis - doing it faster and more robustly than the competition.
Have you had your Bezos moment? What you can learn from Amazon.↩︎
The term ‘10x developer’ originates from the technology sector to describe an engineer considered to be an order of magnitude more productive than their peers. This book adapts the concept to the domain of financial modeling.↩︎