Selected Projects (in reverse chronological order):
- A prototype of a DeFi interest rates swap platform, which enables users to manage their interest rates risk through trading the yield-bearing portion of their staked positions on the open market, powered by an on-chain central limit order book.
- Stack: Solidity, Javascript, React, Hardhat, Ethers.js
- Ariadne1 - a prototype of an AI-augmented legal search engine for legal judgments, with custom score function based on “weight-y” citations2 and nearest neighbours. The intuition was that the parent and child nodes of judgments similar to a specific one are relevant in search.
- Stack: Clojure, Clojurescript, Python, Elasticsearch, PyTorch, Re-Frame
- HKEX Announcement Classifer - Training a transformers model to classify different types of disclosure announcements made by public companies listed on the Hong Kong Stock Exchange3.
- Stack: Python, Tensorflow
- Facial Recognition with Triplet Loss & KNN - Tinkering with an Xception model trained on the CelebA dataset on Google Colab. Implemented a local facial recognition system with OpenCV.
- Stack: Python, Tensorflow, OpenCV
- Neural Networks and Optimizers from Scratch - A neural network written in pure NumPy. I explored how different optimizers behaved on a minimalistic example. I implemented 10 optimizers from their original papers, including RMSprop, Adam, Adamax etc, as well as modifiers such as Decaying Momentum (Demon) and Decoupled Weight Decay.
- Stack: Python, NumPy
- AlphaZero Clone - I replicated the self-play reinforcement learning algorithm as conceptually described in the seminal AlphaZero paper. This implementation can, given sufficient time and/or computational resources, theoretically learn any two-player board game of arbitrary complexity, so long as the game can be represented as a matrix.
- Stack: Python, Tensorflow
- Stock Market Backtester - An extensible backtester written with NumPy and Pandas, showcasing Dollar-Cost-Averaging (DCA) and DCA with portfolio rebalancing.
- Stack: Python, NumPy, Pandas
Courses and Certificates
- CS50 - Introduction to Artificial Intelligence - Course offered by HarvardX on algorithms, machine learning techniques, probabilistic inference, and natural language processing.
- Deep Learning Specialization - Course offered by Dr. Andrew Ng on deep neural networks, including convolutional networks and sequence models.
- Mathematics for Machine Learning - Course offered by Imperial College London on linear algebra, calculus, and dimensionality-reduction techniques.
-
My first attempt at a legal-tech startup, the shortcomings of which are encapsulated here. ↩︎
-
The landscape of legal judgments can easily be visualised as a graph. The authority of common law judgments can usually be traced back to a root node. ↩︎
-
I’ve since recognized a few limitations of my experiments. The dataset was too small, the representations learned by the neural network were likely to be of low-fidelity, due to truncation. Language models seem to struggle with long-range dependencies. ↩︎