$ ls projects/

Projects

01 — research

Research

heimdall-rs — control flow integrity

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.

Rust
symbolic-executionethereumsecurity

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.

Kotlin
model-checkingconcurrency
02 — industry

Industry

API Gateway

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.

C#
apiresttesting
03 — coursework

Coursework

Distributed Computing Projects

Coursework in distributed systems — gRPC and Protocol Buffers services, concurrency patterns in Go, and a GlusterFS cluster set up across Xen virtual machines.

Go
grpcglusterfs

Computer Networks Projects

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.

C++
ns-3tcprouting

Operating System Lab Projects

Extensions to the xv6 teaching operating system — new system calls, alternative process scheduling policies, and kernel synchronization primitives.

C
xv6kernel

Network Security Projects

Apache with SSL and packet capture in Wireshark, encryption, decryption and digital signatures with OpenSSL, and GitHub OAuth with JWT.

Python
opensslsecurity

Phishing Demonstration

A phishing demonstration built on DHCP snooping and DNS spoofing, developed as the final project of the network security course.

PythonShell
phishingdns-spoofingdhcp

Cryptocurrency Projects

Generating wallet credentials and vanity addresses, building valid transactions on the Bitcoin testnet, and mining a Bitcoin block containing a single transaction.

Python
bitcoincryptography

Database Lab Projects

Relational, graph, document and key-value stores — ER modelling and SQL from CRUD through to advanced queries, alongside Neo4j, MongoDB, Elasticsearch and Redis.

JavaScriptPL/pgSQLCypherPython
neo4jmongodbelasticsearchredis

Data Science Projects

Web scraping and exploratory analysis, statistical testing, loss functions and regression, feature engineering, dimensionality reduction and unsupervised learning, and semi-supervised learning with LLMs.

Python
scrapingstatisticsregressionmachine-learning

Operating Systems Projects

Socket programming, a MapReduce implementation built on Unix pipes, and multithreading.

CC++
socketspipesmultithreading

Artificial Intelligence Projects

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.

Python
searchmachine-learningneural-networkstensorflow

Systems Analysis and Design Projects

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.

Python
umldjangomodelling

Compiler Design Projects

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.

Java
antlrcompilersstatic-analysis

Software Testing Projects

Unit tests and mocks, graph and logic coverage, API testing, mutation testing, and behaviour-driven development.

Java
unit-testingmutation-testingbdd

Cyber-Physical Systems Projects

Sensor-driven IoT coursework spanning Qt desktop software, Arduino firmware and an Android client.

C++QML
arduinoqtandroidiot

Terminal Snake Game

Terminal-based snake game, written as the final project for a C# course at Tehran Technical Complex (MFT).

C#
terminalgame

GoodEats Web

A GoodEats web application written in C++ for the Advanced Programming course.

C++
weboop

Doodle Jump

A Doodle Jump clone built with the SDL library for the Advanced Programming course.

C++
sdlgame

Computer Architecture Projects

MIPS processor implementations — single-cycle, multi-cycle and pipelined — alongside a linear regression unit.

VerilogC++
mipscpupipeline

Digital Logic Design Lab

Clock and periodic signal generation, an FPGA realization of a radix-4 multiplier, a function generator, and accelerator wrappers.

Verilog
fpgahardwareuart

Signals and Systems Projects

Persian and English license plate detection, and transmitting data over signals.

MATLAB
signal-processingimage-processing

Computer Aided Design Projects

Hardware encoding functions applied over a 3D matrix — permutation, column parity, rotate, revalue and AddRc.

Verilog
hardwareencoding

Computer Architecture Lab

An ARM processor implementation with forwarding and hazard units, plus SRAM and cache memory.

Verilog
armcachememory
04 — personal

Personal

GUI Calculator

A desktop calculator with a graphical interface, written while self-studying Python.

Python
gui

Truth or Dare Telegram Bot

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.

Shell
dnslinuxscripting