Detects self-reverting storage slots in Ethereum smart contracts — reentrancy guards and cache slots — as a plugin for the Heimdall symbolic execution toolkit. Built as a research intern at the University of Toronto.
Analysis of Data from Decentralized Exchanges and AMMs
Bachelor's thesis. 44.9M Uniswap swaps on Ethereum (v2–v4) collected through a purpose-built GraphQL scraper into SQLite and processed with Apache Spark, then mined for anomalous market behavior — wash trading, arbitrage, bot-like repeated swaps — and used to predict hourly price direction for five actively traded tokens at 62–66% test accuracy.
Python
uniswapsparkanomaly-detectionmachine-learning
TruSt in Lincheck
Partial implementation of the TruSt stateless dynamic partial-order reduction algorithm inside Lincheck, JetBrains' model-checking framework for concurrent JVM data structures. Built as a research intern at MPI-SWS.
Request-routing gateway for Sotoon's microservices, built during the internship program. Fake upstreams deployed on Kubernetes with Ansible, Redis-backed rate limiting, Prometheus and Grafana monitoring, and live config reloading. Not open source.
Go
kubernetesredisprometheus
Cryptocurrency Quote API
A REST API returning a live quote for a given cryptocurrency symbol, aggregating third-party price and exchange-rate services, with unit and integration tests. Built for Okala.
Coursework in distributed systems — gRPC and Protocol Buffers services, concurrency patterns in Go, and a GlusterFS cluster set up across Xen virtual machines.
Socket programming, a wireless LAN simulation in NS-3, distance-vector and link-state routing protocols, and a comparison of the BBR, Reno and NewReno TCP congestion control algorithms.
Generating wallet credentials and vanity addresses, building valid transactions on the Bitcoin testnet, and mining a Bitcoin block containing a single transaction.
Relational, graph, document and key-value stores — ER modelling and SQL from CRUD through to advanced queries, alongside Neo4j, MongoDB, Elasticsearch and Redis.
Web scraping and exploratory analysis, statistical testing, loss functions and regression, feature engineering, dimensionality reduction and unsupervised learning, and semi-supervised learning with LLMs.
Search algorithms — BFS, DFS, IDS and A* — a genetic-algorithm equation builder, minimax with alpha-beta pruning, naive Bayes news classification, and neural networks written both from scratch and with TensorFlow.
UML modelling of a medical tourism system — activity, use case, system sequence, communication and class diagrams, domain models and contracts — implemented as a Django web application.
A compiler for the LogicPL language built with ANTLR — lexical and syntax analysis, AST generation via the visitor pattern, symbol tables and name analysis, type analysis, and code generation.
A Telegram bot for playing Truth or Dare, written to fix gaps in the bots I had been using and to practise C#. Not open source.
C#
telegrambot
Shecan Activator
A shell script that toggles the Shecan DNS servers in /etc/resolv.conf on and off, commenting out the existing resolvers and restoring them on disable — for turning it on only when needed rather than leaving it permanent.