Projects

Jarvis.js Virtual Assistant System

Open-source virtual assistant, similar to Siri, Alexa, and Google Assistant, that can answer questions and execute various commands. Powered by Node.js, it features voice activation, AI-based intent classification with natural language processing, and a modular, extensible skill system.

Tech stack: Node.js, TensorFlow, Python

GitHub (Back-End) (opens in a new tab) | GitHub (Front-End) (opens in a new tab)

Parallel Heavy-Light Decomposition

Designed and implemented a parallelization of the heavy-light decomposition algorithm, which uses the segment tree data structure to efficient perform range queries on trees. Parallel algorithm uses the so-called Euler Tour Technique to find heavy chains.

Tech stack: C++, parlaylib

Email me for code

Meta Threads Clone (Next.js)

Functional clone of the popular app, implementing social login, posting, replying, user profiles, and more, deployed on Vercel. Leverages Next.js 13’s super cool abilities (server-side rendering, App Router) for an ultra-responsive user experience.

Tech stack: Next.js, React, TypeScript, MongoDB

Live (opens in a new tab) | GitHub (opens in a new tab)

AI Pacman

Implemented a various AI algorithms to solve Pacman (either for Pacman or for the ghosts). Algorithms include DFS, BFS, uniform-cost, A-star, multiagent minimax / expectimax, reinforcement learning, and hidden Markov models.

Tech stack: Python

Email me for code

Raven for BCPS One

Mobile app built with React Native for students and parents to access their school accounts, course material, announcements, grades, calendar, and more. Attained thousands of active users during its peak -- but is unfortunately retired now, since my internship with BCPS is over.

Tech stack: React Native, Swift, Kotlin

Article (opens in a new tab) | App Store archive (opens in a new tab) | Google Play archive (opens in a new tab)

Roving Vehicle Simulator

Mars rover simulation program, inspired by online game Cubefield, built using the Unity game engine. Used in research project/publication by the Space Systems Lab at UMD.

Tech stack: Unity3D, C#, C++

GitHub (opens in a new tab)

snotify (read s-notify, not snot-ify)

C program that sends text messages and email alerts to users of supercomputing clusters (like UMD's Deepthought2) when their slurm jobs finish running.

Tech stack: C, Bash

GitHub (opens in a new tab)

campus-maps

Geographic social platform for college students to post and share cool locations and events on campus, Implements common social features like liking, commenting, following, and sending direct messages (WIP -- incomplete because of school 🙃).

Tech stack: React, Redux, Firebase

GitHub 1 | GitHub 2 (opens in a new tab)

Keepora

Open-source note-taking app inspired by Google Keep and Typora, allowing users to write in WYSIWYG markdown using easy hotkeys (abandoned since I started using Notion).

GitHub 1 (opens in a new tab) | GitHub 2 (opens in a new tab)

Tech stack: Electron, React

MPI Game of Life

Parallel implementation of John Conway's Game of Life, tested on 4, 8, and 16 processes for correctness and parallel speedup. Devised algorithm to divide data and perform efficient computation and communication across HPC nodes using the MPI framework. Used Valgrind and GDB to debug the C++ code and eliminate memory leaks.

Tech stack: C++, MPI

Email me for code

Racket Compiler

Built a complete parser and x86-assembly compiler for Racket, a functional programming language in the Lisp family. Includes pretty cool programming paradigms. Made sure that compiled assembly code is twice as fast as equivalent Python code.

Tech stack: Racket, C, Python

Email me for code

Quake Heap

Implemented an interesting data structure called the Quake Heap in Java, ensuring that it consistently outperforms its well-known cousin, the Fibonacci Heap.

Tech stack: Java

Email me for code