Qasim Hassan
Work

2023/Full-Stack/Completed

Meet & Greet

1:1 and group video/voice calling with WebRTC.

React Native calling product: online presence, dial-by-ID, 1:1 and group video/voice over WebRTC, with Socket.io signaling on Node.js designed for real mobile networks — not demo Wi-Fi.

  • 1:1 and group calls
  • Production WebRTC path
  • Real-time signaling
Meet & Greet

The Problem

Real-time video and voice on mobile is easy to demo on good Wi-Fi and hard to ship: signaling, ICE, and group join/leave all have to survive flaky networks and backgrounded phones.

What I Built

Meet & Greet is a React Native calling product with:

  • Online presence and dial-by-ID.
  • 1:1 and group video/voice over WebRTC.
  • Socket.io signaling through a Node.js backend for offer/answer, ICE candidates, and participant churn.

Case study visuals are UI recreations of the product flows (presence, dial, 1:1, group) — not original 2023 production captures — but they match the shipped architecture.

Major Features

  • 1:1 calling — peer media path with production signaling.
  • Group calls — join/leave coordination and renegotiation as the room changes.
  • Presence + dial-by-ID — find who’s online and start a call without a contact book maze.
  • Mobile-aware signaling — Socket.io reconnection for cellular networks.

Key Challenges

Group calls add signaling complexity 1:1 doesn’t have — join/leave, renegotiation, and keeping Socket.io state aligned with WebRTC across every client. That reliability outside a controlled demo was the core engineering problem.

Results

Meet & Greet shipped with production-oriented 1:1 and group calling on a real-time WebRTC + signaling stack.

Stack Decisions

WebRTC owns the media path (peers, ICE, STUN/TURN for nasty NATs). Socket.io was chosen for signaling for reconnection semantics that matter on mobile networks more than a bare WebSocket.

Screens

Meet & Greet — view 2
Meet & Greet — view 3