Software Development
A small recap on all the projects that I have either collaborated with, or designed
Image Compression Algorithm
This project explores the world of image compression using automata theory, particularly focusing on repetitive images. It's an innovative approach to encode the pixels of an image as strings from a given alphabet, then store the finite automaton that recognizes all the words representing the strings in the image. This approach potentially leads to efficient compression, especially for highly repetitive images
Jedis Database
This project is a simplified implementation of a Redis-like server, written in Java. It supports basic key-value storage, expiration of keys, and master-slave replication. The server is designed to handle multiple client connections concurrently using Java's Thread class.
Http Server
This project implements a simple HTTP server in Java. The server supports the following features: " Handling HTTP GET and POST requests, Serving static files from a specified directory, Echoing back user-provided strings, Returning the User-Agent header from the client request, Gzip compression for responses when requested by the client.
BitTorrent clone in Java
The BitTorrent project in Java has successfully implemented Bencode decoding, supporting strings, integers, lists, and dictionaries. Key features include torrent file parsing to extract tracker URLs, file lengths, info hashes, and piece lengths with their hashes. The project also established communication with HTTP trackers to discover peers and completed TCP handshakes with peers.