Project 01 / Team contribution
Trait.
Calls that need to work beyond the chat screen.
I worked on mobile calling, workspace startup, and the connections between the app and its services.
- Focus
- Mobile calls & workspaces
- Built with
- React Native / TypeScript / Rust / Go
- Status
- Released product · Team contribution

01
Overview
Trait is a team workspace with channels, direct messages, tasks, and voice and video calls. I contributed to the mobile app and shared realtime code.
An incoming call can arrive while the app is in the background. The native call screen, media room, and server need to agree on whether it is ringing, accepted, or already cancelled.
02
My work
I worked on call handling, mobile UI, workspace loading, and server integration as part of the product team.
- Worked on incoming calls, media controls, and cleanup across native and shared code.
- Added loading and recovery states when someone opens a workspace.
- Built a shared native host for wallet and game mini apps, with a typed bridge between web and native code.
03
Technical decisions
The React Native app connects native call screens to a shared realtime room client. The server owns the call and workspace state.
- Handled joining, cancellation, and cleanup explicitly so each part of a call has a clear owner.
- Waited for workspace data before the first entry while keeping cached content usable.
- Kept sensitive wallet operations in native code and limited what mini apps could request.
04
Scope & status
My contributions to calls, workspace startup, and mini-app hosting were merged into the Trait codebase.
- Some call changes need coordinated app and service releases.
- Automated and simulator checks cover part of the behavior. Physical-device call testing is still a separate step.