How I Took Offline Textbook Search from 73% to 87% Accuracy on Android
Building AI answers from NCERT textbooks with no internet on a classroom panel. The model was the easy part; the PDFs, the chunking and the size of the index decided accuracy.
Shubham Singh BishtAndroid Systems & Edge AI Engineer
I'm Shubham Singh Bisht, an Android engineer based in Bengaluru. Currently building high-performance system software and interactive displays at Teachmint (ex-Pratilipi), with a focus on runtime internals, low-latency graphics, and on-device AI.
9:41
Today
Android software & system layers for interactive flat-panel (IFP) devices
Work
Wallpaper & style
Display
Notifications
Developer options
About phone
How it works
Android apps on 4K classroom panels
Teachmint's classroom panels are big Android screens on the classroom wall. I work on the whiteboard and classroom apps that run on them, where recording, startup, pens and firmware behave nothing like a phone.
Explain photosynthesis in one line.
Plants turn light, water and CO₂ into glucose and oxygen.
How it works
Language, vision and speech AI with no internet
A classroom panel has three chips that can run AI: the processor, the graphics chip and an AI accelerator. I measured which one each model should use, and moved AI into its own process so a crash can't take the whiteboard down with it.
How it works
Lesson recordings that survive crashes
Teachers record whole lessons on the panel, and often that recording is the lesson's only copy. The old recorder lost a file whenever the app crashed or was swiped away. The new one records in five-minute pieces that are each playable, then joins them when the lesson ends.
How it works
Answers from NCERT textbooks, offline
An AI assistant is only as good as the passage it reads. This pipeline turns NCERT textbook PDFs into a database the panel can search with no internet, and it searches only the student's own class and subject.
How it works
A classroom AI assistant in 12 languages
Edu AI is an assistant that floats over whatever a teacher is doing on a classroom panel: select anything on screen and ask about it. I led taking it beyond India, to new panel brands, new languages and right-to-left layouts.
Choose an account
Shared across Whiteboard and EduAI
How it works
One login, shared safely between two apps
A teacher signs in to the whiteboard once. The AI assistant on the same panel asks the whiteboard who is signed in, proves it's a trusted app, and gets a one-time code. It never sees the teacher's password or session.
How it works
A private journal of my workday
A Mac app I built for myself. It listens through the day, transcribes Hindi–English conversation, works out who said what, and writes a daily report against my goals. Nothing leaves the laptop.
How it works
Panels that update themselves
Classroom panels have nobody standing next to them to tap Update. This SDK lets a preinstalled app download, resume and install its own updates on four brands of panel, including one whose firmware refused the permission it needed.
How it works
Web products inside the Android app
Teachmint's AI tutor and EduBits are web apps shown inside the native Android app. I turned one-off WebViews into a shared platform: a bridge that waits until the page is ready, and web screens that stay alive as you move around.
How it works
Leaderboards, streaks and a social feed
Three features to give students a reason to come back: a weekly leaderboard, Boost with XP and streaks, and a social feed. Likes, updates and sharing all had to feel instant on low-end phones.
A few things I've built, investigated, and learned from.
Building AI answers from NCERT textbooks with no internet on a classroom panel. The model was the easy part; the PDFs, the chunking and the size of the index decided accuracy.
Dispatchers.IO is not a pool of IO threads. What the CoroutineScheduler really does, and the mental model that replaced mine.
If the thread is released while a request is in flight, what is actually waiting for the response? Coroutines, threads, sockets, and continuations, separated.