My Projects

Plato, Greek Philosopher

Speaking with Plato

    Made with:

I’ve been reading philosophy since I was a kid and I’ve always wondered how awe-inspiring it would be to be able to talk with philosophers from the past. How would it feel to be able to have a conversation with them?

This project explores all of Plato's works and features two deep learning models that can generate new text and hold a conversation with the user. The bot that generates new text is based on a GPT-2 model, while the chatbot is based on dialoGPT and emulates Socrates. Both models are taken from HuggingFace's model hub and are finetuned on Plato's works using the Transformers library.

The project features a simple Tkinkter GUI that allows the user to interact with the chatbot, generate new text, and change the parameters of the models.

SNAP Assessment, Musical Universe

SNaP (Screening for Neuropsychology and Psychiatry)

    Made with:

A state of the art musical screening assessment that takes only 15 minutes to complete and outperforms gold standard assessments widely used by healthcare providers across 15+ mental health conditions. Predictions are made using an Imbalanced Random Forest classifier that was trained on an imbalanced binary prediction problem and optimized for the F1 weighted statistic.

The backend API is written in Python and built with the FastAPI framework. It is deployed as a Docker container on AWS Lambda. The API connects to a DynamoDB database. The frontend was built with the Svelte Kit framework. The app is containerized and deployed with GitHub Actions on the AWS App Runner for scalability. Data drift and model performance are monitored using DynamoDB streams, which feeds the data into the processing pipeline whose results are visualized with AWS Quicksight. The CI/CD pipeline is built with GitHub Actions and the AWS CDK.

Disclaimer: I didn't code the frontend.

S&P 500 Cointegrated Pairs for Pairs Trading

Cluster Analysis for Pairs Trading

    Made with:

Pairs trading is a strategy in which a trader buys one asset while shorting another. The main premise of the trade is that if the two pairs diverge, they will almost certainly converge again, resulting in profit for the trader. As a result, the strategy requires cointegrated pairs to function, making it a clustering unsupervised machine learning problem.

I obtained all S&P 500 stocks from Yahoo Finance and preprocessed them for the clustering algorithm. Several clustering algorithms were employed and evaluated. The best performing algorithm was chosen based on the silhouette score, and the cointegration test was run on the given clusters to extract the cointegrated pairs. A TSNE algorithm was used to visualize the pairs.

My Skills

Influenced By

"The only thing that is constant is change."
Carl Gustav Jung
Carl Gustav Jung
"In all chaos there is a cosmos, in all disorder a secret order. "
Edmund Husserl
Edmund Husserl
"Merely fact-minded sciences make merely fact-minded people."
Karl Jaspers
Karl Jaspers
"Even truth can be deceptive, whatever its appearance."
Albert North Whitehead
Alfred North Whitehead
"...the only simplicity to be trusted is the simplicity to be found on the far side of complexity."
Iain McGilchrist
Iain McGilchrist
"Meaning emerges from engagement with the world, not from abstract contemplation of it."

My Certificates

Google Data Analytics Specialization


  • Issued March 2022
  • Credential ID: UP4DYDE9ZM7C

Deep Learning Specialization


  • Issued January 2022
  • Credential ID: WWWA84VFXN6V

Contact Me




Send Email