← Back to Home

Projects

AI agents, machine learning, full-stack apps, and hardware.

Dialyn Voice Agent

Voice agent that books doctor appointments over the phone, with streaming speech recognition and synthesis.

  • Chains Deepgram speech-to-text, GPT-3.5-turbo, and ElevenLabs text-to-speech over Twilio and WebSockets, at ~700ms round-trip latency.
  • Streams each reply as tokens and audio arrive, and keeps that call's transcript in memory. Bookings are written to a JSON file after the call.
  • Handles interruptions by canceling the reply in progress when the caller speaks again.
  • Won Best Use of ElevenLabs at Hack(H)er413 2026.
PythonFastAPITwilioDeepgramOpenAIElevenLabsWebSockets

SoulMate

Live Demo

Tinder-style sneaker app with a recommendation engine that learns from swipes.

  • Swipe-based sneaker feed with a FastAPI backend. Auth checks Supabase's public JWKS endpoint, so the server never holds a shared secret.
  • The recommendation engine keeps a 7-dimensional taste vector per user and updates it on every swipe with cosine similarity.
  • The feed refills in the background once fewer than 2 cards are left, with no loading flash. Cards behind the active card ignore pointer events.
ReactTypeScriptFastAPIPythonSupabaseCosine Similarity

Moments

Live Demo

Social app for travel photos paired with a song and a place.

  • Next.js 16 app with Server Actions and custom auth.
  • Pairs uploaded travel photos with Spotify tracks and OpenStreetMap geotags.
  • Runs on Neon Postgres, stores media in Vercel Blob, and rate-limits with Upstash Redis.
TypeScriptNext.js 16PostgreSQLNeonVercel BlobUpstash RedisSpotify API

Spectral Vision Transformer

Vision Transformer for classifying hyperspectral satellite and airborne images.

  • Adapted a Vision Transformer for hyperspectral data with spectral-spatial patch embeddings. It reaches 95% accuracy on the Indian Pines benchmark.
  • Wrote data loaders and augmentation for high-dimensional multi-band reflectance tensors.
PythonPyTorchVision TransformersHyperspectral ImagingScikit-Learn

T2V Safety Filter

Filter that checks text-to-video prompts with two language models before generation.

  • Phi-4 and DeepSeek-R1 flag unsafe text-to-video prompts before the video is generated.
  • Tested on 432 prompts. Accuracy was 93% on static non-temporal risk and 61% on temporal risk.
PythonDeepSeek-R1Phi-4LLM EnsembleAI Safety

Arduino Solar Tracker

Demo Video

Dual-axis solar tracker on an ESP32 that follows the sun.

  • Four LDR sensors drive two servos so the panel turns toward the brighter side.
  • Servo moves use a light threshold and a noise buffer so the panel stays steady in patchy light.
  • A 0.96 inch I2C OLED shows live sensor readings and servo angles.
ESP32C++ArduinoOLED DisplayServo Motors

Habit Tracker

Live Demo

Notebook for daily habits, monthly goals, and streaks.

  • Journal laid out like a notebook, with Supabase auth and storage.
  • Monthly goals, plus a streak count for each habit.
Next.jsReactSupabaseTailwind CSSTypeScript