About Me
I'm a final year student at the University of Cape Town, majoring in Computer Science and Computer Engineering. With a passion for learning new technologies and tackling challenging problems, I'm constantly exploring innovative solutions in software development.
Skills
Projects
Bittorent Filesharing System
Created a bittorent filesharing system. This system allows for peer-to-peer downloading and sharing of files accross a network. File sharing was farther optimised by implimenting multithreading so you can download from multiple distributers (seeders) in a network. Implimented a TUI for a simple and easy to use user interface.
Foreground Image Processor
An image processor that is able to seperate the foreground and background of images. This project was built using C++ as it allows for efficent and fast memory management and uses the RAII design pattern to ensure no memory leaks. This project allows a user to specify the size of the desired image and can draw bounding boxes around objects found in the foreground of an image.
Hotel Booking System
Created a hotel booking system with friends. The system is designed to help hotels manage room bookings and is intended to be used by the receptionist as guests checkin and checkout. This project also generates important reports like the occupany level of the hotel over time. It also generates the projected income the hotel is expected to make based on bookings. A receptionist can easily search through bookings and find rooms that are available for guest to book. It also generates an invoice letter automatically.
Audio File Manipulation With Assembly
Using the MIPS Assembly programming language, I made an audio file manipulator. This project is able to extract header information from a .wav file, analyze and display inportant information and is also able to reverse the audio of any .wav file.
Parallel Processing Abelian Sandpile
This cellular automata project simulates an Abelian Sandpile. It uses multithreading and parrallel processing to optimize performance. This was done using the fork/join framework built into Java.
UCT Faculty Transfer System
A system that analyzes UCT transcripts to determine eligibility for faculty transfers into the science faculty. These requirements are found from the 2024 UCT Science Faculty handbook.
Taxi App Path Finding System
An intelligent routing system that determines the fastest path from any point on a map to the nearest taxi rank. This was done by implimenting and adding onto dijkstra's algorithm. In the simulation taxi routes are optimised to pick up as many passengers along the way as they can when traveling between locations.
Hashmap Optimization
Implemented multithreading techniques to dramatically reduce optimization problem execution time from hours to seconds.
Snakes and Ladders Game
A complete game implementation featuring pause menu, music, shop system, player statistics, and user authentication. This game was made from scratch without the use of external java packages.