Currently working on...

A better pdf reader for the web

A hobby project; I'm working on a better PDF reader for the web, specifically for those who spend a lot of time reading textbooks, reports, or research papers


    Past Work


    Convolution visualizer web app

    Created a web app that allows you to apply convolutional filters to images through your web browser, works with kernels from size 2x2 to 7x7 (currently offline, can be self-hosted, refer to repo)

    • Used Flask to build a python web app that can process images
    • Implemented the image convolution algorithm from scratch
    • Enabled multiple filters to be applied to an image sequentially

    Re-implementing U-NET paper

    Implementation of the 2015 paper U-Net: Convolutional Networks for Biomedical Image Segmentation using pytorch and other machine learning libraries. Currently performing a single class segmentation with plans to later adapt the model to a multi-class image segmentation task.

    • Preprocessed images and segmentation masks
    • Adapted model architecture for my specific segmentation task
    • Used dropout layers for regularization

    Convolutional neural network from scratch (no tensorflow or pytorch, only numpy)

    I implemented a convolutional neural network from scratch. I wanted to understand the process of calculating and propagating gradients of convolutional layers. Model was validated on the famous MNIST digits dataset

    • Implemented convolutional layer from first principles
    • Created an interface similar to PyTorch, layers were encapsulated as objects with some common methods for gradient calculation and forward propagation

    Rizz.me

    An anonymous text messaging app. You share a link from which anyone can send you text messages using a server-generated username and password. Conversations persist but can be terminated at any point by the user. This build initially started as a joke, but was popular on buildspace's demo day!

    • Implemented serverside session management for authentication
    • Used websockets for handling chat events on client and server
    • Centralized all error handling on the backend
    • Wrote unit and integration tests to run before all deployments

    First principles backpropagation implementation [video and code]

    I couldn't find a resource on backpropagation that explained it to a deep enough level, so I created a video explaining backpropagation in neural networks as best I could, without any abstraction or skipping any mathematical steps. I wanted to reach such a level of depth that a viewer following along could perform each and every calculation by hand if they really wanted to.

    • Used powerpoint to animate LaTeX (this was interesting)
    • Wrote simple, readable code which followed directly from the math concepts I explained
    • Designed a model using functional programming paradigms, forgoing unnecessary complexity and abstraction

    Real-time NLP text editor

    Inspired from apps like grammarly, I created a web app that can interpret text and predict which sentiments are the most prominent.

    • Used a dataset of tweets to train a tensorflow model to detect sentiment in short text
    • Created a Flask webserver to process incoming requests
    • Created a web app that allows anyone to interact with the webserver and to send their own text through the model

    K-Means Clustering algorithm implementation [VIDEO AND CODE]

    The first machine learning model I ever made from scratch. I implemented the K-Means clustering algorithm using NumPy and validated it on some test data

    • Created a video explaining the intuition behind the algorithm
    • Implemented algorithm using a functional programming approach

    Sorting algorithm visualizer

    Used Pygame to visualize different sorting algorithms

    • Used an object-oriented approach to implement a pygame wrapper for bubble sort and insertion sort algorithms