Projects


Robotic Experience Library (rxl)

Ongoing in 2026. Age 19.


Ongoing machine learning work running alongside my degree. Exploring model architectures and training pipelines. More detail to follow as work matures.

Built In: C++20


OpenQuant

Built in February 2026. Age 19.


Project built at HackEurope Dublin.

I solo-wrote wrote a 7-page thesis on OpenQuant too. Link

Built In: Python


Hidden Markov Model for Regime Switching

Built in August 2025. Age 18.


Built a 3-state Gaussian HMM from scratch to identify market regimes (Bull, Bear, Crash) in S&P 500 daily returns from 2005 to present.

Implemented the forward-backward algorithm manually to compute smoothed regime probabilities, initialising emission parameters via return quantile bucketing and fitting the model using hmmlearn.

The model successfully flags the 2008 financial crisis, COVID crash (2020), 2022 drawdown, and April 2025 volatility, with clearly separated regime-conditioned return distributions.

Built as a structural analysis tool rather than a trading strategy, though outputs are directly applicable to regime-aware portfolio allocation.

Built In: C++17, Python (Jupyter Notebook for demonstration)


Q-Function Reinforcement Learning Engine

Built in July 2025. Age 18.


Designed and built a multi-agent reinforcement learning system for autonomous stock trading, operating across two global market states (Greed and Fear). Agents make real-time decisions across four actions: buy, hold, sell, do not buy. O

Optimised via a Q-function that maximises expected discounted future reward, accounting for state transition probabilities.

A custom market simulation environment where agents face stochastic consequences: rewards drawn relative to stock price volatility, and slippage modelled as a random percentage loss per millisecond over a randomised hidden duration.

To manage simulation cost, slippage updates were batched every 5ms rather than each tick. Agents detect slippage autonomously via linear regression, triggering an exit when the correlation coefficient drops below −0.64.

Volatility is quantified using the Parkinson formula, and stock quality is scored via a custom metric — the Kamai Ratio (because I like to be funny). — which feeds into a sigmoid-bounded scoring function (Score ∈ [1, 100]) incorporating moving average, linear price trend, Parkinson volatility, and stochastic noise tunable by agent confidence and global sentiment.

At the end of each session, agents learn from the top-performing peer, enabling population-level convergence. The system is designed for parallelism, with concurrent decision-making across agents and configurable α/γ parameters.

Built In: C++17

More projects in progress. Check GitHub for the latest.