Northwestern Fintech Club

Developing a sustainable architecture for high-frequency trading.

What is NUFT?

Northwestern University’s premier quant finance and software development club. At NUFT, we aim to improve the quality of the Fintech and Quant education at Northwestern, as well as to provide an excellent pre-professional space for students to engage and discuss. We seek to help students prepare for some of the most competitive roles in industry by providing experiences and projects that would be impossible for an individual.

Taken from their website, https://nu-fintech.web.app/.

My role at NUFT

At NUFT, my role is, first and foremost, like a software engineer. For the most part, I am writing code, mainly in C++, to build up a new infrastructure for the coming years. However, as we are rebuilding, we want to avoid the same pitfalls that occurred in our previous infrastructure, especially when in comes to technical debt. Thus, while I am primarily writing code, I am also ensuring the maintainability of all future code by doing the following:

  • Using tools such as Poetry and Conan to create reproducible builds.
  • Enabling automatic checks using Github Actions CI/CD.
  • Lending a hand in reviewing pull requests with a close eye for reducing technical debt.
  • Improving overall operating procedures for the future.

Currently, my main project is Raccoon, an in-house orderbook solution to aggregate and distribute orderbooks using Redis. It is written in C++, using libcurl for performing web requests (incl. websocket connections), hiredis for connecting to Redis, libuv as an event loop for managing connections and ports, and glaze as a JSON parser.

Additionally, I am also performing pull requests reviews across all repos, looking our for common mistakes that can lead to large amounts of technical debt, such as passing around untyped dictionaries in Python instead of classes. I am also currently setting up a linting system for our Python projects using ruff and mypy for static analysis, running in Github Actions with Poetry for reproducible builds. I have also set up all our C++ projects with quill for logging, Conan for reproducible builds, testing in Github Actions using GoogleTest, and linting using clang-tidy.

With these goals and a close eye to detail, I plan to help create a sustainable architecture with minimal technical debt for NUFT to use over the coming years.