Projects
Built end to end.
Open any project for what it does, the stack it runs on, and pictures and video of it working.

ARCHER
Drones that take a mission in plain English, fly it around obstacles, and report back to a live ground station.
ARCHER — Autonomous Robotic Coordination for Hazard Evasion & Reconnaissance — coordinates drones for reconnaissance and surveillance, so responders can locate missing people and watch an emergency before rescue teams reach the scene. An LLM turns a mission goal into flight commands, a deterministic autonomy layer handles geofencing, flight patterns and obstacle avoidance, and the flight controller does the real-time stabilization. Built at Knight Hacks IX with Hayden Jose, Khizar Aamir and Syed Iqbal.
- Python
- PX4 SITL + Gazebo
- ArduPilot
- MAVSDK / MAVLink
- Anthropic Claude API
- MCP

Orbit
Job discovery that shows its work — every match explains its fit, its gaps, and when its source was checked.
A web app for US students, interns and new grads looking for tech roles. Orbit pulls listings straight from employer job boards, ranks them against what you said you want, and explains every match — the skills that overlap, the constraints it meets, the gaps it has, and when the source was last checked. It alerts you when new matches appear, and tailors your resume to a job using only facts you have confirmed.
- Next.js 16
- React 19
- TypeScript
- Supabase (Postgres 17 + RLS)
- pg-boss
- Anthropic Claude API
SignBridge AI
Sign into any video call, read every word said back. All on-device.
A desktop app that sits beside a video call and bridges both directions. A webcam watches the signer, MediaPipe extracts hand and body landmarks, and a Transformer I trained classifies the sign — which is spoken into the call through a neural voice routed as a virtual microphone. Going the other way, the call's audio is captured, transcribed with streaming speech recognition, and painted as live captions over the call window. No audio or video leaves the machine.
- Electron
- React 19
- TypeScript
- PyTorch
- ONNX Runtime Web (WebGPU)
- MediaPipe
Tora AI
An AI that operates your computer from your phone — and asks before it does anything you can't undo.
A local-first AI agent you text like a person through Telegram. From your phone it searches the web with sourced answers, reads feeds with proof screenshots, manages files, and fills out multi-step job applications from a saved profile and resume — with the reasoning running on a local model, no cloud API anywhere in the loop. Anything irreversible triggers an Approve/Deny card on your phone showing exactly what's about to happen.
- Python
- Ollama (Qwen2.5)
- Playwright
- browser-use
- python-telegram-bot
- asyncio
TripWise
Plan a trip your budget can actually afford.
A full-stack travel platform: pick your dates, interests and budget, and it builds a day-by-day plan — where to go, what to do, where to stay — with the itinerary generated by Claude and streamed back live. A live weather forecast is injected into the prompt so outdoor activities land on the best days, and a two-stage recommendation engine ranks destinations and stays against your budget and taste.
- Python
- FastAPI
- React 19
- TypeScript
- PostgreSQL 16 + pgvector
- Redis 7
EquiLend AI
A loan model that has to explain itself, and an agent that checks the letter for bias before it goes out.
A home-equity loan decisioning app where every decision arrives with its reasons attached. An XGBoost classifier scores the application, SHAP turns that score into the specific factors that drove it, and Claude writes the applicant's decision letter from those factors. A second agent reads the letter back before it is sent, scores it for discriminatory language, and either passes it, rewrites it, or stops it for a human.
- Python
- XGBoost
- SHAP
- scikit-learn
- Anthropic Claude API
- FastAPI
InfoBridge AI
Describe a customer in plain English and it finds the details, then reads them down a phone line.
A front-desk assistant for the details people keep asking for. Type or paste a sentence and Gemini pulls out the structured pieces — names, policy numbers, phone numbers, emails and company — instead of making someone search for them. From there the app can place a Twilio voice call and read the information back over the phone.
- Python
- Flask
- Google Gemini
- Twilio Voice
- bcrypt
- JavaScript