Oxidising the markets
For years, I've been fascinated by software designed for financial markets. In my pursuit of knowledge, I've spent countless hours searching for insightful posts on lobste.rs and HN.1 I often found myself writing "posts" hidden away in my Obsidian vault to better understand what I read.2 These posts were useful not only for their content but also for the places they led me to, such as Matklad referencing tedinski. Over time, it felt increasingly important to try and give back to the small web of blogs that helped me so much.
To reciprocate, I have a two-part plan: first, to promote (i.e., backlink) the authors and posts that have helped me; second, to create my own content that can help others. The latter is more focused, as my value is largely determined by my knowledge and experience. Two realities have emerged from my journey:
- Rust's dominance in both quality and quantity of content
- The lack of programming-related content in finance
I like Rust. I like finance. This post's title, Oxidising the Markets, reflects both: the oxidation (i.e., rewrite it in Rust) of software powering financial markets. While an exaggeration, I believe there are interesting problems to be solved, and this blog will document my learning process. I'm inspired by Jane Street's work in this space, creating podcasts, blog posts, tech talks, and libraries that take "OCaml all the way down".
I plan to start by implementing a FIX (Financial Information eXchange) server, omnipresent in the industry, from basic foundations. I'll explain various business concepts like symbology, market structure, asset classes, and ECNs. These will provide real-world context for exploring technical approaches like parser combinators, incremental computation, domain types, and back-pressure.
References
1 : People with ADHD have been linked to evolutionary success in foraging, so perhaps I just forage for posts in lieu of berries.
2: "What I cannot create, I do not understand." - Richard Feynman