projects

SKYTRAC

Built with React Native · Expo · TypeScript · Opus · sherpa-onnx

At SKYTRAC, I helped build an iOS and Android app for group voice and text messages over satellite links. It works like a walkie-talkie with messaging, designed around a connection with very little bandwidth.

Know when to speak

I built the React Native interface for sign-in, communication groups, messages, and settings. The push-to-talk button shows whether someone is waiting for a turn, speaking, or listening. Audio cues and a live voice waveform make those changes easy to follow.

Keep messages through a disconnect

I built an outbox that saves unsent messages on the phone, even across app restarts. It retries when the connection returns without creating duplicates. Users can also dictate offline, review the transcript, and queue it to send later. Speech recognition runs on the phone after an initial model download.

Clear voice on a limited connection

The satellite link had a 22 kbps upload budget. I compressed voice to 12 kbps with Opus and grouped audio packets to leave room for network overhead. I also integrated offline noise suppression, automatic microphone-level adjustment, and speaker-volume controls on iOS and Android.

Faster checks and safer updates

I cut automated code checks from 13 to 2 minutes through shared setup, dependency caching, and runner tuning. I added preview builds and app updates with safeguards against large satellite downloads and restarts during a conversation.