Projects

A few of my completed and ongoing projects!

FedCast

A central-bank policy-forecasting platform that infers Federal Reserve and ECB policymaker beliefs from unstructured communications data, then predicts upcoming rate decisions. Decomposes each meeting into five economic dimensions (employment, growth, inflation, financial conditions, uncertainty) with an importance weight and expected direction per dimension, combines them with realized macro data through estimated reaction functions, and forecasts the rate change (bps) and discrete action (hike/hold/cut).

  • Team Project, repo private as private data was utilized. Created as part of Bridgewater Associates Immersion: AI for Innovation Hackathon Program.
  • Built a data pipeline ingesting and cleaning ~5,000 central-bank speeches and ~5,200 policy documents across the Fed and ECB into a Parquet feature backbone (20,000+ dimension-feature rows, 10,000+ macro/market control series, 416 policy decisions) with automated QC reporting.
  • Implemented a sequential Bayesian belief-updating model (pgmpy) that processes speeches chronologically — each posterior becomes the next prior — blending transcript, prior, and macro evidence into a five-dimension belief state.
  • Estimated Ridge + multinomial-logistic reaction functions per institution, benchmarking macro-only, belief-only, and combined feature sets to quantify the marginal signal of transcript-derived beliefs; backtested over 2012–2025 on ~2,300 monthly snapshots, reaching up to 95% hike/hold/cut classification accuracy and ~5–12 bps rate-change MAE in-sample.
  • Orchestrated multi-step reasoning with LangGraph/LangChain and live context retrieval via the Perplexity API, surfacing evidence traces, historical analogs, and skeptic flags for interpretability.
  • Shipped a Dockerized FastAPI service with synchronous and async job-based forecast endpoints, progress polling, and on-disk forecast caching, plus an interactive JS dashboard featuring belief-history timelines and a rotatable 3D policy-dimension view.
Pythonpandasscikit-learnpgmpyLangChain/LangGraphAnthropic APIPerplexity APIFastAPIDockerPyArrow/ParquetJavaScriptHTMLCSS
Forecast Dashboard - five-dimension belief state, rate-change prediction, and hike/hold/cut action with confidence
Bayesian Network Visualization - 3D view of the five economic dimensions with importance weights and expected directions, plus evidence trace for interpretability

PennOS

A UNIX-like operating system simulator that runs as a single host-OS process, implementing a priority scheduler, a FAT-based filesystem, and an interactive job-control shell. Built in C with strict kernel/filesystem/user-land abstraction boundaries mirroring real UNIX system-call semantics.

  • Repo private as part of course policy.
  • 2 person project for CIS 5480 (Operating Systems Design & Implementation). ~8,700 lines of C across 40+ source/header files.
  • Built a multi-level round robin priority scheduler with three FIFO queue levels, and falls through to non-empty queues to prevent starvation.
  • Implemented full process lifecycle: PCBs with parent/child trees, s_spawn / s_waitpid (with nohang) / s_kill / s_nice / s_exit, init-process orphan reparenting, zombie reaping, and three signals (P_SIGSTOP, P_SIGCONT, P_SIGTERM).
  • Designed the PennFAT filesystem from scratch: mkfs/mount/unmount over a memory-mapped FAT, chain-based block allocation and freeing, 64-byte directory entries, and a full file API. A global open file table plus per-process file descriptor tables enforce single-writer semantics.
  • Wrote an interactive shell with job control (bg/fg/jobs), I/O redirection (<, >, >>), background execution (&), terminal signal handling, and shell-script execution.
CpthreadsOperating SystemsSchedulingFilesystemsFATSignalsConcurrencyMakeDockerclangDoxygen

Wanderful

A full-stack trip-planning web app that unifies the Yelp Open Dataset and Inside AirBnb data into a single Postgres-backed itinerary engine. A React (Vite) frontend talks to a Flask/psycopg2 API serving 13 hand-tuned SQL endpoints over 124K establishments and ~11M reviews, with query plans optimized via CTEs, window functions, covering indexes, and GiST spatial indexes.

  • Repo private as part of course policy.
  • 4-person project for CIS 5500 (Databases). Combines ~150K Yelp businesses and Inside AirBnb listings into one schema: 124,112 establishments (49,857 restaurants, 74,255 AirBnBs) and 10,990,951 reviews on AWS RDS Postgres.
  • Designed a normalized schema with an establishments supertype and restaurants/airbnbs subtype tables, plus a unified reviews table, enforced with CHECK constraints, foreign keys, and cross-source ID hashing.
  • Built 7 small and 6 complex SQL endpoints behind a Flask API, using CTEs, ROW_NUMBER()/RANK() window functions, LATERAL aggregates, and EXISTS correlated subqueries for itinerary, weighted-ranking, and best-value queries.
  • Optimized the vote-weighted ranking query (CQ2) from 39,161ms to 204ms (192x) by replacing a JOIN + GROUP BY/HAVING that scanned all 10.9M reviews with a CTE + CROSS JOIN LATERAL aggregate over a covering index.
  • Implemented a Radius Itinerary Finder (CQ5) using a GiST 2D bounding-box pre-filter with a cos(lat) longitude correction, then exact haversine post-filtering — cutting ~1M distance calculations down to ~30 candidates per listing (546ms to 96ms, 5.7x).
  • Wrote Python ETL loaders to clean and ingest both datasets: filtering to US restaurants, correcting city misspellings, parsing JSON hours/categories into structured columns, and pg_trgm fuzzy-deduping city names for autocomplete.
  • Frontend in React + React Router with five pages (Home, Restaurants, AirBnBs, Itinerary, Detail), reusable cards/star-rating components, and a reviewer-profile modal; Vite dev proxy in dev, Flask serving the built bundle in prod.
ReactViteFlaskPythonPostgreSQLSQLpsycopg2Query OptimizationGiST IndexWindow FunctionsETLAWS RDSDatabases
Home Page - Has search bar and best city results based on a weighted ranking of review count, average rating, and price level.
Restaurant Search Page - Has filters and sorting options.
Wanderful Itinerary page - Shows top 3 restaurants per airbnb with zipcode and geographic proximity based filters.

Vanstagram

A scalable social media platform inspired by Instagram and Facebook. Implements core features such as user auth, posting/commenting on home and wall pages, friending, and settings modifications. Also includes personalized news feeds via a modified adsorption algorithm, live chat system using Socket.io, and profile picture customization.

  • My Contributions - (repo private by course policy)
  • Planned and implemented backend architecture and route/database helper functions using AWS DynamoDB & S3 to ensure scalability and reliability.
  • Implemented a modified adsorption algorithm using Apache Spark/Livy & AWS EMR for personalized news feeds along with the article liking system to determine edge weights.
  • Created a friend-friend graph visualization tool using vis.js to analyze social connections and network structure.
  • Assisted in frontend page organization and styling using HTML, CSS, and JavaScript to enhance user experience.
AWS DynamoDBEC2S3EMRNode.jsHTMLCSSJavaScriptSocket.ioApache Spark/LivyJava
Home Page - displays friend posts/status updates, daily news, and active/inactive friends
Chat Page - Real-time messaging using Socket.io

EdCamelBot

A Slack bot for the CIS 1200 Teaching Assistants which automatically sends a message whenever a student asks a question on EdDiscussion, allowing TAs to respond promptly and easily collaborate over difficult questions. Pending LLM-based FAQ generation to further assist TAs in addressing common student queries.

  • Uses EdDiscussion API to monitor message updates.
  • Sends formatted Slack messages to a designated channel using Slack API whenever a new question is posted.
  • Automates deployment and updates using Github Actions.
  • In the process of integrating LLM-based FAQ generation.
PythonSlack APIGithub Actions
Slack message sent by EdCamelBot when a new question is posted on EdDiscussion

SustainaView

SustainaView is a mobile app that makes sustainable interior design easy and fun. Just snap a photo of your room, and our AI will give you personalized, eco-friendly suggestions, show you what your space could look like after a green makeover, and even break down the costs for you. It’s like having a sustainability expert and designer in your pocket!

  • Designed app UI/UX and implemented core features using React Native and Expo.
  • Integrated Gemini 2.5-Flash and Gemini Nano Banana APIs for AI-generated design suggestions and image transformations.
  • Utilized MongoDB Atlas for user data and design preference storage and AWS S3 for image storage.
React NativeExpoMongoDB AtlasAWS S3Gemini 2.5-Flash APIGemini Nano Banana APIJavaScript
Screenshots of SustainaView app showcasing AI-generated sustainable interior design suggestions

Anti-Roll Bars

Designed and tested anti-roll bars for UPenn's Formula SAE team to improve vehicle handling and stability during cornering maneuvers. Conducted simulations and real-world testing to optimize performance and ensure compliance with competition regulations.

  • Designed the anti-roll bars in CAD using Solidworks.
  • Iterated over 10 designs for the front and rear to reach the desired stiffness values and safety factor using static structural FEA simulations in Ansys.
  • Developed an improved stiffness calculation procedure using a 6-DOF suspension model in Microsoft Excel to better estimate the effects of the anti-roll bars on vehicle dynamics, improving accuracy by ~30%.
AnsysSolidworksDFM/DFAMicrosoft Excel
CAD drawing of one of the designed anti-roll bar blades.

ArmLev

The ArmLev is a low-cost, wearable, and dual-mechanism arm-stabilization device aimed to assist individuals with a wide range of arm-tremor severities in performing activities of daily living (ADLs). It consists of two components, an elbow-stiffening device and an adjustable tuned mass damper to work across tremor frequencies.

  • Iterated 3D printed prototypes to optimize ergonomics, comfort, and usability based on a series of 5 tests.
  • Achieved 90% accuracy in stiffening, activation within 0.3 seconds, handling 50N of force, and working for a wider range of frequencies than commercial devices, all while costing $136 and weighing <1.5 lbs.
  • Won the 2024 Regeneron Science Talent Search (STS) Award for this project.
Fusion360ArduinoDFM/DFA3D Printing
Images of the final ArmLev devices.