Problem
Language learners needed a maintainable speaking-practice UX with segmented audio, library discovery, and room for rapid iteration.
Full-stack contributor
Jul–Dec 2024
Angular SSR PWA for listen-and-repeat audio shadowing — segmented practice sessions, library filters (category, difficulty, voice), profile uploads, and Lemon Squeezy subscriptions. NestJS BFF + Django + Redis with WaveSurfer.js waveforms.
Language speaking practice PWA with audio shadowing, segmented sessions, and subscription billing.

Language learners needed a maintainable speaking-practice UX with segmented audio, library discovery, and room for rapid iteration.
I helped establish BFF-backed practice flows and waveform-driven shadowing sessions that keep product updates fast and consistent.