Welcome to My Website!

Hi there! I am Alexander Shemaly, a passionate Computing student at Imperial College London, currently at my fourth year of study. I have a strong interest in artificial intelligence, software engineering, and algorithm design. Over the years, I have developed a solid foundation in creating immersive games, designing AI-driven applications, and enhancing user experiences, which I am excited to continue building upon as I seek new challenges and opportunities.

On this site, you will find a showcase of my projects, a detailed overview of my skills, and a bit more about my journey in the world of computing. I am actively looking for a work placement to apply my knowledge in a real-world setting, collaborate with experienced professionals, and contribute to impactful projects.

Feel free to explore my work, learn more about me, and do not hesitate to get in touch if you'd like to discuss any potential opportunities!

Python
University Group Project
June 2024

Wise Browse - An AI-Powered browser for Desktop

Wise Browse is a user-friendly cross-platform desktop web browser designed to assist older adults in navigating the internet with ease. By integrating advanced artificial intelligence and a minimalist interface, Wise Browse provides step-by-step guidance tailored to user needs, making digital interactions more accessible and intuitive.

Application written in Python using the PyQt5 GUI toolkit, OpenAI API and Supabase.

Wise Browse is developed to address the challenges faced by older adults when using the internet. The project is a collaborative effort by Imperial College London students aimed at enhancing digital literacy and confidence.

Key Features

  •   •  AI-Powered Assistance: Leveraging OpenAI technology, Wise Browse's AI assistant reads and interprets website content to offer contextual help. It provides step-by-step instructions that adjust based on user actions and queries, making online tasks easier to complete.
  •   •  Minimalist Interface: The browser features a clean, simple interface to reduce cognitive load and emphasise essential functions. A streamlined side menu gives users easy access to the AI assistant and other key features.
  •   •  Community-Driven FAQs: Wise Browse includes a feature that displays Frequently Asked Questions (FAQs) from other users about the current website. This functionality fosters a sense of community and helps users resolve common issues more effectively.
GitHub Download
React + Typescript
University Group Project
March 2025

Response Area Sandbox for Lambda Feedback

The Response Area Sandbox is a development toolkit designed to streamline the creation of new interactive question components (known as response area types) for the Lambda Feedback educational platform. By providing an isolated, fully simulated environment and an extensible component-loading system, the project significantly reduces development time, improves scalability, and enables seamless integration of new content formats without disrupting the platform's live service.

Application developed using React, Storybook, and a modular package architecture, with deployment and dynamic loading handled via AWS S3.

The Lambda Feedback platform, used in STEM higher education and beyond, allows students to complete academic exercises and receive real-time, automated formative feedback. This project was developed as part of Imperial College London's Software Engineering Group Project (SEGP) to expand the platform's flexibility and improve the experience for external developers.

Key Features

  •   •  Developer Sandbox: Built a Storybook-based simulation of the Lambda Feedback environment, allowing developers to create and test response areas without running the full application stack, reducing setup time from days to hours.
  •   •  Template Repository: Provided a ready-to-use project template for building new response area types, complete with documentation and support for custom evaluation functions.
  •   •  Response Area Registry: Designed an interactive registry interface that previews and lists available response area types for teachers, improving discoverability and scalability over the legacy drop-down selector.
  •   •  Dynamic Component Loading: Implemented AWS S3 hosting for new components, enabling immediate use without redeploying the main application and minimising service disruption.
  •   •  Package Extraction & Integration: Refactored Lambda Feedback's mono-repo into modular packages to reduce code duplication, improve maintainability, and support the sandbox environment.
GitHub Read the Project Report
Python
Individual Project
December 2024

Wine Origin Classifier: Predicting Country of Origin of Wines using ML and LLMs

The Wine Origin Classifier is a machine learning project aimed at predicting the country of origin of wines based on a dataset of wine reviews. The goal was to build a classification model using both traditional machine learning techniques and advanced natural language processing (NLP) methods, particularly Large Language Models (LLMs), to extract features from the wine descriptions.

Developed in Python using Scikit-learn, Pandas, OpenAI API and Graphviz libraries.

The dataset includes five columns: Country (target), Description, Points, Price, and Variety. A key challenge was the data imbalance, where certain countries (such as Spain, France, and Italy) were underrepresented. I addressed this by using weighted evaluation metrics and experimenting with different feature engineering and model selection techniques to improve the performance on underrepresented classes.

A major component of the project was utilising NLP techniques to extract features from the textual descriptions of the wines. These features included flavor profiles, texture, acidity, and aging potential, which vary across regions and can indicate the country of origin. I also explored how LLMs can be integrated into traditional ML pipelines to enhance text feature extraction.

Key Features

  •   •  Data Preprocessing and Imbalance Handling: Dealt with class imbalance through weighted metrics and techniques to improve model fairness.
  •   •  Textual Feature Extraction: Used NLP techniques to extract relevant features from the wine descriptions, such as flavor profiles, texture, and region-specific terms.
  •   •  Large Language Model Integration: Explored the use of LLMs for enhanced feature extraction and improved classification performance.
  •   •  Model Evaluation: Evaluated multiple models, focusing on performance across all classes, particularly underrepresented ones.
GitHub Read the Project Report
C++
Personal Project
August 2024

STARGLIDE for Nintendo 3DS and PC

STARGLIDE is a space-themed endless runner where players control a spaceship to navigate through a constantly shifting path. The game becomes progressively harder as the speed increases, challenging your ability to stay on course. The objective is to stay on the path for as long as possible to achieve the highest score.

Game written in C++ using the RayLib framework and devkitPro toolchain.

STARGLIDE is a game written for the Nintendo 3DS, but I also wanted it to have a port for PC. During its creation, I developed a framework called Cross-Platform Game Framework for Desktop and Nintendo 3DS , which unifies software development for these two platforms and makes it easier to write code without having any previous experience for developing 3DS applications.

I was inspired by a course at university called Software Engineering Design, which teaches about software design patterns and principles. This course emphasised the importance of creating adaptable and scalable architectures, which motivated me to design a framework that makes software developement easier.

GitHub Download
Scala
University Group Project
March 2024

WACC Compiler and IDE

WACC Compiler and IDE is a group project developed for Imperial College London's Year 2 Laboratory module. The project includes a compiler for the WACC language, converting WACC code into x86-64 assembly code using Scala and the Parsley library for parsing.

Compiler developed using Scala with the Parsley library for parsing, and a Java Swing-based IDE for WACC.

The IDE for WACC was an extension that I decided to make to enhance the overall development experience and showcase the capabilities of the WACC compiler. By creating a user-friendly interface with features like syntax highlighting and real-time error checking, I aimed to make it easier for users to write and debug WACC code, ultimately making the compiler seem more complete and professional.

Key Features

  •   •  Lexical Analysis and Parsing: Implemented using the Parsley library for efficient and flexible parsing.
  •   •  Semantic Analysis: Includes type checking, scope management, and semantic error detection.
  •   •  Code Generation: Compiles WACC code to x86-64 assembly code, supporting basic optimisations.
  •   •  Error Reporting: Provides detailed error messages for both syntactic and semantic errors.
  •   •  Modular Design: Clean separation between different stages of compilation for maintainability and extensibility.
GitHub Download
Java
Personal Project
August 2023

Maze Raycasting Game

My Maze Raycasting Game is a maze exploration game where players navigate through randomly generated mazes, collect all coins, and avoid zombies to progress through increasingly difficult levels. The game leverages on Ray Casting, a technique using in early video games to efficiently render a 3D world from a 2D playing field, and a modified Depth-First Search (DFS) Maze Generation Algorithm, offering an immersive gameplay experience.

Game written in Java using the libGDX library.

My fascination with 2.5D graphics and the complex mathematics behind them inspired me to create this game. I have always been intrigued by how simple 2D elements can be transformed into immersive 3D-like environments through techniques like ray casting. Additionally, I wanted to apply and deepen my understanding of algorithms and mathematical concepts that I had previously studied.

GitHub Download
Python
Personal Project
August 2022

Smart Retain - Note Maker and Revision Application

Screenshot of Start Menu and Home Page Screen

Smart Retain is an innovative application designed to help users manage their notes, enhance their learning experience, and track their performance in various courses or subjects. Smart Retain combines note-taking, machine learning, and performance analytics to create an integrated learning tool.

Application written in Python 3.9 using the PyQt5 GUI toolkit.

Screenshot of Create Note and Learn Note Screen

Features

  •   •  Create Notes: Detailed input options to label notes with question, answer, keywords, topic, subtopic, and note type.
  •   •  PDF Viewer: Read from textbooks or PDFs while making notes, eliminating the need to switch windows.
  •   •  Snippet Capture: Take pictures from PDFs, add them directly to notes, and annotate them.
  •   •  Formula Capture: Create formula-type notes, with symbols and units to allow random question generation on learn mode. The values will be randomly generated using a provided reasonable value range and the answer calculated using the question formula. The formula can even be automatically rearranged for more questions.
  •   •  Learn Notes: Machine learning-based suggestions for which notes to study, with customisable focus on topics and subtopics.
  •   •  Home Window: Visual charts and graphs to track progress and identify areas for improvement.

GitHub Download
JavaScript
Personal Project
January 2022

Dots and Boxes Remastered

Dots and Boxes Remastered is a JavaScript-based web game that allows players to enjoy the classic game of Dots and Boxes with new mechanics. Players take turns connecting dots with lines to form boxes, but in this remastered version, some boxes contain power-ups that can influence the game's outcome in surprising ways.

Available to play in browser: Dots and Boxes Remastered

Game written using HTML, CSS and JavaScript.

GitHub Play Online
Python
Personal Project
July 2021

Plane Mania for PC and Mobile

Plane Mania is an endless runner game where you pilot a plane through increasingly difficult skies. Your objective is to fly as far as possible while collecting items and shooting down enemy planes. The game challenges your reflexes and strategic skills as you manage altitude and score points. The further you go, the harder it gets!

Game written in Python 3.9 using the Kivy framework. Available on PC and Mobile Android devices.

Kivy is an open-source Python framework designed for the rapid development of multi-touch applications. It provides a flexible and highly customisable environment for building cross-platform apps that run seamlessly on Windows, macOS, Linux, Android, and iOS. This allowed me to write Plane Mania for both platforms using the same codebase.

GitHub Download
Python
Personal Project
November 2020

Snappy Triggers

Snappy Triggers is a fast-paced shooter where players face off against various enemies across multiple rounds. Each round presents unique challenges and themes, with a final boss round that tests your skills to the limit. Earn points for each enemy you defeat and aim to achieve the highest score.

Game written in Python 3.6 using the Pygame framework.

You can create and login into to your Snappy Trigger Account, allowing you to create a profile and save your scores to the global leaderboards, implented using EZSheets - a Python Google Sheets API.

Snappy Triggers was the project I developed for my A-Level Computer Science coursework.

GitHub Download