Migrate while shipping
A rewrite stops delivery; a migration does not have to. On Wohin Du Willst the move from MVP and RxJava to MVVM with Coroutines and Flow happens inside a production app that keeps releasing.
Accessibility is architecture
Meeting WCAG on a public transport app is not a final polish step. It shapes components, navigation and testing from the start.
Structure should fit the project
Multi-module codebases and white-label setups pay off when several teams build in parallel. Other apps are better served by a single, well-layered module. I choose the structure the project needs, not the one that is fashionable.
Own the whole system
For Qisara I built the Flutter app, the Deno backend and the infrastructure. Knowing every layer makes me a better mobile engineer on large teams too.
- Android
- Kotlin, Coroutines, Flow, Jetpack Compose, MVVM, MVI, Room, Retrofit
- Flutter
- Dart, go_router, provider, dio, hive, easy_localization, RevenueCat
- Backend
- Deno, TypeScript, Node.js, Go, PostgreSQL, Redis, SQLite, Supabase, PocketBase
- Delivery
- GitHub Actions, GitLab CI, Docker, Coolify