Projects

2024
Personal Portfolio Website

October 2024

Designed and developed a personal portfolio website to showcase skills, career, certifications, and projects.

  • Built with Astro framework using TypeScript and Tailwind CSS for a fast, modern dark-themed UI.
  • Implemented interactive HTML5 Canvas particle network animation with cursor-reactive behavior.
  • Automated CI/CD pipeline with GitHub Actions for linting, formatting, accessibility checks, link validation, and deployment to GitHub Pages.
  • Features include collapsible accordion sections, grayscale-to-color icon hover effects, and responsive design across all devices.
Agnoster Custom Terminal Theme

October 2024

Customized the Agnoster Zsh terminal theme for Oh My Zsh with personal enhancements and a matching VS Code terminal color scheme.

  • Added a timestamp function displaying current time in [HH:MM:SS] format at the start of the prompt.
  • Converted to a two-line prompt layout — context info on the first line, command input on the second.
  • Custom color scheme: cyan for directory path, magenta for clean git branches, and yellow for dirty/uncommitted changes.
  • Included a VS Code terminal color configuration replicating the macOS Homebrew theme with a pure black background.
2022
CTGAN for Tabular Data Synthesis

July 2022

Experimented with Conditional Tabular GAN (CTGAN) for generating synthetic tabular data to address data scarcity and class imbalance in machine learning pipelines.

  • Trained a CTGAN model to generate realistic synthetic rows from tabular datasets for data augmentation.
  • Explored GAN-based approaches to tackle data imbalance and scarcity challenges common in real-world machine learning projects.
  • Documented the experiments and findings in an accompanying Medium blog post.
Streamlit Web App with Snowflake

June 2022

Built an interactive data-driven web application using Streamlit and Snowflake as part of the Snowflake Badge 2 certification course.

  • Developed a Python-based web application using Streamlit for building interactive data interfaces.
  • Integrated with Snowflake's cloud data platform for data access and processing.
  • Deployed the application on Streamlit Community Cloud for public access.
Covid-19 Detection Using X-Ray Images

April 2022

Built a deep learning model using Convolutional Neural Networks to detect Covid-19 from chest X-ray images for diagnostic assistance.

  • Designed and trained a CNN model in Python to classify chest X-ray images as Covid-19 positive or healthy.
  • Implemented the full machine learning pipeline in a Jupyter Notebook including data loading, preprocessing, model training, and evaluation.
  • Applied deep learning techniques for medical image classification to assist in early Covid-19 diagnosis.
2021
UK Railway Delay Analysis

November 2021

Analysed monthly railway train delays across United Kingdom regions using passenger performance data to identify patterns and trends.

  • Performed data analysis in a Jupyter Notebook on regional passenger performance metrics to examine delay patterns by month.
  • Worked with UK railway datasets in CSV and ODS formats containing consistent regional measures of passenger performance.
  • Generated a data report summarising delay trends and regional performance comparisons across the UK railway network.
Titanic Dataset Exploratory Data Analysis

August 2021

Performed exploratory data analysis on the Titanic passenger dataset to uncover survival patterns, passenger demographics, and statistical trends.

  • Conducted EDA in a Jupyter Notebook using Python to analyse survival rates, fare distributions, and demographic patterns.
  • Used the Sweetviz automatic EDA library to generate a comprehensive HTML report providing an overview of the dataset.
  • Worked with a simplified version of the Kaggle Titanic dataset with reduced feature columns for focused analysis.
IoT Toilet Status Monitor

June 2021

Built an IoT solution to monitor real-time occupancy of shared restroom stalls, helping users avoid long queues by checking availability remotely on their mobile devices.

  • Developed a Python-based IoT system using occupancy sensors to detect whether restroom stalls are vacant or occupied in real time.
  • Enabled remote mobile monitoring so users can check stall availability before physically walking to the facility.
  • Designed to reduce waiting times and improve user experience in shared restroom facilities such as offices and public buildings.
IoT Automatic Pet Feeder

June 2021

Built an IoT-based automatic pet feeder using ESP32 and MicroPython that dispenses food on a schedule and enables remote monitoring.

  • Programmed an ESP32 microcontroller in MicroPython to control scheduled food dispensing for pets.
  • Integrated ThingSpeak cloud platform for real-time feed level monitoring via the ThingView mobile app.
  • Configured IFTTT notifications to alert the owner when feed levels drop below a threshold.
  • Enabled remote pet feeding and monitoring, allowing owners to maintain feeding schedules when away from home.
Digital Development Initiative

June 2021

This project aims to use World Bank data and analyse it. The objective is to find the 10 best countries that deserve the World Bank funding for digital development. The countries filtered are based on many different features such as their GDP, Internet Users, etc. The future predictions of each country's growth was also evaluated using Auto Regressive Integrated Moving Average (ARIMA) algorithm.

Other contributors: Faizan Alvi

Deep Neural Network for scene classification

June 2021

Used TensorFlow neural network to classify scenes in the images in Python-3. For image data generation, Keras library was used. I created a CNN with five convolutional layers followed by a DNN with one hidden layer containing 512 neurons and output layer containing 15 neurons (each for one category). All neurons use RELU as an activation function. Iterations were stopped when 0.7 accuracy is reached.

Scene Image Recognition via Bag of Words

June 2021

Implemented an algorithm in Python-3 that recognizes different scenes. Specific number of images from 15 different categories are given to the program. It then calculates the feature descriptors using HOG method. K-Means clustering is then performed on the descriptors and then histograms of descriptors are created. These labelled descriptors from histograms are passed to SVM to execute supervised learning. Then the test images are loaded and predicted. Results were generated in the form of confusion matrix. Accuracy achieved was roughly 0.4.

Harris key-points detector and its robustness to rotation and scaling

June 2021

Implemented a Harris key-point detector in Python-3 using OpenCV library. It successfully detected corners in the image. Frequency of corners was varied using the thresholding. Original image corners were compared with the rotated and scaled versions of the identical image. In rotation, image was rotated 24 times, each of 15-degree increment and each time its corners were matched with that of the original image. Similarly, eight scaled images, with scaling factor m=1.2, corners were compared with that of the original. All the results were then plotted to visualize better.

Interactive Foreground Segmentation

June 2021

Implemented a basic version of the interactive image cut-out/segmentation approach called Lazy Snapping in Python-3. Test image along with corresponding auxiliary image depicting the background and foreground seed pixels are given to the program. Then the program is able to segment only the foreground successfully. Firstly, K-Means clustering on the colour pixels is executed which gives the centroids. Then the program calculates the likelihood of each pixel to belong to each cluster using the method similar to multivariate Gaussian Mixture Model.

NETFLIX Movie Recommendation

June 2021

Used NETFLIX Competition dataset and cleaned for analysis. Then I used Collaborative Filtering and Pearson's R Correlation as two methods of recommendation to build a model. Evaluated performance at the end.

Letter Recognition using Machine Learning

June 2021

Code is written in Python for recognition of each letter separately. The project was carried out twice using different algorithms each time. XGBoost and KNN algorithms were used.

Bank Marketing data analysis (EDA)

June 2021

This project explores the bank marketing dataset using automatic EDA packages in R. The objective is to figure out the frequency of customers using which type of accounts so that new bank offers are offered to the most loyal customers.

Human Activity data analysis (EDA)

June 2021

This project is a data analysis of human activity throughout the day using automatic EDA packages in R. The data was collected using the smartphone and smartwatch sensors. The results show useful insights into how a human body movement varies at times.

House Prices Analysis (EDA)

June 2021

This project aims to do an exploratory data analysis of house prices in America. Another aim of this project is to do the analysis in the shortest time therefore automatic EDA packages are used. The analysis figures out some trends of how prices vary throughout the year and which options in the house increase its value over time.

Sentiment Analysis of Mall Customers

June 2021

It is an Exploratory Data Analysis (EDA) of mall customers dataset in order to do sentiment analysis. The original dataset was downloaded from Kaggle. The objective of this analysis is to use and explore the Automatic EDA packages in R and analyse dataset. It explores how customers' spending power varies according to their age and other variables.

2020
Emotional AI: Facial Key-Points Detection

August 2020

Performed image visualization and augmentation. Then, normalized the data set. Built and trained a Deep Neural Network based on Convolutional Neural Network and Residual blocks. Used TensorFlow and Keras for building neural network.

Micro-Inverter with Lithium Ion battery

July 2020

It was a final year project of my bachelor's program. The aim of the project was to design and implement a single phase small sized inverter with fine sinusoidal A.C output of 220V and 150W using 12V Lithium Ion batteries. It is a load optimized inverter for the supply of IT equipment. The primary part of the project includes charging of the lithium-ion batteries using a Buck converter. The output is given using the Boost converter which uses a high frequency transformer. The voltage is then converted into A.C using H-Bridge. To reduce leakage inductance of the high frequency transformer snubber and clamping circuits are used. The secondary part of the inverter includes the filtering of the main supply to reduce voltage surges. The control signals are generated using TL494 PWM modulator which is used in a push-pull mode to keep the sinusoidal wave within the threshold. Commercially available inverters use Lead Acid batteries due to which they are bulky to move around and their charging time is quite long as well. The charging time of Lithium-Ion batteries is roughly one hour, and they are considerably smaller in size. The circuit design was completed in Proteus and the simulation was completed in the Simulink MATLAB.

Buck converter with feedback

January 2020

A buck converter is a form of DC-DC converter which steps down the voltage while increasing the current. The buck converter is attached with the feedback voltage from load so that whenever the load voltage varies the duty cycle accordingly to keep load voltage close to the desired value. In the project, TL494 IC is used to provide PWM signal to the circuit in which Vcc is supplied 12V and DTC is kept at ground. The 2K resistor is attached to the RT and 0.01uF capacitor is attached to the CT pins of the IC. Reference voltage of 5V is sent to the REF pin, using voltage divider, from the 1IN+ pin. The transistor used for switching is IRC530 MOSFET and its PWM is given from C1 pin of TL 494 IC which is the collector pin of the BJT output 1. The load resistor is of 2.5 Ohm and the freewheeling capacitor is a 470uF.

Digit recognition from 0-9 using deep neural network

January 2020

The main objective of this project was to design and implement a deep neural network for the recognition of the digit ranging from 0 to 9. Network is fed with images of the handwritten digits and the network gives the highest output at a particular node according to the digit recognized. There are many available activation functions like sigmoid, Tanh, Relu, Leaky Relu etc. If the problem is a classification problem, the most common choice of activation function is sigmoid. Neural network and libraries were implemented in Jupyter Notebook. The network gave results with 97.22% accuracy.

2019
Carrier frequency offset algorithm

June 2019

The main objective of the project is to implement carrier frequency offset algorithm on TI DSP kit C6713. The two-stage algorithm for carrier frequency offset estimation in frequency selective fading channels for burst transmission with DSP implementation on SDR platform. The first stage (coarse estimation stage) provides a coarse estimate of CFO by using Modified Maximum Likelihood Data Aided (MMLDA) correlation-based algorithm. The second stage (fine estimation stage) estimates the residual offset error for each burst on sample by sample basis using blind estimation approach.

Dual frequency patch antenna for wave propagation

June 2019

A patch antenna (microstrip antenna) is a type of radio antenna with a low profile, which can be mounted on a flat surface. It consists of a flat rectangular sheet or "patch" of metal, mounted over a larger sheet of metal called a ground plane. The objective of the project is to design a dual frequency patch antenna in ANSYS HFSS. The main design includes ground plane and a substrate (Roger 5870) over it and then a microstrip patch over substrate. The Coaxial probe is designed as a transmission line below the antenna. The design of patch antenna is made using DRIVEN MODAL type solution in HFSS. Driven modal gives the solution in terms of power. Whenever feed is given using modal solution, the results of excitation are better.

Position control using PID

June 2019

The DC motors have been popular in the industry control area for a long time, because they have many good characteristics, for example: high start torque characteristic, high response performance, easier to implement linear control etc. The PID (Proportional Integral Derivative) controller maintains the output such that there is zero error between process variable and set point/ desired output by closed loop operations. PID uses three basic control behaviors that are called the parameters of the PID. The parameters of the PID controller kp, ki and kd (or kp, Ti and Td) can be manipulated to produce various response curves from a given process. The main objective of the experiment is to design a position PID controller and an encoder for a 12V DC motor. PID controllers are widely used in industrial plants because of their simplicity and robustness. The encoder was made using two IR (Infra-red) sensors where one of them is used to count the number of tips crossed and the other one is used to calculate the direction of rotation. The disc for the controller is laser cut from acrylic sheet. The code of PID is run using Arduino UNO and an H-bridge is used to control the rotation of the DC motor.

Digital Multimeter

May 2019

Successfully designed and implemented a DC voltmeter and ammeter using an Arduino UNO as a controller for three ranges of voltmeter and single range of ammeter.

Audio Amplifier

January 2019

Amplifier IC: TDA 2030. Class AB amplifier to implement stereo amplifier. Using two 5.6W speakers.

FM receiver

January 2019

Implemented a Super Regenerative receiver which uses a single BJT to demodulate the signal. An audio amplifier is connected in series to amplify the signal.

2018
5-Band graphic equalizer

May 2018

The main objective of the project is to design and simulate the 5-band graphic equalizer within the given parameters. Design is made using MATLAB® GUI and it was simulated using SIMULINK®. Graphic equalizer (EQ) is used commercially to change the frequency response of any given audio file. It can be used to vary bass, treble etc. In the project, the equalizer is implemented on MATLAB® GUI incorporated with the options of selecting any .mp3 audio file from browser, five sliders to vary the frequency, buttons to play, stop and etc and input and output graphs. One octave bandpass filter standards are employed with center frequencies 63 Hz, 250 Hz, 1000Hz, 4000 Hz and 16000 Hz. The filter used is Butterworth both in simulation and GUI.

Power supply

May 2018

Designed and implemented a power supply with three different outputs with 220V and 50Hz input. Outputs: 1.2V to 24V with 0.5A, -1.2V to -24V with 0.5A, 5V with 1A.

Microwave oven controller

May 2018

Designed and implemented a basic microwave oven controller. The controller consists of predefined recipes to select and one can also set the values manually. The output of the controller is displayed on an LCD display and the buzzer is used to notify the user that the food has been cooked while motor is used for rotation of the bottom plate and temperature sensor is used to take temperature values. PIC18F252 microcontroller is used to control all the sensors.

Active band pass filter

January 2018

An active band-pass filter allows only a specific range of frequencies to pass through. It is designed by cascading a low-pass filter with a high-pass filter. In active filters we use active elements like here we are using OP-Amps. An active high-pass filter with lower cutoff frequency of 500 Hz is cascaded with an active low-pass filter with a higher cutoff frequency of 10 KHz.

Arithmetic Logic Unit

January 2018

Designed an arithmetic logic unit with 16 functions such as addition, subtraction, multiplication etc.