01
Dropped batch scoring for a structure that grades by meaning-unit segments across two criteria (Comprehension / Phrasing)
PROBLEMScoring an entire text at once can't reveal the fine grain of understanding — the specific bottlenecks
I had the AI handle segmentation into meaning units, tuning feedback granularity to the user's own "units of understanding." On top of that, I implemented logic that switches between two scoring modes: Comprehension, which measures accuracy of meaning, and Phrasing, which measures how natural the wording feels.
→From pinpointing where you stumbled to presenting native-like phrasing, it anchors the heart of the UX in both the granularity and the quality of scoring
02
Rather than confining the vocabulary book to one app, unified it at the backend for cross-reference with LinguaCoach
PROBLEMLocking data inside a single app fractures the user's growing vocabulary asset at the product boundary
Instead of trapping vocabulary data inside one dedicated app, I unified it at the backend. I defined a data structure where words met in the translation drills (GYM) are seamlessly cross-referenced and synced into conversation practice (COACH) as well.
→Two independent products stay continuous as learning data, building an ecosystem where the more apps you add, the more the user's asset grows
03
Removed furigana and phonetic display after building them, prioritizing the lightness of the core experience
PROBLEMThe more accuracy you chase, the heavier the processing gets, hurting the reading experience itself
I once implemented furigana and phonetic display for Japanese, Chinese, and French. But the harder I tried to guarantee accuracy, the heavier it ran, eating into the tempo of the core experience of "reading text." Reassessing it — including the maintenance cost of rolling it out to every supported language — I judged the return didn't justify the investment within a personal-use scope, and removed the feature entirely.
→By subtracting features rather than adding them, I protected the core value of reading tempo
04
Encapsulated sessions, vocabulary, and progress per language, achieving expansion with "no design changes"
PROBLEMIn typical multilingual setups, every language you add or spec you change raises the cost of interfering with existing data and running regression tests
I adopted an architecture that encapsulates — scopes — session, vocabulary, and progress data independently "per language." The UI theme's language-linking logic follows the same pattern based on this language key.
→It keeps the risk of interfering with existing data at zero, making adding new languages, extending to certification systems, and repurposing for other products possible with "no design changes"