Shubham .

01

GptMini

Personal Project

This project is a Python-based exploration into natural language processing and generative models, specifically focusing on character-level language modeling. It involves training two types of models, a simple Bigram model and a more complex GPT-like Transformer model, on a dataset of text from Shakespeare's works. The goal is to generate new text sequences that mimic the style and content of the training data. It showcases the implementation and training process of these models, including handling of data, model architecture design, loss estimation, and text generation techniques.

02

DL for Chaotic Weather Behavior

Associated with Purdue University

This project focuses on predicting large-scale climate patterns, like El Niño and MJO, using data-driven stochastic models. It combines machine learning, Bayesian data assimilation, and deep learning techniques (LSTM and Transformer) to model chaotic systems like Lorenz 63/96. By leveraging local computing and Purdue's RCAC GPU cluster, we aim to improve multi-step climate forecasts and assess model accuracy through hyperparameter tuning. This research lays the foundation for advanced weather predictions using transformer-based models against the Chicago precipation dataset.

03

R Scripting HPC Env

Associated with Purdue University

This project involves setting up a computing environment to run R scripts for the RCAC labs at Purdue. It includes installing Magpie for managing Hadoop and Spark jobs on a cluster, downloading and configuring Hadoop, and preparing a submission script for Slurm to start YARN components on Negishi nodes. The aim is to enable interactive Hadoop/MR job submissions. The work includes troubleshooting issues like the failure of the terasort job, indicating a hands-on problem-solving aspect in a high-performance computing context.

04

YLAStockMonitor

Personal Project

The project aims at monitoring and automating the purchase process for products from a specific online store in this case my favorite Gym store YoungLA. The project is split into two main components: a Store Monitor Bot and a Store Check Out Bot, both leveraging different technologies and libraries. For the Store Monitor Bot, the bot is designed to continuously monitor specific products on the YoungLA website. It checks for product availability and sends notifications via Discord when products are in stock. The program fetches webpage data of the given product URLs using got, with specific headers to mimic a real browser, parses the HTML content to extract product information and stock status, sends a notification to a Discord channel with product details if the item is in stock, using Discord webhooks, and then repeats the monitoring process at regular intervals (every 8 seconds). For the Checkout bot, the bot automates the checkout process on the YoungLA website for specified products. The program opens the product page on YoungLA, selects desired color and size options, adds the product to the cart if it is available, fills in user details, applies a discount code, and completes the checkout process, including payment information, continuously monitors the availability of the product and retries if it's not available initially, and lastly handles errors and takes screenshots in case of failures.

05

Shell Implementation

Personal Project (CS 252 - Systems Programming)

Built a fully functional shell interpreter that mimics bash and csh using C++. Implemented command parsing with Lex and Yacc (Flex and Bison) to handle complex shell commands, including pipes, I/O redirection, and background execution. Created a process management system leveraging fork(), execvp(), and waitpid() for executing commands and managing child processes. Integrated signal handling for Ctrl-C (SIGINT) to stop running commands and eliminated zombie processes using SIGCHLD. Added support for environment variable expansion, wildcarding, and tilde expansion to enhance usability. Developed built-in commands like cd, printenv, and exit, and supported .shellrc for shell configuration on startup. Enhanced user interaction with line-editing, history, and command auto-completion features, similar to modern shells.

06

myMalloc

Personal Project (CS 252 - Systems Programming)

Developed a custom dynamic memory allocator in C inspired by DLMalloc, implementing the core memory management functions: malloc, free, and realloc. Utilized segregated free lists with circular doubly linked lists to improve the time complexity of memory allocation by categorizing free blocks based on size. Implemented constant-time coalescing using boundary tags, allowing for quick identification and merging of adjacent free blocks, reducing fragmentation and optimizing memory utilization. Optimized the metadata footprint by reusing block metadata (size and allocation status) for allocated blocks, minimizing overhead and maximizing memory available for allocation. Managed memory fragmentation through efficient coalescing of adjacent free blocks, improving the allocator's ability to handle large block allocations when needed. Used the sbrk() UNIX system call to dynamically request memory from the OS for heap expansion, managing multiple memory chunks and coalescing adjacent chunks to create larger contiguous blocks. Enhanced the reallocation process (realloc) by checking neighboring memory and extending blocks in place when possible, reducing unnecessary copying of data and improving performance. Debugged and tested the allocator using GDB and custom test cases to verify correct memory management, including edge cases like memory leaks and fragmentation.

07

Watsonx HAL

Associated with IBM

Participated in the watsonx hackathon, where we had hands-on experience with the platform and solved various business use cases using watsonx.ai and Watson Orchestra. Imagine going to a webex meeting to discuss a problem, and then instead of someone manually taking down notes, the tool will pull the transcript, summarize it neatly, and then place it into Jira as a new issue or a comment to an existing issue. As a problem statement, we needed a way of automatically generating a Jira issue from summarizing problems or enhancements discussed during a Webex meeting. The solution we came up with was using Watson Orchestrate with custom skills created for Jira, Webex, and Watsonx.ai combined into a skill flow to retrieve a Webex meeting transcript which is fed into Watsonx.ai, and thus creating a Jira issue based on the automated summarization of the bugs and enhancements described within the meeting. As business value, this improves process efficiency by automating the retrieval of key topics discussed within a meeting and capturing those topics inside a Jira issue.

08

MiniGames

Associated with Purdue University (CS 390 - WAP)

In this project, I've created web-based versions of classic games like Connect 4, Hangman, Snake, Tic-Tac-Toe, and Word Scramble. I utilized HTML to structure the web pages, CSS for styling, and JavaScript for adding game logic and interactivity. Each game employs specific algorithms: Connect 4 involves grid management, Hangman and Word Scramble use random word generation, and Snake requires collision detection. Tic-Tac-Toe is based on tracking player moves and win conditions. This project demonstrates my skills in fundamental web development and creating engaging browser games.

09

FoodMart

Associated with Purdue University (CS 348 - Databases & Information Systems)

This project is a web-based inventory and order management system, designed to streamline business operations. It utilizes Python & SQL for backend functionality and Flask for web server management, orchestrating server-side logic and interactions with the database. MySQL is employed as the database management system, responsible for storing essential inventory and sales data. To enhance security and query management, SQLAlchemy is integrated, safeguarding against SQL injection attacks and optimizing database operations. The user interface, developed using HTML & JavaScript, offers an intuitive and accessible experience for managing inventory and processing orders. Core features include real-time inventory updates, efficient order processing, and comprehensive sales report generation. The system also adeptly manages transactions and concurrency, ensuring data consistency and reliability. Overall, this project combines these technologies to provide a secure, efficient, and user-friendly solution for inventory and sales management.

10

B&B Micro

Associated with Williams College

As Project Manager and developer assigned under Dr. Steven Miller, this project worked on creating a mobile software application for the construction-based industry B&B Tiny Houses for enhancing workflow production by utilizing the labor force and materials in the most cost/time-effective manner. We emphasized being a user-friendly application and aimed to have the app meet the needs of a multi-generational/cultural group of individuals. This app allowed daily construction workers/employees to log their work hours for every day of the week and let the administrators to look over the workers to maintain a cohesive strategy for total working hours and earnings and project completion of a house based on employee's performance rating.

11

TAS Schedule

Associated with Williams College

This project reviews the advances of the linear programming-based approach to schedule classes based on teacher or student preferences. Given available courses, their capacities, and the ratings of the course sections, we show how to use a simple linear programming problem to determine an optimal class schedule. Used Django and Flask to optimize the algorithm's web interface & Heroku Postgres as a cloud platform to host the application, ensuring robust database management and accessibility. This project delves into optimization methods by applying them to matching problems and explores the entire process of quantitative modeling, including problem definition, data collection, model formulation, model solution, implementation, and testing.

12

SwiftLine

Associated with TechPoint

Large cities consistently struggle with reducing the wait time for visitors to popular attractions such as restaurants and events. This project aims to maximize tourist happiness for the Indiana College Football Games 2022. Events like the CFP bring in thousands of visitors to already busy cities, like Indianapolis. During this time, locals and visitors alike will experience extremely long waits at hotspots around town, like popular restaurants. To fulfill this aim, my team and I designed a mobile app that lets users know ahead of time how busy local restaurants are. We produced the idea of using user self-reporting data to estimate wait time for an individual or group of people for attractions such as restaurants, bars, and more around Lucas Oil Stadium. Users view a map of Indy and click on a specific location to see what the current wait time is. Along with this idea, we introduced the scope of involving tourists to support their teams and have a voting poll of the highest fan streaks at each tourist to help outsiders mingle with people of their own team's interest. Overall, we have the features for users to self-report wait times and they can pick which team they're rooting for in the CFP when they report the wait

13

Body Condition Score

Associated with Elanco

This team coordinated with Purdue University's Data Mine and Elanco Animal Health to solve an issue regarding pets' health centered around an animal's body condition score. Body condition score or BCS is a scale usually used by veterinarians to rate the overall condition of a pet. Only a few pet owners are aware of their animal's BCS score, and during this past year, it may be difficult or unsafe to travel to a vet's office. The project's goal is to analyze the differenåt body composition scores of dogs through methods in computer vision. The team developed a calculator to determine the body condition score a veterinarian would use for essential health monitoring through a simple-to-use Android app.

14

Coding for Impact

Personal Project

Developed websites for nonprofits and charities free of charge to tangibly apply skills with my computer science team for social impact. Programmed and developed independent projects of our own to address social and humanitarian needs using web development software on React.js, WordPress, and Angular.js. Worked on automation scripts using Java and C++.