01. My Projects

Project Image

Discovery Portal for Twitter Collections

Web application to consolidate and streamline access to 7 billion tweets stored across three disparate databases. The app features server-side functionality for dynamic sorting and filtering of Twitter collections, ensuring efficient data retrieval. We coordinated team efforts using Jira for task management and engaged in regular client meetings to refine project goals and adapt to evolving requirements.

Note: This project was a team effort completed by: Hamza Saif, Fiona Mustard, Sai Duduru, Kyra Forest, Vaasu Agadkar

Project Image

VT Marketplace Web App

A cloud-based marketplace application enabling users to buy and sell items. It's currently deployed on an Amazon EC2 instance for scalable and reliable access. This project leverages Jakarta EE, PrimeFaces, and Google Maps API to create a robust and interactive user interface. A well-designed SQL database schema is used for efficent data management and retrieval. The web app features user authentication with hashed and salted passwords.

Note: This project was created for learning purposes rather than actual use.

Project Image

Personal Server

A custom self-hosted server developed to serve files, stream MP4 videos, and implement token-based authentication using JSON Web Tokens. The server was designed to handle multiple clients simultaneously and supported persistent connections following the HTTP/1.1 protocol. Security measures were implemented to protect sensitive files, and the server was compatible with both IPv4 and IPv6. Additionally, HTML5 fallback support was integrated, and the system was made robust against malformed requests and client issues. This project provided a deep understanding of networking protocols, concurrent programming, and secure communication methods.

Project Image

64-bit Dynamic Storage Allocator

The Malloc Lab project involved designing and implementing a custom dynamic memory allocator for C programs, similar to the standard malloc, free, and realloc functions. The main tasks included managing a heap, allocating and freeing memory blocks, and handling reallocation requests. The allocator had to ensure 16-byte alignment for all allocated memory and efficiently manage both space utilization and throughput. This required careful management of memory, including splitting and coalescing free blocks to minimize fragmentation. A key component was a heap consistency checker, which verified the integrity of the memory management operations.

Project Image

Ford Fulkerson's Algorithm

The Ford-Fulkerson algorithm finds the maximum flow in a network with a given source and sink. It creates a residual graph with the given capacities and iteratively finds an augmenting path from the source to the sink using Breadth First Search (BFS). Along the augmenting path, it updates the residual capacities of the edges and adds the path flow to the overall flow. Finally, it returns the maximum flow and prints the augmenting paths and the total flow.

Project Image

Prim's Minimum Weight Spanning Tree

The project uses Prim's algorithm to find the Minimum Spanning Tree (MST) of a graph represented by an adjacency matrix. The algorithm initializes a boolean array that keeps track of which vertices are included in the MST. Initially, only the source vertex is included in the set. Utilizing breadth-first search, the algorithm traverses the tree then repeatedly selects the vertex with the minimum weight that is not already included in the MST and adds it to the set. The weight of the MST is updated at each step until the all vertices are included.

02. My Skills

Coding Languages

  • JavaScript
  • Java
  • HTML
  • CSS
  • Python
  • MATLAB
  • C
  • Git
  • Jakarta EE
  • PrimeFaces
  • React
  • MongoDB
  • mySQL
  • Express
  • Node.js
  • Assembly
  • Bash
  • WildFly
  • Docker

03. My Education

Virginia Tech Logo

Virginia Tech

Major in Computer Science | Minor in Mathematics

Here is some relevant coursework I've completed:

  • CS 4624: Multimedia, Hypertext and information Access
  • CS 4264: Principles of Computer Security
  • CS 4104: Data and Algorithm Analysis
  • CS 3214: Computer Systems
  • CS 3114: Data Structures and Algorithms
  • CS 3604: Professional in Computing
  • CS 3744: Intro GUI Programming/Graphic
  • CS 2114: Software Design & Data Structures
  • CS 2505 & 2506: Computer Organization
  • CS 2104: Intro to Problem Solving in CS
  • MATH 4175: Cryptography
  • MATH 3134: Applied Combinatorics and Graph Theory
  • MATH 2204: Intro Multivariable Calculus
  • ENGL 3764: Technical Writing
  • STAT 3704: Statistics for Engineering Applications
NOVA Logo

Northern Virginia Community College | 2019-2021

Associates in Computer Science

Here is some relevant coursework I've completed:

  • CS 1064: Programming in Python
  • CS 1114: Intro to Software Design
  • MATH 1225: Calclus I
  • MATH 1226: Calclus II
  • MATH 2114: Linear Algebra
  • MATH 2214: Differential Equations
  • MATH 2534: Discrete Math
  • COMM 2004: Public Speaking