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.

a blue and black machine
a blue and black machine
a person sitting at a table with a laptop
a person sitting at a table with a laptop
text
text
an old computer with a game on the screen
an old computer with a game on the screen

Software Development Portfolio