Confidential EdTech · Mobile & EdTech
Learning software built for unreliable networks
As a freelance engineer for a Thai-German education platform, I built mobile and web learning flows around audio, progress, and intermittent connectivity. My work connected the learner experience with local state and Firebase services.
- My role
- Senior Full-Stack / Product Engineer
- Engagement
- Freelance client work
- Period
- 2025-Present
Confidential client work
Freelance product engineering across learner-facing applications, local session handling, and serverless data and audio workflows.
Project at a glance
- The need
- Learners need practice, audio, and progress to work together even when a network connection is inconsistent.
- What I delivered
- Learning flows designed around cached content, queued progress updates, and preloaded audio, with cloud services supporting the shared data and audio workflows.
Confidential freelance engagement. Client identity and internal product screens are not disclosed.
My contribution
- Developed mobile and web learning experiences connecting guided practice, audio exercises, spaced review, and progress tracking.
- Implemented local caching and queued updates to account for gaps between learner interactions and successful cloud requests.
- Built audio preloading and serverless audio workflows to support repeated listening practice.
- Developed Firebase services with TypeScript, Zod validation, and automated tests for data and audio workflows.
Technical challenge
A lesson can involve several state changes before the next successful network request. Audio, exercise progress, and pending updates need to remain coordinated when connectivity drops, without making every interaction depend on the cloud.
My approach
I built learning flows with cached content, queued progress updates, and preloaded audio. Firebase and Cloud Functions support shared state and audio processing, with TypeScript, Zod validation, and automated tests around the service workflows.
Engineering decisions
Treat intermittent connectivity as normal
I separated local session handling from deferred cloud updates. Cached content and queued changes give learning flows a way to handle network gaps instead of treating every interruption as an exceptional state.
Validate the service workflows
I paired TypeScript with Zod validation and automated tests around Firebase and audio services. Runtime checks complement static types where data enters a service boundary.
Explore the system architecture
Learning applications coordinate practice with a local cache and update queue. Firebase services support shared state and serverless audio work when connectivity is available.
System architecture
Select a component to explore its responsibilities.
Learning applications: responsibilities
Technology
- React Native
- Expo
- TypeScript
- Firebase
- Firestore
- Cloud Functions
- Zod
- Vitest