Mobile developer · Poland
Daniel Kurasiński
I build Kotlin Multiplatform apps and run a small indie studio.
Kotlin and Compose for Android and iOS from one codebase. Ktor on the server. Small apps that do one job well, shipped and looked after. If you need something built, contact me.
What I do
I am a mobile developer. My main stack is Kotlin Multiplatform: Kotlin and Compose let me build apps for Android and iOS from one codebase. iOS versions are planned.
I design apps the way I would want to use them: one job, quick to open, no account unless it is needed.
I run Daniel Studio, a one-person studio. Four apps are on Google Play, from a Bluetooth remote to a family shopping list. When an app needs a server I write that too, and I build and host the websites myself.
Games are the side I am growing into. I work in Polish and English.
Skills
What I use day to day, grouped by where it lives.
Kotlin Multiplatform
My main stack. Kotlin and Compose let me build apps for Android and iOS from one codebase. iOS versions are planned.
- Kotlin Multiplatform
- Compose Multiplatform
- Kotlin
- Jetpack Compose
- Material 3
- Clean Architecture
- Multi-module Gradle
- Hilt
- Room
- WorkManager
- Paging 3
- Navigation
- DataStore
- CameraX
- Coil
- Home-screen widgets
- Deep and app links
- MockK
- Turbine
- Robolectric
AI and tooling
I run models on my own machine, work with agents and MCP, and use AI both in how I build and in what I ship.
- Local LLMs with Ollama
- LM Studio
- Prompt engineering
- Model Context Protocol (MCP)
- Agents
- AI-assisted development
- AI features in apps
- On-device ML
- ML Kit barcode scanning
- On-device OCR
Backend
Enough server to give an app sync and accounts, and to run it myself.
- Ktor 3 on Netty
- PostgreSQL
- JWT auth
- Ktor client
- kotlinx.serialization
- SSE sync
- Prometheus metrics
- Docker
- Caddy
- Firebase Auth
Web and games
Plain static web where that is all a page needs, and a game on the side.
- Astro
- Hand-written CSS
- npm workspaces
- Godot 4
- GDScript
- Blender (some)
Product and shipping
Getting an app in front of people and keeping it healthy there.
- Google Play releases
- Play Billing
- RevenueCat
- AdMob
- Play In-App Updates
- Firebase Crashlytics and Analytics
- Polish and English localisation
- WCAG AA contrast
- SEO
Things I have built
Apps I designed, wrote and publish. All of them are small on purpose. iOS is planned for all of them except KeyBeam, which is Android-only.
-
KeyBeam
Turns a phone into a Bluetooth mouse, keyboard and TV remote. Nothing to install on the computer or TV.
Android, Bluetooth
-
BackmarkeriOS planned
Live Gran Turismo 7 telemetry dashboard over UDP on Wi-Fi: about 50 widgets, a layout editor and lap analysis. An unofficial fan app.
Kotlin Multiplatform
-
TimeMateiOS planned
Remembers when you last did something and reminds you when it is time again. Works offline, in English and Polish.
Local reminders, RevenueCat
-
ListyMateiOS planned
Shared family shopping list that syncs between phones and works offline. Invite by QR code, loyalty cards, widgets, Polish and English.
Offline-first sync, own backend
In progress: an idle and automation game in Godot 4, with a headless tool to test its balance. More about the apps at Daniel Studio.
How I work
-
Small and focused
One app, one job. I would rather make something that does a single thing well than a toolbox.
-
Offline first
Your data lives on the phone, and the app keeps working without a connection. Sync is an extra, not a requirement.
-
Accessible
Readable contrast, big touch targets, motion that respects the system setting. I check it, not assume it.
-
AI as a tool
I use AI assistants as part of how I work. I read what they write, and I own the result.
-
Shipped and maintained
An app is not done at release. I fix, update and answer, and I run the servers myself.
Need something built?
Contact me and tell me what you have in mind. I work in Polish and English.