Free Learning by AI — 100% On-Device, Offline, Private AI Mock Interviews for Everyone.
| Package | Platform | Size | Direct Download | Notes |
|---|---|---|---|---|
| Android APK | Android 10+ (arm64-v8a) | 242 MB |
📥 Download Intervity-v0.0.2.apk |
Standalone release build with local runtime weights |
| iOS IPA | iOS 16.0+ | 14 MB |
📥 Download Intervity-v0.0.2.ipa |
Sideload via AltStore / TrollStore / TestFlight (help.dina.intervity) |
🔗 Full Release Notes & Checksums: View GitHub Release
v0.0.2
High-quality interview preparation shouldn't be a privilege reserved for candidates who can afford expensive subscriptions, human coaches, or proprietary cloud platforms.
Intervity is a free, completely open-source, 100% on-device AI technical and behavioral interview platform. It turns your smartphone into an expert interviewer that listens to you, challenges your architecture decisions in real time, respects conversational interruptions, and coaches you to technical mastery—with zero internet connection, zero API keys, and zero data leaving your device.
- Absolute Privacy: Your resume, voice samples, interview answers, and performance evaluations never touch a third-party cloud server or train corporate models.
- True Equity & Accessibility: Works on commuter trains, in low-bandwidth regions, and on consumer mobile hardware without recurring cloud API fees.
- Sub-Second Conversational Fluidity: Local C++ / JSI pipelines eliminate network hops, providing instant acoustic echo cancellation (AEC) and conversational barge-in.
- 💡 Question-Driven Learning (QBL) — Master Engineering Through Deep Questions: Pure text-first, active recall learning flow. Candidates explore high-impact engineering topics (or input arbitrary custom skills), where the agent plans structured 5+ sub-topic roadmaps. Teddy presents concepts one-by-one through deep 4-option architectural challenges, celebrating breakthroughs, explaining why wrong options fail, and deploying reinforcement drills to ensure 100% concept mastery.
- 🧠 Autonomous Agent Coaching Harness & Evolving Mascot: The Mascot (Nova / Teddy) has an adaptive personality that levels up (from Curious Explorer to Distinguished Fellow) as it learns from you. It maintains persistent long-term SQLite memory of your career aspirations, company targets, and technical blind spots, dynamically alternating between discovering your background, probing deep architecture trade-offs, and teaching brand-new skills with the Feynman technique.
- 🎨 Interactive Rive AI Mascot with Emotions & State Control: Expressive on-device vector mascot driven by Rive State Machines (
rive-react-native). Mascot talks strictly while the LLM is formulating/generating responses, celebrates (🎉) upon selecting the correct pattern, and shows thoughtful puzzle diagnostics (🤔) on tricky traps. - 📱 Mascot Face App Launcher & Adaptive Icon Suite: Modern branded Intervity launcher icons featuring Coach Nova's face across Android (adaptive, round, square, Play Store 512×512) and iOS (
AppIcon.appiconsetwith solid RGB across all device scales). Generated viascripts/generate_mascot_icons.py. - ✨ Unified Vector Icon Design System & Modern UI: Replaced raw platform emojis with a cohesive, high-performance vector icon suite in
src/components/icons/AppIcons.tsxbuilt withreact-native-svg. Styled with a modern cyan (#38BDF8), indigo (#818CF8), and slate palette, featuring smooth auto-scrolling, safe-area notch and status-bar clearance viaSafeAreaProvider, and responsive HUD layout. - 🧠 Local LLM Reasoning: Runs 4-bit quantized MiniCPM5-2B (
MiniCPM5-2B-Q4_K_M.gguf, 1.45 GB) downloaded from BunnyCDN edge pull zone on first launch and executed viallama.rndirectly on mobile NPU/GPU/CPU with zero cloud dependencies. - 📊 Bayesian Exponential Moving Average (EMA) Mastery Tracking: Relational SQLite tracking across core engineering competencies (React Native, System Design, Concurrency, Concurrency Hazards, Data Modeling, Communication).
- 🎯 4-Tier Mistake Taxonomy & Autopsy: Automatically classifies stumbling points into Conceptual, Structural, Communication, and Vague Hand-waving, generating deliberate practice drills.
- ⚡ STAR Method Scoring: Real-time extraction and verification of Situation, Task, Action, and Result narratives with quantified ownership metrics.
- 🎙️ Future Full-Duplex Voice Engine (STT & TTS): Architecture ready for voice sessions with Kokoro-82M neural TTS and Whisper STT with hardware echo cancellation (AEC).
Intervity puts active recall and Socratic learning front and center via the Question-Driven Learning (QBL) engine:
┌──────────────────────────────────────┐
│ App Launch │
│ Teddy greets & asks: Resume session │
│ or start a new skill? │
└──────────────────┬───────────────────┘
│
▼
┌──────────────────────────────────────┐
│ Topic / Skill Selection │
│ - Masterclass Track (SQL, Kafka, │
│ React Native, Dist. Systems, etc.)│
│ - Or type any custom topic │
└──────────────────┬───────────────────┘
│
▼
┌──────────────────────────────────────┐
│ Autonomous Sub-Topic Planner │
│ Plans 5+ structured sub-topics with │
│ gated prerequisites & 0-100% mastery│
└──────────────────┬───────────────────┘
│
▼
┌──────────────────────────────────────┐
│ One-by-One Concept Presentation │
│ Presents 4-option architectural │
│ trade-off questions per concept │
└──────────────────┬───────────────────┘
│
┌───────────────┴───────────────┐
▼ ▼
[Correct Answer] [Wrong Answer]
- +25 XP awarded - +5 Learning XP
- Teddy celebrates (🎉) - Teddy diagnostics (🤔)
- Detailed architectural why - Explains why chosen option failed
- Advances concept count (33%) - Reveals correct pattern rationale
│ - Queues targeted reinforcement drill
│ │
└───────────────┬───────────────┘
│
▼
┌──────────────────────────────────────┐
│ Sub-Topic Mastery Gate │
│ Requires 100% concept mastery │
│ before unlocking next sub-topic │
└──────────────────┬───────────────────┘
│
▼
┌──────────────────────────────────────┐
│ SQLite Local Session Persistence │
│ Full turn-by-turn history, resume │
│ any session right where you paused │
└──────────────────────────────────────┘
-
Pipelined Background Pre-generation (0ms Transitions): While the candidate analyzes Concept
$N$ ,QBLEngineasynchronously pre-fetches Concept$N+1$ in the background. Tapping "Continue" renders the next challenge with zero latency (0ms). -
Deep Technical Prompt Engineering & Artifact Grounding: Questions are systematically grounded in real engineering artifacts—executable TypeScript/Python/Go/SQL snippets, configuration knobs (
max.poll.interval.ms,min.insync.replicas), and production telemetry (p99 = 850ms). -
Token-Level GBNF Grammar Constrained Decoding: Applies
QBL_JSON_GBNFgrammar tollama.rnsampling, mathematically guaranteeing strict 4-option JSON schema compliance and zero parse errors on edge NPUs. -
Graduated Difficulty Progression: Concepts advance step-by-step through explicit, color-coded tiers (
🟢 BASIC→🟡 INTERMEDIATE→🟠 ADVANCED→🟣 PRO). Sub-topic 1 starts from core definitions and foundational mental models before progressing to low-level internal mechanisms and staff-level trade-offs. -
Interactive Mistake Autopsy & Review Session: SQLite tracks all failed turns (
is_correct = 0). Candidates can tap🔍 Review (N)in the active topic HUD at any time or upon topic completion to review step-by-step autopsies comparing their trap choices against authoritative patterns. - Zero Duplicate Questions: Concept #1, Concept #2, Concept #3, and Reinforcement drills deliver distinct, non-repeating technical trade-offs across all 5 subtopics.
- Procedural Question Synthesis: Any custom topic entered by the candidate dynamically generates graduated multi-option question sets and sub-topic roadmaps.
- Mascot Animation Coordination: Teddy displays talk animations exclusively when the local LLM is actively streaming/generating output, ensuring natural, non-distracting conversation flow.
-
Focused Vertical Viewport & Smooth Auto-Scroll: Auto-scrolls smoothly to reveal diagnostic cards and Continue CTAs on evaluation, and anchors strictly at top (
y: 0) on new questions to guarantee zero overlap.
┌────────────────────────────────────────────────────────┐
│ CANDIDATE AUDIO INPUT │
└───────────────────────────┬────────────────────────────┘
│
▼
┌─────────────────────────────────┐
│ Hardware Acoustic Echo Canceler │ (AEC JSI)
└────────────────┬────────────────┘
│
┌──────────────────────┴──────────────────────┐
│ │
▼ ▼
┌──────────────────────────────┐ ┌──────────────────────────────┐
│ Energy VAD & Barge-In │ │ Streaming Audio Queue │
│ Detector (<100ms Abort) │ └──────────────┬───────────────┘
└──────────────┬───────────────┘ │
│ (Interrupt Signal) ▼
▼ ┌──────────────────────────────┐
┌──────────────────────────────┐ │ whisper.rn (STT Engine) │
│ Instant Kokoro Buffer Flush │ └──────────────┬───────────────┘
└──────────────────────────────┘ │
▼
┌──────────────────────────────┐
│ Local Resume & Context Engine│
└──────────────┬───────────────┘
│
▼
┌──────────────────────────────┐
│ llama.rn / MiniCPM-2.5 │
│ (On-Device Interview Driver) │
└──────────────┬───────────────┘
│
▼
┌──────────────────────────────┐
│ sherpa-onnx (Kokoro-82M) │
└──────────────┬───────────────┘
│ (PCM 24kHz)
▼
┌──────────────────────────────┐
│ AudioTrack Native Output │
└──────────────────────────────┘
| Component | Model / Engine | Quantization / Format | Memory Footprint | Runtime / Latency |
|---|---|---|---|---|
| Neural TTS | Kokoro-82M (sherpa-onnx) |
INT8 ONNX (88 MB) | ~110 MB RAM | ~1.1s for 10s audio |
| Speech-to-Text | Whisper-Base / Small | GGML Q5_1 / FP16 | ~140 MB RAM | ~180ms chunk decode |
| Reasoning / LLM | MiniCPM5-2B (openbmb) |
Q4_K_M GGUF (1.45 GB) | ~1.5 GB RAM | 22–38 tok/s on NPU / GPU |
| Relational DB | SQLite (@op-engineering) |
Embedded Local DB | <5 MB RAM | Sub-millisecond |
- Node.js >= 18 or Bun >= 1.1
- Android Studio (for Android builds) with NDK 26+ and CMake
- Xcode 15+ (for iOS builds) with CocoaPods
- An Android device or emulator (Android 8.0+, API 26+)
git clone https://github.com/rahullahoria/Intervity.git
cd Intervity
# Install JavaScript dependencies
bun install # or npm installWe provide an automated setup script that pulls the Kokoro-82M INT8 bundle and pushes it to your connected device:
chmod +x scripts/setup_kokoro_device.sh
./scripts/setup_kokoro_device.sh(Note: The Android build process automatically fetches sherpa-onnx.aar during Gradle configuration, so no manual AAR downloads are needed.)
# Start Metro bundler
npx react-native start
# In a separate terminal, install and launch on connected device
npx react-native run-androidcd ios && pod install && cd ..
npx react-native run-iosIntervity includes an extensive unit and end-to-end test suite (87+ automated tests across 16 files) covering Question-Driven Learning (QBL) roadmap planning, question distinctness & diversity, conversational state machines, resume parsing, Bayesian EMA mastery math, and STAR scoring:
bun test
# or
npm testWe are actively inviting engineers, researchers, and designers to build Intervity together. If you believe education and career empowerment should be universally accessible and free, here are areas where your contributions will make a massive impact:
- ⚡ ML & Edge Acceleration:
- Optimize GGUF inference kernels (Qualcomm QNN, MediaTek NeuroPilot, Apple Metal / CoreML).
- Fine-tune ultra-lightweight (1B–2B) interview specialist models for conversational dialogue.
- 🎙️ Voice & DSP Audio Engineering:
- Enhance the C++ WebRTC AEC / VAD pipeline for noisy environments.
- Add multilingual phoneme sets (Hindi, Spanish, Mandarin, German, etc.) to Kokoro.
- 📱 React Native & Native Modules:
- Port the iOS native audio unit pipeline to full parity with Android's
AudioTrackengine. - Refactor UI animations with Reanimated 3 worklets for zero-jank 120Hz rendering.
- Port the iOS native audio unit pipeline to full parity with Android's
- 🧠 Interview Content & Curriculum Engineering:
- Author engineering rubrics, behavioral STAR evaluation heuristics, and domain question trees (Frontend, Backend, DevOps, Data Engineering, ML).
- Design dynamic coding whiteboard drills and system design canvas components.
Read our Contributing Guide (CONTRIBUTING.md) to get started, and join the discussions!
Intervity/
├── android/ # Native Android host & Sherpa-ONNX VoiceAudioEngine
│ └── app/src/main/
│ ├── AndroidManifest.xml # Configured with modern launcher & round adaptive icons
│ ├── java/com/
│ │ ├── goairm/intervity/ # MainApplication & MainActivity
│ │ └── offlineinterview/audio/ # JSI AudioTrack & Kokoro C++ bridge
│ └── res/ # Mipmap launcher icons & adaptive XML suite
├── ios/ # Native iOS host & CoreAudio engine
├── src/
│ ├── analytics/ # STAR method, mistake taxonomy & prosody analysis
│ ├── components/ # RiveMascot, VoiceOrb, SubtitleBar, RadarChart, PacingMeter
│ │ └── icons/ # AppIcons.tsx (unified SVG vector icon design system)
│ ├── core/
│ │ ├── agent/ # Autonomous Coaching Harness & SQLite memory
│ │ ├── audio/ # Full-duplex audio state machine & AEC logic
│ │ ├── llm/ # Local Llama / MiniCPM prompt & generation orchestrator
│ │ ├── qbl/ # QBLEngine & QBLQuestionCatalog (Question-Driven Learning)
│ │ ├── resume/ # Fast on-device regex & heuristic resume parser
│ │ ├── stt/ # Whisper speech-to-text service
│ │ └── tts/ # Kokoro TTS service interface
│ ├── database/ # SQLite schema, QBLStorageManager & Bayesian EMA skill store
│ ├── hooks/ # useQBLSession, useAgentCoaching, useMasteryProgression
│ ├── navigation/ # React Navigation stack with SafeAreaProvider
│ ├── screens/ # AgentCoachingScreen, ModelManagerScreen, DashboardScreen
│ └── theme/ # Dark aesthetic design system & color tokens
├── tests/ # 87+ unit & E2E integration test suites across 16 files
└── scripts/ # Model downloaders, device provisioning & icon generators
Intervity is powered by incredible advancements from the global open-source AI community. We gratefully acknowledge the creators, researchers, and maintainers of the following models, assets, and frameworks:
- Kokoro-82M by @hexgrad (Apache 2.0) — Lightweight studio-grade neural text-to-speech. Mobile INT8 bundles provided by k2-fsa/sherpa-onnx.
- Whisper by OpenAI & whisper.cpp by Georgi Gerganov (MIT) — Real-time on-device speech-to-text transcription via whisper.rn. Quantized weights from ggerganov/whisper.cpp and handy-computer.
- Qwen 2.5 0.5B Instruct by Alibaba Cloud Qwen Team (Apache 2.0) — Ultra-fast, low-latency conversational reasoning.
- MiniCPM-2.5 / MiniCPM5-2B by OpenBMB / ModelBest & quantized by bartowski (Apache 2.0) — Technical architecture probing and deep curriculum reasoning.
- Llama 3.2 by Meta AI (Llama 3.2 Community License) — Optional conversational engine.
- Coach Nova Robot Mascot (
src/assets/rive/mascot.riv): Custom interactive Rive state machine featuring real-time lip sync (Talking), listening gaze, and celebratory animations (Apache 2.0). - Teddy Bear Avatar (
src/assets/rive/teddy.riv): Remixed by japarj from JcToon (CC-BY 4.0) — Accessible, friendly companion avatar with animated talking mouth (Talk), listening pose (Hear), and dynamic audio gaze tracking. - Mascot Face App Launcher Icons: Custom high-resolution brand icons across Android adaptive densities and iOS asset catalog (
scripts/generate_mascot_icons.py). - Unified Vector Icons: Built with
react-native-svginsrc/components/icons/AppIcons.tsx.
- sherpa-onnx (Apache 2.0) — On-device ONNX runtime execution for Kokoro-82M TTS.
- llama.rn & llama.cpp (MIT) — C++ JSI execution engine for local GGUF models with ARM NEON, OpenCL, and DSP support.
- rive-react-native (MIT / Rive License) — High-performance 60/120 FPS vector runtime for interactive characters.
- op-sqlite (MIT) — Fast embedded SQLite database for local mastery analytics and conversation memory.
- Qualcomm Hexagon HTP GGML Binaries (
android/app/src/main/assets/ggml-hexagon/) — Snapdragon NPU acceleration drivers.
👉 For complete upstream references, licenses, and legal notices, see ATTRIBUTIONS.md.
We are committed to providing a welcoming, inclusive, and harassment-free environment. Please review our Code of Conduct before participating.
Intervity is released under the Apache 2.0 License.
Free to use, modify, distribute, and contribute. Build it, learn with it, share it.
Made with ❤️ for developers and job seekers everywhere. Learning should belong to everyone.










