Force Sensor with LED Output
A CircuitPython project developed on an Adafruit Metro board to measure grip strength using a force sensor. LEDs light up based on force thresholds, and results are compared against prior sessions. A two-test comparison stores the stronger grip result in memory, lighting all LEDs when the second test beats the first.
- CircuitPython
- Adafruit Metro M4 board
- LEDs & force sensor
View on GitHub
Grid Occupancy Detection with OpenCV
A computer vision project that detects and counts occupied zones in a 6x6 grid using a live webcam feed. Each cell is analyzed with grayscale conversion, Gaussian blur, and adaptive thresholding to estimate occupancy in real time, useful for crowd monitoring or object counting applications.
- Python
- OpenCV (cv2)
- NumPy
View on GitHub
Remind App
A cross-platform reminder and task app built with Flutter, focused on clean UI, fast task entry, and reliable persistence. Tasks sync to the cloud via Firebase Cloud Firestore and are also cached locally with SharedPreferences for quick access.
- Flutter / Dart
- Firebase Cloud Firestore
- SharedPreferences
View on GitHub
WeatherAPI
A backend API that acts as a proxy and cache in front of the Visual Crossing weather API. A client asks for the weather in a city; the server checks a Redis cache first (cache-aside pattern with configurable TTL) and only calls Visual Crossing when there's no fresh answer cached. Hardened with per-IP rate limiting and structured 400/404/429/502 error responses.
- Node.js / Express
- Redis (ioredis)
- express-rate-limit
View on GitHub
Blogging Platform API
A REST API for a personal blogging platform with full CRUD on blog posts plus a case-insensitive keyword search across title, content, and category. Validates request bodies and returns clear, consistently-shaped error responses instead of crashing; data persists in PostgreSQL via Prisma.
- Node.js / Express 5
- PostgreSQL / Prisma
- express-validator
View on GitHub
ACE
HackHayward 2026
An assistant coach for volleyball: a manual stat-tracking app for coaches, plus an attempt to track players and read jersey numbers automatically from game video.
My part: I took on the video side, adapting an open-source, pretrained jersey-number model to volleyball footage. I couldn't get the tracking working before the deadline. A teammate built the app screens.
View on Devpost
oculusMD
QuackHacks 2026
A medication safety copilot. Gemini only identifies medications from camera and document images; a rule-based engine makes every safety decision with three checks: drug interactions, contraindications, and too-soon re-doses.
My part: I built the FastAPI backend: the safety engine, the Gemini perception agent, the API endpoints, and the tests. A teammate built the mobile app.
View on GitHub |
View on QuackHacks
ZIP
SacHacks VII
A map-first investment radar that ranks U.S. ZIP codes for single-family housing opportunity, with choropleth and heatmap views and drilldown analytics.
My part: I built the map and the UI: the Mapbox choropleth and heatmap modes, ZIP search with a boundary fallback, the drilldown views, and two API routes. A teammate built the scoring model and data pipeline.
View on GitHub |
View on Devpost
VibeMate Winner
Hack with MLH and DigitalOcean: SF — Winner, Best Beginner Project
One AI agent with three modes that share context: a DJ that matches music to your mood, a counselor that reads emotion from facial expressions, and a study buddy, with 3D visuals that react to both.
My part: A team win I contributed to: I helped shape the idea, set up the APIs and DigitalOcean, and tested the prototypes.
View on GitHub |
View on Devpost