5 minutes a day. Interview-ready.
HireSpeak is a focused mobile app that helps developers prepare for tech job interviews in Europe and North America.
Instead of generic language apps, every session is built around real interview questions (HR, behavioural STAR stories, technical storytelling). Users get a daily 5-minute practice session with AI-powered speech-to-text feedback, model answers, and progress tracking — all designed to build confidence through consistent daily repetition.
Not a Duolingo clone. A purpose-built productivity tool with one clear goal: help developers land interviews and pass them.
This personal project was built to showcase end-to-end product thinking, clean architecture, and shipping discipline.
- Developers often lose opportunities because of the speaking barrier in interviews — no existing app solves this problem specifically for tech roles.
- The 5-minute daily constraint is intentional: it uses habit-loop psychology (Cue → Routine → Reward) to make practice feel achievable and addictive.
- Feature-first clean architecture — Scalable and highly testable. Each feature is self-contained with its own logic, UI, and models.
- Riverpod (not Bloc) for state management — chosen for its simplicity, compile-time safety, and better developer experience in this project.
- Repository pattern over Firebase — makes it trivial to swap Firebase for a custom NestJS + PostgreSQL backend later.
- Flutter + Firebase for maximum speed-to-ship while keeping the codebase professional-grade.
- ✅ Daily “Question of the Day” with model answer
- ✅ Voice recording + real-time speech-to-text
- ✅ Basic feedback (keyword coverage + confidence score)
- ✅ Progress tracking (streak 🔥, XP, level, weak areas)
- ✅ Question library with role filtering (Frontend, Mobile, Backend, Full Stack)
- ✅ Firebase Auth (email + Google) + Firestore sync
- ✅ Local fallback + offline support
- ✅ Clean, calm EU-style UI (Linear/Notion inspired)
| Layer | Technology | Notes |
|---|---|---|
| Frontend | Flutter 3.x + Dart | Cross-platform (iOS + Android) |
| State | Riverpod | Preferred over Bloc |
| Routing | go_router | Declarative + deep links |
| Backend | Firebase (Auth, Firestore, Storage) | Repository pattern for easy migration |
| Voice | speech_to_text + just_audio | Recording + model answer playback |
| Animations | Lottie | Streak, XP rewards |
| Local Cache | sqflite | Offline questions |
| Notifications | flutter_local_notifications | Daily reminders |
Folder structure: features/ → core/ → data/ (clean architecture).
(Will be added upon completion — currently in active development)
- Home screen with daily question & streak
- Practice session with live transcription
- Model answer + keyword chips
- Progress dashboard
- Question library with role filter
# 1. Clone the repo
git clone https://github.com/abir739/hirespeak.git
cd hirespeak
# 2. Install dependencies
flutter pub get
# 3. (Optional) Configure Firebase
# → Add your own google-services.json (Android) and GoogleService-Info.plist (iOS)
# → Or run without Firebase (uses local seed data)
# 4. Run
flutter run