Skip to main content

Projects

Things I've Built

Work spanning machine learning, full-stack platforms, and data science , split into what I'm building now, solo work, and collaborations with named teammates. Click a tag to filter.

Solo Work

Personal projects

Shipped by me, from empty folder to live users or open-source repo.

Watch Together: Cross-Site Video Sync

Built a Chrome/Firefox/Safari extension that syncs video playback across any number of devices worldwide. Works on Netflix, YouTube, JioHotstar, Disney+, HBO Max, and Amazon Prime Video, anyone can play, pause, seek, or change speed and it propagates instantly. WebSocket relay server on Render with heartbeat-based drift correction (within 0.5s), per-IP rate limiting, host-only mode, ad detection, and built-in chat. 59 server tests + Puppeteer browser tests. Manifest V3 with site-specific player adapters.

Chrome ExtensionWebSocketNode.jsManifest V3+2

Red Bull YouTube Sentiment Analytics

End-term Social Media Analytics project analysing the Red Bull brand on YouTube. Collected 500 comments from the 5 most-commented recent videos via the YouTube Data API v3 and pulled hashtags from 50 video descriptions with yt-dlp. Scored every comment with VADER, 47% positive, 34.6% neutral, 18.4% negative, for a Net Sentiment Score of +28.6 percentage points (roughly double the industry benchmark). Every Red Bull video uses exactly 2 hashtags (#RedBull + #GivesYouWiiings, 100% of catalog), top organic keywords are 'gives' and 'wings', and the main genuine complaint is viewer anxiety about stunt safety. Delivered an 8-chart Excel dashboard, Word report, and a one-page executive summary PDF.

PythonpandasVADERYouTube Data API+3

Serenity: AI Health Companion

Built an AI-powered health management app for women with PCOD/PCOS. Users vent freely and Claude AI auto-extracts symptoms, mood, diet, and medications. Upload lab PDFs and AI parses hormone levels, flags abnormals, and detects medications. Features cycle tracking, medication streaks, lab trend charts via Recharts, calendar heatmaps, and Google OAuth. 15 Prisma models, 14 API routes, and a supportive, privacy-first UX.

Next.js 16Claude AIPostgreSQLPrisma+2

Gondilal Saraf: Full-Stack Jewelry Platform

Built a full-stack platform for my family's century-old jewelry business, bilingual storefront with live gold rates, 10-year investment charts, and a cinematic heritage design system. Includes a product catalogue with AR virtual try-on, AI-generated descriptions via Gemini 2.0 Flash, and an admin ERP with image processing pipeline (Photoroom + Sharp). 15 Prisma models, 26 API routes, OTP auth, AES encryption, and 85 tests.

Next.js 15PostgreSQLGemini AIPrisma+2

Library Walk: A Playable Micromobility Thesis

Built for Cars, Banned for Bikes · 1 of 3 sites

A campus micromobility runner that makes the argument instead of illustrating it, built solo for Group 3 in SYN 100 (Seventh College, UC San Diego). You ride a scooter to class down the real route: the Blue Line drops you at Central Campus station, you take the protected green lane down Gilman Drive past live traffic, and the lane ends exactly where Library Walk and the weekday dismount ban begin, so from there the crowd is the infrastructure. Every ending cites its receipt, a crash logs why it happened (speeding through a crowd, rushing the clock, boxed in uphill, forced to the path edge) and surfaces the research finding that matches that cause, not a random one. Perfect world replays the identical route with the lane never ending, the counterfactual as a second playthrough. Custom Three.js / WebGL renderer with anatomically rigged figures and two-bone IK, Verlet ragdoll crashes over those same joints, one height function shared byte-for-byte between JavaScript and the vertex shader, and 61 OpenStreetMap building footprints projected onto the route. The synthesized score holds a fifth for as long as there is a protected lane under you and drops to a fourth the metre it ends. Class Race puts 25 to 40 phones in a lecture hall on one seed from a projected QR code, over a SQLite-backed Cloudflare Durable Object, and the leaderboard is anti-cheat by re-simulation: the client submits a seed and input trace, and the server recomputes the score itself with byte-exact shared physics on Neon Postgres. A 247-check headless smoke suite gates every release.

Three.jsWebGLGame DevelopmentCloudflare Workers+4

Pidilite Fevicreate: Internal School-Engagement Tracker

Built an internal tool for Pidilite Industries, the FMCG company behind Fevicol and Fevicreate, to track their Fevicreate school-outreach engagement on the ground. Field marketing executives across 8 PSFME territories (Kolkata, Delhi, Bangalore, Chennai, Hyderabad, Mumbai, Pune, Ahmedabad) log GPS-verified visits at schools with live geolocation, on-device camera capture, and anti-spoof guards, working fully offline-first via a service worker and syncing when back online. Territory-scoped FME accounts drive which schools each rep sees, and an admin dashboard gives the team a live view of engagement, who visited which school and when, on an interactive map. Next.js 16 + Neon Postgres (self-initializing schema, no migration step), passcode and email-OTP admin auth, peppered session secrets, and CDN-cached school data for low India latency.

Next.js 16PostgreSQLNeonPWA+3

arnav-skills: Claude Code Skills Marketplace

A published marketplace of Claude Code skills distilled from shipping real software with AI agents, each one a workflow paid for in real mistakes rather than a checklist written in the abstract. red-team-ledger closes the loop on automated code-review findings with a checked-in ledger of every finding ever reported, born from a nightly AI red-team that filed 20 reports and re-filed the same critical bug 7 times while nothing got fixed. game-smoke is a headless testing harness pattern for browser games and canvas/WebGL apps: a seedable debug hook, deterministic forced events, poll-not-sleep discipline, and screenshot verification, because a green test suite cannot see a black screen. server-verified-scores is an anti-cheat leaderboard pattern for deterministic games where the client submits a seed and input trace, and the server re-simulates with byte-exact shared physics and stores only the score it computed itself. Installable in any Claude Code session via /plugin marketplace add ArnavGoel03/claude-skills.

Claude CodeAI AgentsDeveloper ToolsCode Review+2

Currently Building

In progress

Live projects I'm actively working on, specs may shift, links go up when they go up.

Buzz: College Event Discovery

Building a native event discovery app for US college students, launching first at UCSD. True multiplatform SwiftUI target compiling for iOS 17+ and macOS 14+ from a single codebase (no Catalyst), with an App Clip for instant check-in and an ARKit 'Look Around' mode that anchors events to real-world buildings. Supabase backend (Postgres + PostGIS + Row Level Security + Realtime), Stripe Connect for paid ticketing, and unified push fan-out across APNs / FCM / Web Push. Next.js 16 PWA mirror with JSON-LD structured data, per-campus landing pages, and llms.txt for AEO. Full club admin tools, Greek-life rush flows, textbook marketplace, and safety features baked in.

SwiftUISwift 6SupabasePostGIS+4

Quiver: A Studio of Private, Native Mac Apps

A one-person studio building a suite of local-first macOS apps that never phone home: no accounts, no telemetry, nothing leaves your Mac, all unlocked by a single subscription key. Trove packs 40+ utilities (clipboard manager, window manager, system and GPU monitors, OCR, a full PDF kit, disk cleaner, and more) into one native app. Relay is a private, local API client (a Postman / Bruno alternative) with collections, environments, OAuth / AWS / digest auth, and JavaScript pre and post-request scripting, keys stored in the Keychain. Tend is a calm, local-first tasks and calendar app. Built in Swift 6 and SwiftUI with a shared code core and one licensing model across every app, direct-distributed and Developer-ID signed, with a marketing site and per-app SEO.

Swift 6SwiftUImacOSLocal-first+2

Collaborations

Team projects

Group work from UCSD classes and research. Teammates credited on each card.

Built for Cars, Banned for Bikes: Micromobility Research Site

With Yuvia Cabral, Rut

Built for Cars, Banned for Bikes · 1 of 3 sites

The research site behind our SYN 100 project (Seventh College, UC San Diego) on micromobility as climate infrastructure, with Yuvia Cabral and Rut. A single-page explainer plus a working toolkit: the short-trip problem, ridership evidence, UC San Diego as a field site, the barriers that actually stop riders (nowhere to park, nowhere to charge, restricted zones), a peer-campus benchmark, and a policy playbook, every statistic cited. Three pieces of our own fieldwork are published rather than summarised, a 31-response survey across 12 institutions and 4 countries, two structured field observations at Sichuan University and Victor Valley College covering 87 riders, and seven on-site interviews across three campuses, with raw exports withheld, interviewees unnamed, and the one who declined recording paraphrased and never quoted. Ships an interactive trip calculator (car vs bike on cost, CO2, and calories), a resource finder covering all ten UC campuses, a printable flyer, and a share card. It is hand-authored static HTML with no build step, so nothing can import a shared constant, a data/facts.json single source of truth plus a Python drift checker does that job instead: 9 checks, one version string across the worker and the footer, and all 55 published survey figures re-verified against the raw export before every commit. Stale-while-revalidate service worker with a Chrome-dino-style offline ride, and a connection lamp that tests the network rather than trusting navigator.onLine.

Static HTMLService WorkerPWAData Visualization+4

MLB Playoff Prediction: COGS 108

With Lincoln Wirschem, Ricardo Hernandez, Vedant Patel, Aleksey Dykhno

Final group project (Team 021, Winter 2026) investigating how early-season team run differential per game, on-base-plus-slugging (OPS), and pitching ERA measured over the first 81 games relate to MLB playoff qualification from 2015 to 2023 (excluding 2020), and how the predictive power of those metrics shifts by season's end. Pulled team-season data from Fangraphs via pybaseball, cleaned and aggregated to half-season and full-season splits, then compared classification performance across both windows. Scope covered proposal → data checkpoint → EDA → final analysis across four notebooks. I led the ethics section, scoping collection bias, downstream misuse, and limitations on any causal claims.

Pythonpandaspybaseballscikit-learn+2

Anduril Industries: MGT 127R S-Curve Case

Team of 6

Final group case study for MGT 127R (Winter 2026) analysing Anduril Industries as a potential new S-curve in defense technology. Structured around the technology-S-curve framework from class, mapping Anduril's product portfolio (Lattice, Ghost, Sentry, etc.), evaluating incumbents' innovator's-dilemma posture, and arguing where Anduril sits on the substitution curve against legacy defense primes. Delivered as a group presentation with strategic recommendations on investment and competitive response.

Technology StrategyS-Curve AnalysisMGT 127RCase Study+1

ARK Invest: MGT 127R Disruptive-Tech Case

Team of 6

Mid-quarter case opening (Week 9, Winter 2026) for MGT 127R examining ARK Invest's disruptive-technology investment strategy. Broke down ARK's thesis framework (genomics, robotics, energy storage, AI, blockchain), their concentrated-portfolio approach, and the return/volatility trade-offs of betting on exponential-technology curves. Framed the fund as an explicit wager on the S-curve adoption rate of multiple compounding innovations, and flagged where that thesis has historically cracked.

Investment AnalysisDisruptive InnovationMGT 127RCase Study+1

Human Activity Recognition: CSE 158

Team of 2

Final group project for CSE 158 (Web Mining and Recommender Systems, Fall 2025) at UCSD. Built a model to classify human activities, walking, sitting, standing, stairs, and more, from wearable-sensor time-series data. Handled the full pipeline: windowing raw accelerometer/gyroscope streams, engineering time- and frequency-domain features, training classifiers, and comparing performance across model families. Covered feature selection, cross-validation, and error analysis against a confusion matrix.

Pythonscikit-learnTime-SeriesSignal Processing+1

COGS 9: Final Group Project

Team of 2

Final group project for COGS 9 (Introduction to Data Science) at UCSD, Spring 2025, a two-person data-science investigation completed end-to-end from question to presentation. Covered the full COGS 9 arc: formulating a research question, sourcing and cleaning data, exploratory analysis, visualisation, and delivering findings as a recorded presentation.

PythonpandasData AnalysisJupyter+1

U.S. Power Outages: DSC 80

With Paulina Pelayo

Two-person DSC 80 project (with Paulina Pelayo) analysing 1,534 major U.S. power outages from 2000 to 2016 across 53 features from the DOE. Covered the full data-science arc: cleaning and timestamp reconciliation, NMAR missingness reasoning, permutation tests, and predictive modelling. Found severe weather drives the longest outages, fuel-supply emergencies are rare but disruptive, and higher residential electricity prices correlate with shorter restoration times (p ≈ 0.007), suggesting greater grid-reliability investment. Random Forest regressor with log-transformed population density and a severe-weather indicator reached RMSE 6,189 min and R² 0.220, with fairness checks across weather vs. non-weather outages.

Pythonpandasscikit-learnRandom Forest+2

Vaani: Multilingual AI Chatbot

With Ahaskar

Co-built with Ahaskar: a voice-first AI chatbot for Indian-language customer support. OpenAI's LLM + speech APIs behind a Flask microservice backend, with a speech-to-text → intent → text-to-speech pipeline across 5+ Indian languages. Shelved mid-build after a clear-eyed market-fit check, in the Indian SME market we were targeting, a human customer-support agent costs less per conversation than bleeding-edge LLM inference. Keeping it listed as a reminder that the right call is sometimes to stop, not ship.

OpenAI APIFlaskSpeech RecognitionNLP+1
DetailsPrivate