In this page you can see my main software projects that I've developed or contributed to in the past, or that I'm currently developing. The source code of the majority of these products is available on my GitHub, so make sure you check that out and maybe drop a follow 👌
My Main Projects
Labcentric - Monitoring and Management System for Labs
Developed a microservice, part of a design pattern repository application, that parses and extracts all relevant information that can be found on research papers about design patterns, such as the paper's title, authors, abstract, list of described patterns, and footer information.
Allowed the support for different paper structures and types by implementing design patterns such as the Strategy and Builder patterns.
Increased the reliability of the system and made it robust to crashes and failures by using a crash recovery database, that ensures that if the parser starts processing a paper, it will eventually output its details.
Photon - 3D Graph Visualizer of High Growth Opportunities on the Energy Market
Mar 2021 - May 2021
Team of 4 people
Developed a tool capable of extracting and analyzing energy related data from various sources, detecting high growth opportunities within the energy market and industry, and showcase that information to the user in a 3D graph interface.
Extracted the most up-to-date news and information about the energy market by using the Usearch API and social media APIs from Reddit and Twitter.
Defined and collected data for several energy sectors by using the Open Energy Ontology (OEO) to recognize energy-related areas and concepts.
3D Data Acquisition using a Structured Light Technique
Mar 2021 - Apr 2021
Team of 4 people
Developed system that calculates the 3D coordinates of points in an image lit by a shadow plane, by using structured light techniques.
Implemented all necessary stages in the process, including the camera calibration process, the light projection system calibration, the edge and line detection algorithms and the final calculation of 3D coordinates.
Promoted automation of purchase/sales processes between companies by developing a web application that integrates with the Primavera Jasmin API, that defines and handles all the transactions based on previously defined business processes.
Offered overall view of transaction processes between companies by creating an interface that provides an overview of all related documents.
Extracted Covid-19 data from a Kaggle dataset that contained the confirmed, death, and recovered cases for each day and for each country/region; developed and trained several regression models with the goal of successfully predicting Covid-19 cases and deaths.
Used data visualization Python libraries to create graphs in order to better understand data patterns.
Utilized the following models and methods: Neural Networks, Stochastic Gradient Descent, Support Vector Machines, K-Nearest Neighbours and Random Forest.
Developed a distributed peer-to-peer system in the Internet that allows the backup of a file divided in chunks in other peers; also allows the restoration and deletion of a file, and the reclaim of a peer's personal space.
Protected the system against faults and raised its stability and scalability by using and implementing the Chord Protocol.
Assured the privacy and integrity of the messages, and increased system security by implementing secure communication channels with JSSE.
Achieved high degrees of concurrency and parallelism by using thread-pools and non-blocking I/O.
Contributed to an open source project by developing a mobile app for conferences, that allows the user to see the conference's program and to make a custom schedule, receiving push notifications when an event is about to start and also allowing BT scanning for near-by events.
CLI application for a "distribution company" that calculates the best routes for delivery trucks that need to go to certain pharmacies to deliver goods.
The problem is an instance of the Vehicle Routing Problem with Time Windows (VRP-TW); the goal is to generate the schedule of the distribution company, while minimizing both the number of trucks used and the overall distance traveled by the trucks.
Done using Prolog and its clpfd restrictions library.
Calculated paths for trucks with pick up and delivery of items along the way, tested in graphs with up to 21.2k nodes and 21.7k edges, by implementing various "shortest path" (and similar) algorithms (Dijkstra, Floyd‐Warshall, and more), and some heuristic algorithms.