Why Kotlin uses Coroutines
Discover why Kotlin introduced Coroutines over traditional threads, callbacks, and Rx. This article breaks down the design decisions, pitfalls of older approaches, and the power of structured concurrency.
I'm Cavin Macwan, Co-Founder of Meticha, where I focus on building simple software that actually matters. My journey started with mobile apps, but curiosity quickly pulled me into exploring how ideas turn into products across platforms, stacks, and systems.
These days, I build apps and micro SaaS products using Android, Jetpack Compose, SwiftUI, Flutter, and the cloud. I enjoy simplifying complex problems, designing clean architectures, and shipping things that feel effortless to use (and maintain). If it looks simple on the surface, chances are there’s thoughtful engineering underneath.
When I’m not building, I’m sharing. I write blogs, contribute to open source, create tools like Compose101, and talk about everything from modern UI systems to software architecture and emerging tech. I believe great software is built by staying curious, questioning defaults, and constantly learning what’s next. 🌍
Build Android apps faster with our collection of reusable components, snippets and utilities built just for you.

Explore a curated collection of innovative applications built using Jetpack Compose. Discover the best apps of the year and get inspired to build your own.

The ultimate boilerplate built for Jetpack Compose Users. Kickstart your next project with Compose101 and save time and effort.

Discover why Kotlin introduced Coroutines over traditional threads, callbacks, and Rx. This article breaks down the design decisions, pitfalls of older approaches, and the power of structured concurrency.
Simplify Android runtime permission management in Jetpack Compose with our custom library. Learn to reduce boilerplate and effortlessly handle dialogs and lifecycle events
Get notified when I publish something new, and unsubscribe at any time.