In this project, I practiced the full DevOps cycle, starting from Git version control to automated deployment on Azure. I forked a GitLab repository, resolved a merge conflict, and ensured that both branches’ changes remained intact. Then I built and fixed the Dockerfile so it could actually run the Node.js app inside a container.
After that, I created a proper CI/CD pipeline in GitLab with three stages: build and test, containerize, and deploy. I used GitLab’s container registry to store the built image and connected it to Azure App Service using a webhook, so every time I pushed new code, it automatically deployed to the cloud.
This process helped me understand how GitLab runners, Docker containers, and Azure environments connect together. In the end, the app was fully deployed, running on port 3000, and accessible through the Azure public URL.
As part of my Distributed Systems course (MSc), I built this full-stack chatbot application by using GPT-2 (124M parameters) as a base model. The GPT-2 model was split layer-wise into two halves and deployed on two local PCs during development. These two parts communicate over the gRPC protocol. To make the application fully functional and user-friendly, I developed 7 containerized microservices: UI service, API gateway, authentication, database, inference, monitoring, prompt engineering, and load balancing. These services interact through RESTful APIs to provide a seamless user experience. For the backend, I used MySQL for storing user and chat history data. Part of this project was containerized using Docker and successfully deployed on the AWS (t2.medium EC2) cloud. I performed unit tests, load tests, and chaos engineering (98.5% uptime) to evaluate robustness and performance. From this project, I learned to design, develop, test, and deploy a cloud-native application.
This competition was organized by the HASOC (Hate Speech and Offensive Content) committee on Kaggle. The goal of this competition was to identify hate speech and offensive content (HASOC) from memes in Bangla, Hindi, Gujarati, and Bodo. Separate training and testing datasets were provided for each language. I worked on the Bangla meme dataset. A meme consists of an image and text. In the training dataset, there was an image folder and an annotated CSV file. Each meme was labeled across four categories: Sentiment (Positive, Negative, Neutral), Sarcasm (Sarcastic, Non-sarcastic), Vulgarity (Vulgar, Non-vulgar), and Abuse (Abusive, Non-abusive). This was a multimodal data fusion task requiring the integration of image and text in the model. For the image branch, I experimented with ResNet50 and ResNet152, while for the text branch, I used BanglaBERT, XLM-RoBERTa-large, and BERT-base-uncased. During training and validation, I achieved near-perfect results. For the official test set on Kaggle, the ranking metric was the average macro F1 score. I ranked 7th out of 17 teams (23 participants) with a score of 0.5763, while the top team achieved 0.62755. All code, results, and reports are available in my GitHub repository. From this task, I learned how to concatenate multimodal features and how to train a model using a multihead classifier layer. I also learned that one category could work as a cue for predicting other categories in multimodal data.
Packages: Resnet50, Restnet152, BanglaBERT, XLM-RoBERTa-large, Transformer, Tensorflow, Numpy, Pandas and Keras.
See More Details: GitHub, Report
In this project, I investigated the effect of text augmentation on model training. Text augmentation is more difficult than image augmentation. The basic units of text are words. Words have syntactic and semantic meaning that depends on the context. There are many text augmentation techniques, such as paraphrasing, rephrasing, synonym replacement and back translation. I used LLM-based semantically similar augmented data to train the model. The overall accuracy improved from 87.77% to 95.71%, nearly a 10% increase. AUC increased from 0.94 to 0.99. This experiment proves that augmentation can increase a model's generalization capacity and help classify unseen data more robustly.
Packages: Transformers, Dataset, Numpy, Pandas, Matplotlib, Sklearn, Os, Collections, Evaluate
This project was part of the Natural Language Processing course (MSc). In English, there are many words that have multiple meanings. Meanings vary based on the context. In this project, I used Wikipedia and WordNet to disambiguate the meaning of an ambiguous word. For similarity measurement, I used Lesk, BERT, Word2Vec, GloVe, and FastText. See my GitHub README.md for more details.
See More Details: GitHub
Generative AI could be used for identity theft and harmful activities. To prevent this, we can use another AI to detect deepfake voices and prevent crimes. In this project, I trained and fine-tuned LSTM, CRNN, and FCNN models to detect AI-generated voices. I achieved 98%, 99%, and 98% accuracy on LSTM, CRNN, and FCNN, respectively. See my GitHub README.md for more details.
See More Details: GitHub
This project is part of the Deep Learning course (MSc). In this project, we fine-tuned pretrained models—VGG16, ResNet, EfficientNet, and DenseNet121—using a retinopathy dataset to detect retinopathy. To further improve accuracy, we used attention mechanisms and ensemble learning. We used Grad-CAM to visualize the parts of the image that the models used for training. See my project report on GitHub.
See More Details: GitHub
The CPU-based multithreaded implementation performed significantly better, with an average execution time of 7.546 sec compared to 30.083 seconds for the single-threaded version, resulting in a 3.9× (74.92%) improvement. For the GPU-based implementation, the unoptimized ZNCC computation had an average execution time of 117.665 ms, while the optimized version reduced this average time to 54.758 ms—achieving a 2.14× (53.45%) speedup.
This project is part of the Big Data course (MSc). One year’s worth of news coverage data was collected from the GDELT (Global Database of Events, Language, and Tone) database. The collected data was refined and normalized to perform exploratory data analysis (EDA). I found a significant gap between the number of news articles mentioning Palestine and those mentioning Israel. The average sentiment toward Israel and Palestine varies greatly across different regions, such as the Middle East, Europe, and North America. The full report is on GitHub.
Tools: PySpark, Pandas, Matplotlib, Socket, GeoIP, PyCountry, TLDExtract, Plotly, Geopandas, Folium, Prophet, Cartopy.
See More Details: GitHub, Report, Presentation
Harnessing Apache Spark and advanced visualization techniques, I transformed 245K+ weather records spanning three decades into actionable insights. This project showcases my expertise in big data analytics, data cleaning, and dynamic storytelling to drive strategic decision-making.
Tools: Apache Spark, Pandas, Matplotlib, Seaborn, Google Colab.
See More Details: GitHub
It is a wonder how a simple equation can create a complex and beautiful pattern.
See More Details: GitHub
This C++ program converts an image into an artistic sketch. See the code on GitHub.
See More Details: GitHub
Developed an intelligent anomaly detection device using Raspberry pi and Edge AI. Implemented IoT communication pipeline using MQTT and Node-RED, which demonstrates an understanding of network communication protocols and data transmission.
Technologies: Raspberry Pi Pico W, MQTT, InfluxDB, Grafana, Random Forest
Hardware: Arduino Nano, OLED Display (128x64), DS18B20 Digital Thermal Probe, MAX30102 Heart Rate and Pulse Oximeter Sensor Module, ESP8266 ESP-01 WIFI Wireless Transceiver. Software: Arduino Integrated Development Environment, Bylink IoT Android app...........
Hardware: Transformer, Registers, Capacitors, Bridge Rectifier, LM317 IC, PCB design
Functionality: Using a knob, its output voltage can be regulated. It produces smooth DC voltage (low ripple factor)
This video demonstrates the design and implementation of a campus network project. The project includes configuring routers, assigning static IPs, setting up DHCP, Web-Server and DNS servers, and testing connectivity across multiple departments (ICT, CSE, Math). Watch to learn more about the topology and network configuration!
Designed and simulated a dual-band dipole antenna using CST Studio Suite, with a focus on analyzing S-parameters, radiation patterns, VSWR, gain, and impedance.
Technologies: CST Studio Suite
This app uses RestAPI to retrieve data from the 'forkify' database and shows the result to the user, and stores the user data at the user’s end using session and cookies.
Technologies: HTML. CSS, JavaScript, Bootstrap, NodeJS, WebPack, Visual Studio Code.
Frontend: HTML, CSS, BOOTSTRAP4, JAVASCRIPT. Backend: SQL Database, C#. Framework: ASP.NET and .Net framework. Code editor: VISUAL STUDIO 2022. A website where unused drugs can be donated and another user can request them for their use............
Language: HTML, CSS, Vanilla JavaScript Tools: Visual Studio Code This single-page website can record one's daily income and expenses. This website can perform read-write, and
update operations.
Language: HTML; CSS; JavaScript; Bootstrap; NodeJS; WebPack. Tools: Visual Studio Code
Functionality: This app sends a request to the ‘forkify’ API, shows the result to the user, and stores user data at the user’s end using sessions and cookies........
Language: HTML, CSS, vanilla Javascript. Development Environment: Visual Studio Code. The game can be played by two players at once. Developed this project during my first year at the university. ....