- Use `expect`/`actual` declarations for platform-specific code in Kotlin Multiplatform.
- Avoid JVM-specific APIs (`java.io`, `java.util`) — use `kotlin.` stdlib and multiplatform libraries.
- Use `kotlinx.cinterop` for C library interoperability.
- Use `kotlinx.serialization` instead of Gson/Jackson — it works across all Kotlin targets.
- Prefer Ktor for networking — it's the primary multiplatform HTTP client in the Kotlin ecosystem.
- Keep platform-specific code minimal — maximize shared Kotlin code in `commonMain`.
- Use `kotlinx.coroutines` for async operations — the native dispatcher uses a thread pool.
- Use `@SharedImmutable` for shared global state in concurrent code.
- Use `kotlinx.datetime` instead of `java.time` for cross-platform date/time handling.