Growing up, I was infatuated with video games and that infatuation inspired me to begin my programming journey. I quickly fell in love as programming gave me a platform to express my creativity and make my ideas a reality that others could experience. Currently, I am pursuing my masters degree in general computer science and looking for opportunities to gain more experience and spread my wings. My career journey is just beginning and there is still so much more I hope to learn.
Present-2021
2021-2018
Present
NBA Stat Visualization Portal
The NBA is regarded as one of, if not the, top premier professional basketball league in the world. Since it's inception in 1946, the NBA has provided countless hours of entertainment to fans, endless commercial value to companies and teams, and consistent improvements towards how the game of basketball is played. At the highest level of individual skill, even the smallest statistical improvements and advantages can make a difference. The motivation behind embarking on this NBA data visualization project stems from a deep appreciation for the dynamic and rich world of basketball statistics and a desire to provide fans, analysts, and enthusiasts with a visually immersive experience. In the past, the NBA has generated extensive dataset comprising player performances, team dynamics, and game statistics. By harnessing this wealth of information, this project aims to unlock valuable insights and trends, enabling users to delve into the intricacies of the sport. Whether exploring the career trajectories of star players, analyzing team strategies, or tracking the pulse of a game through interactive visualizations, this project seeks to transform raw data into a compelling narrative. Ultimately, the goal is to enhance the understanding and enjoyment of the NBA by presenting complex statistical information in an accessible and engaging manner, catering to both casual fans and avid analysts alike.
To achieve this we established an interactive data visualization portal for NBA player related statistical insights. Users can view graphs representative of their favorite players like career progressions, play style, and similar players. In the future, we aim to also expand this with ideas like NBA team profiles with rosters and franchise statistics, interactive plots of the entire NBA with collapsing and expandable views, and the introduction of more types of visualizations at the individual player level, league level, and other groupings like countries or eras.
On the frontend, the main application runs at our website dribble-dynamics.com with ReactJS and D3JS as backbones for the UI and visualizations. Meanwhile on the backend, we have a Flask server for request handling and rely on Pythons breadth of data processing libraries for our processing backbone. Our data is all hosted in a MySQL database with our data sourced from the NBA API. The web application communicates via RESTful requests with our server which then handles the requests by querying the database for the required information and processing it into the correct format for visualizing. Our website assets, server, and database are all hosted on AWS, with our domain and routing managed by Route53 and CloudFront, website assets being served from S3, production server running on EC2, and database running on RDS.
For my Software Engineering course final project, I was the product owner on a team developing a social media type application focused on the sharing of recipes and kitchen management tools for home cooks. As college students, we have come to realize the importance of cooking as a personal life skill. Cooking saves money, provides ease of access, and is a skill that sees daily usage. However, being able to cook is difficult to learn. It requires technical and management skills that not everyone can pick up easily. Recipes are an easy solution to this as they give home cooks a blueprint to follow. Recipes are also abundant: everyone has their own personal recipes and flavors of food are like music in how they can be mixed in infinite ways to create something new. So, we wanted to develop a tool that lets people share and find recipes as well as manage their pantries and the other steps of the cooking process.
We chose this project because it covers, ultimately, a domain that anyone can easily enter with the potential for infinite content and utilization. Cooking is a significantly relevant skill for everybody and recipes are seemingly infinite. Our goal is for this app to solve one simple problem: How to get started in cooking? It acts as a social media platform for professionals to share their ideas and a management tool for amateurs looking to learn. Overall, there are two separate flows for our app. The first flow is for professional chefs posting their recipes on the site. The flow is as follows: Upload recipes, gain likes and ratings for their recipes, boost their popularity, and give them more career leverage. The second flow is for amateurs looking for recipes to try. The flow is as follows: Browse recipes, keep tabs on the ones you want to try, access pantry and shopping list automatically filled with necessary items, buy items, try recipes, save/rate any recipes you like. We aim to give people a hub for their home cooking needs (practical use) and develop an online social market (theoretical use since it relies on the popularity of the application). Hopefully, by the end of the project, we better understand concepts like user focused design, code management, group cohesion, and, of course, a better understanding of the software tools being used.
My work on the project was predominantly full stack development: leading the front end app creation and assisting with back end database management as well as data fetching/sending scripts. Our app was created using React Native on the front end, allowing for easy porting to both iOS and android build systems. I was in charge of the blueprinting and layout of the app and worked with one other team member to create the front end. Meanwhile, our back end was a Flask server that managed data requests using the REST API to fetch and post data to our MongoDB database. Here I assisted on some general scripting and API calls as well as refactoring code to allow for smooth integration with the frontend.
RU Connect is a fully realized online marketplace designed by and for Rutgers University students. It works to provide students an intuitive means of selling, buying, and trading the various commodities that only students need. This idea was inspired by a team member who was having trouble selling one of his textbooks due to the textbook being only used for this specific course. We knew about the traditional methods of online transaction like ebay or amazon or even facebook post listings. However we thought that the traditional methods were often inconvenient and cluttered with unrelated content or other extraneous listings. Our RU Connect marketplace improves upon the limitations of traditional marketplaces by focusing on campus Rutgers students to deliver a straightforward, convenient solution to their marketing needs.
With my team of four, I developed a ReactJS web app for users to interact with and post items on the marketplace. This app would send and receive data from our backend MongoDB database using REST API request calls on a Flask server. I predominantly focused on building the front end pages like the feed and account pages. Occasionally, I overlooked the back end scripts to make sure they would integrate well with our front end application.
This project was for my Honors Intro to Engineering class at Rutgers. The goal of the assignment was to develop any human centered design product with the main purpose being something to help people with everyday tasks. My group decided to create a waterbottle that tracks its users consumption and log it in a similar fashion to the health app on an iPhone or a fitbit. We ended up developing our product using an Arduino and creating a business website keeping track of our steps and expenses.
My job during the project was to work on the coding aspects of development. I was in charge of creating the business website and writing the code to operate the Arduino. I also played a role in the design of the product, drawing up the sketches for the bottle layout and application layout. The project gave me an introduction to working in a group environment on engineering task. It helped me practice communication and taught me the basics of the engineering process from planning your roadmap, to developing your product, to presenting your idea to others.
Note: The application's backend database has stopped running so the web application no longer functions properly.
Inspired by neal.fun
Just a collection of some fun web apps I wanted to make. I'll be actively updating this on my freetime with whatever ideas come to mind.
Included Projects:
1. Sorting Algorithm Visualizer
For this project, I worked in a team of three to develop a game for the Github GameOff 2020. Game Off is an annual game jam, where participants spend the month of November creating games based on a secret theme. The theme for this year was the term 'moonshot': a type of thinking that aims to achieve something that is generally believed to be impossible. Our team ended up creating a boss rush style game focused on unapologetic difficulty and skill based combat.
My work focused on boss design, combat patterns, and AI scripting. I worked on the artistic design and animation of the bosses as well as their attack patterns and movement. I also assisted in developing the scripts for enemy attacks and pathfinding. The game was well received and saw strong positive feedback for its artistic design and mechanics.
For this project, I worked in a team of five to develop a game for Ludum Dare 47. Ludum Dare is a game design hackathon where participants are challenged to develop a video game within a couple days around a theme. The theme for this challenge was “Endless Loop”. We ended up making a roguelike game where the player travels around in a looped dungeon. The player decides the enemies they want to face in each room but, on each loop, the enemies you previously selected remain. The player fights to increase their score and gain upgrades to add to their monster slaying arsenal. But, as the player grows stronger, so do the enemies.
In my team I acted as lead designer and scripter. I focused on creating the game environment and implementing the necessary systems to maximize player experience. I developed AI scripts for enemies with A* pathfinder, worked on the central game logic, and built the world from scratch. I also developed most of the sprites and animations for enemies and the world. The game ended up received strong positive feedback for art, innovative design, and complexity.
Over the Summer of 2018, I participated in a high school research internship at the Rutgers Wireless Information Network Laboratory. I did research under Prof. Yingying Chen on using wireless signals for mapping indoor locations. I worked directly under graduate student Jian Liu with my main job being working on data management and analysis. I focused on collecting data from wireless receivers and trying to implement machine learning techniques to interpret the data.
As this was my first introduction to research, I learned a lot about the process and gained some valuable research experience prior to entering college. The process was mainly one of learning as I spent much of my time reading research papers and familiarizing myself with working in a professional research environment.
From Winter 2019 to Spring 2021, I worked as a research assistant for Prof. Yihong Zhao under the Rutgers Center of Alcohol & Substance Use Studies. The research focused on studying and performing data analysis on Brain Imaging data for the sake of making predictions on brain health. Along with two of my peers, I worked on applying machine learning algorithms on MRI scan data to predict the brain health status of subjects. My area of focus was on utilizing deep learning and neural networks.
My work primarily involved developing an interpretable machine learning model to analyze important variables in brain conditions and health status. I explored ML models utilizing algorithms like gradient boosting, random decision forests, and Tensorflow neural networks with Bayesian hyperparamter optimization to make predictions based on MRI data. Furthermore, I worked on interpretation methods for the created models utilizing variable importance plots, local interpretable model-agnostic explanations, and partial dependence plotting.
In Summer 2023, I continued my work at Amazon with the Advertising Identity team in NYC. Here I architected and implemented the prototype for a new Software as a Service solution for advertising identity resolution in AWS. My project focused on providing a scalable, robust, secure, cost-effective, and user-friendly data processing platform for private advertising clients. In my work I leveraged a comprehensive suite of AWS services, including S3, Lambda, DynamoDB, and Redshift to create a serverless data identification pipeline service, along with ECR, Service Catalog, Docker, CloudFormation, and AWS CDK for packaging and distributing the software to clients.
Over Summer 2021, I worked as a software devopment engineer intern on the Amazon FireOS Architecture team. Over the course of my internship I predominantly worked on a dependency visualization tool for internal use. I worked with the Android Build System, developed build module parsing scripts for gathering data from the FireOS build tree, integrated with existing FireOS tools to automate data collection, and developed a dependency graph visualization application with Flask, Dash, and VisJS. Over the course of the internship, I learned a lot about working in team environments from the inner functioning of development teams to the usage of tools like Jira and Git to the necessities of extensive documentation and testing.
In 2022, I returned for another year of internship. This time my work shifted to a more research and prototyping focus. My project was centered around the Android Emulator, which was often used as a testing suite by FireOS devs. My goal as an intern was to research the possibility of introducing new hardware passthrough pipelines in the emulator. My primary focus was on SoC passthroughs but the brevity of my research was meant to lay the groundwork for future emulator work. Through the introduction of more functionality in the emulator, my work contributed to creating a more complete testing suite in which developers on the team were able to more effectively test FireOS features.