Link Search Menu Expand Document (external link)

Profile photo

Hey there, I’m Spyros, a tech wizard with 6+ years of experience. I specialize in AI, ML, and the magical world of Ruby on Rails. I love turning data into insights and building awesome software that blows minds. Let’s code some wizardry together! Don’t hesitate to connect with me on LinkedIn!

AI projects

Petsearch.gr [Website not available anymore, Instagram]

After observing the numerous websites and Facebook groups dedicated to finding lost pets, I decided to create a more efficient solution. In 2023, I launched Petsearch.gr, a non-profit project using AI to help pet owners quickly locate their lost pets. Inspired by my own experience growing up with my beloved dog, Goofy, I understand the anxiety of losing a pet and the urgency of finding them promptly.

To use Petsearch.gr, pet owners would enter their pet’s information and upload photos, specify the location and date of the incident, and provide their contact details for notifications. The search engine then continuously compared the uploaded photos with images of found animals in the specified area. If a match was found, the owner was notified via email immediately.

For this project, I gathered a dataset of 120K images of dogs and cats, built the computer vision model using PyTorch and ResNets, and developed the Ruby on Rails application. Despite the project’s potential, it attracted only approximately 100 users and failed to gain traction. As a result, I decided to turn off the project after one year.

An AI for the Quoridor game that uses MinMax tree search and Monte Carlo methods to determine the best moves. Currently, it ranks as the top result for the “play quoridor online” query on Google and attracts approximately 6000 visits per month.

A Facebook chatbot designed to help users remember important tasks. Developed as part of the MindNodes project, this chatbot is unfortunately no longer available as the project was discontinued.

An unbeatable Tic-Tac-Toe AI built for fun, utilizing Minimax tree search with full depth. You can challenge it by clicking on the link above.

Web development projects

LCL is an e-learning platform developed by the Computer Science department at the University of Athens. Implemented using Ruby on Rails and AngularJS, I contributed as one of three student developers on this project.

This is a Vue.js web application designed to calculate ECTS credits and GPA for students. Developed during my time at the University of Athens’ CS department, the application is a progressive web app (PWA) that uses local storage to save user inputs. Currently, it garners approximately 750 sessions per month.

Academic Projects

Career Path Recommendations for Long-term Income Maximization: A Reinforcement Learning Approach (Thesis) [PDF]

This paper is the result of my thesis, presented at RecSys in HR 2023. It explores how reinforcement learning algorithms can enhance career planning processes. Using data from Randstad The Netherlands, the study simulates the Dutch job market to develop strategies that optimize long-term income. By framing career planning as a Markov Decision Process (MDP) and employing machine learning algorithms such as Sarsa, Q-Learning, and A2C, we developed optimal policies that suggest career paths leading to high-income occupations and industries. Our results show significant improvements in employees’ income trajectories, with Q-Learning and Sarsa models achieving an average 5% increase compared to observed career paths.

Composition for Causal Generative Networks [Code, Report]

As part of the Deep Learning 2 course at the University of Amsterdam, this project builds on Sauer and Geiger’s (2021) framework for generating counterfactual images—images of objects not present in the original dataset. This new dataset helps train classifiers to be more generalizable and less prone to spurious correlations. Our main contributions focused on extending their image composition module, introducing two enhancements for better quality: 1) Poisson equation optimization and 2) the GP-GAN framework by Wu et al. (2017).

Why Do You Say That? Rationale Extraction for Dialogue Modelling [Code, Report]

In the Computational Dialogue Modelling course at the University of Amsterdam, we explored rationale extraction to understand which parts of a dialogue history support a language model’s predictions for dialogue generation. This project aimed to enhance the interpretability of dialogue models by identifying key justifications for their responses.

Fairness by Learning Orthogonal Disentangled Representations [Code, Report]

This project, part of my master’s program, reproduces the study Fairness by Learning Orthogonal Disentangled Representations. We implemented the methods from the original paper using PyTorch and compared our results with the authors’ findings to validate the reproducibility of their approach.