Bitu is a mobile application designed to bridge the gap between theoretical English learning and practical usage. It connects users with foreign tutors for 1-on-1 conversations, focusing on building confidence and fluency through structured topics. The app has served hundreds of thousands of users, facilitating millions of minutes of conversation.
Key Features
- Instant 1-on-1 Connection: Users can connect with a tutor in under 30 seconds without prior booking, using a sophisticated queue matching algorithm.
- Curriculum-Based Topics: A library of thousands of topics ranging from daily life to IELTS preparation, ensuring users always have something to talk about.
- Real-time Feedback: Tutors provide immediate corrections and suggestions during the call, which are logged for user review.
- Flexible Scheduling: A "study now" model that fits into busy schedules, differentiating it from traditional scheduled tutoring.
- Community & Gamification: Leaderboards, streaks, and challenges to keep users motivated and engaged over the long term.
Technical Deep Dive
Building Bitu required solving complex challenges in real-time communication and high-concurrency state management.
Real-Time Communication Architecture
The core of Bitu is its calling system. We utilized Agora SDK for high-quality, low-latency audio/video calls, but engineered a custom signaling layer over WebSocket to manage call states, handshakes, and fallback mechanisms.
- Connection Stability: Implemented aggressive reconnection strategies to handle unstable mobile networks (3G/4G switchovers).
- Latency Optimization: Optimized the signaling payload to milliseconds, ensuring the "Connect" button feels instant.
Queue & Matching Algorithm
The "no-booking" feature relies on a robust backend matching system.
- Scalability: The system handles thousands of concurrent users and tutors. Redis is used heavily for ephemeral state (who is online, who is busy).
- Fairness: The algorithm prioritizes tutors based on rating, availability, and user preferences (e.g., accent, gender), ensuring a high match rate and user satisfaction.
Mobile Engineering (React Native)
The app is built with React Native, allowing for rapid feature deployment across iOS and Android.
- Performance: specialized optimization for the "Call Screen", moving heavy animations to the native thread using
react-native-reanimated. - Navigation: Integrated
react-native-navigationfor native-feeling transitions, crucial for a premium feel. - OTA Updates: Leveraged CodePush to deliver hotfixes and feature updates instantly without waiting for App Store review cycles.
Technology Stack
- Mobile: React Native, Redux Saga, TypeScript
- Real-time: Agora RTC, Socket.io
- Backend: Node.js, NestJS
- Database: PostgreSQL (Core data), MongoDB (Logs/Chat), Redis (Caching/Queue)
- Infrastructure: AWS (EC2, S3, RDS), Docker, Kubernetes
- CI/CD: GitHub Actions, Fastlane
Challenges & Solutions
Challenge: Handling "Ghost" calls where users disconnect abruptly. Solution: We implemented a heartbeat mechanism on both the WebSocket and RTC channels. If both heartbeats fail for 5 seconds, the server automatically terminates the session and refunds the user if the duration was negligible, maintaining trust and platform integrity.
Challenge: Ensuring audio quality on low-end Android devices. Solution: We integrated acoustic echo cancellation (AEC) and noise suppression custom profiles, fine-tuning the Agora standard configuration to prioritize voice clarity over background audio fidelity, which is crucial for language learning.