Projects

EV Cost Breakdown

Compare how your EV charging costs compare to a owning a gas vehicle. Calculate the breakeven points where owning an EV is more or less expensive for daily use.
Live Version

Source Code

Video and Audio Live Streaming platform for BobcatSports

Developed a full-fledged live streaming platform for Bobcat Sports from Radford, VA. Worked as a team to create a full stack system for live sports, events, and podcast streaming with live score updates and notifications. The MEAN (MongoDB, ExpressJS, Angular, and NodeJS) stack was used for this project. I took advantage of AWS CloudWatch, CloudFront, EC2-based load balancing to dynamically scale server capacity based on viewer demand for smooth streaming and cost-saving during idle hours.

Dynamic storage allocator

This is a dynamic storage allocator implemented using a segregated free list. The API is fully functional with the ability to malloc, free, and realloc memory a program to be able to use. This API is a functionally identical memory allocator to malloc from stdlib.h, however, with improved performance.

Simplified HTTP Web Server

This is a simple web server written in C from the ground up. The web server application can serve static files, handle JWT cookie based authentication, and MP4 streaming. This includes, but not limited to, but is not limited to: sending correct MIME-types for most major file types, correctly handling Content-Range headers for streaming, IPv4 and/or IPv6 support, and HTML5 fallback mode. The application has also been updated to handle HTTP/1.1 and HTTP/2 requests. The server is designed to take advantage of multithreading to ensure fast response to multiple concurrent users.

Multithreading API

This is an easy-to-use multithreading API that any existing program can use to add basic multithreading capability and its performance improvements quickly and easily. This is a fork-join thread pool, which will set up several workers who will keep track of their own and other worker’s pool of jobs. Workers will work through their own list of jobs before stealing jobs from other workers instead of staying idle. The list of jobs is implemented using a LinkedList.

DNA Tree

A very simple java program that can organize two of the most common biological DNA and RNA sequences into a tree. The tree is a custom designed data structure that can support insertion, removal, traversal, and printing.

Buffered External Binary Data Sorting

This java program can sort a binary file containing records of 4 bytes, represented as a key and a value, each taking up 2 bytes. The program will apply the Heapsort algorithm to sort the data, and all data access will be made through an LRU (Least-Recently Used) buffer to minimize disk reads and writes. The program follows standard OOP and documentation procedures.

User Customizable Shell

This program implements a custom shell prompt, complete with job control, signal handling, pipes, I/O redirection, and exclusive terminal access. The behavior is very similar to /bin/bash, however, it was built from scratch. Users also have an option to quickly customize their prompt to their personal desire using basic on-screen commands. The program frees all memory upon exiting and is leak-free.

Big Number Arithmetic

This is a java program to correctly process simple math operations on number larger than 64-bit. The program uses a LinkedList to keep each digit of the input number in reverse order and then apply basic operations on each number as we learned in elementary school. The operations currently supported are addition, multiplication, and exponentiation. The input must be supplied into the program through a text file in Reverse Polish notations (RPN).

Closed Source.Paid Work.

Business Revenue Reporting

An MySQL powered fully featured business reporting software. Written in PHP and Javascript with Bootstrap. The entire system was build from ground up for the needs of the business and has been in prodction since late 2016.

This project is an internal tool used by the business, there is no public access.

VT (Easy) Class Search

iamdhrumilshah.com/vt
A website to enable faster search into Virginia Tech's class timetable.
Live Version

Source Code
Closed Source.Paid Work.

Culdesac

culdesacbrand.com
Culdesac is a brand initiated in Vancouver, BC, Canada which showcases inspiring artists and a clothing brand showcasing the Culdesac brand.
Live Version Archived Version
Closed Source.Paid Work.

Kevin Hackett

iamkevinhackett.com
Kevin Hackett is an up-and-coming artist from Vancouver, BC, Canada.
Live Version Archived Version
Closed Source.Paid Work.

Sayona

sayonallc.com
A business working to create a chain of amazing convenience store in the Roanoke Valley area.
Live Version