Feb 21 · 6 min read · Flow cancellation is not an optional feature. It is a core part of how coroutines are designed to behave. When a collector stops collecting, the entire upstream flow is cancelled automatically. This i
Join discussionFeb 8 · 13 min read · This is the third post in the series Coroutine, IO bound and Asyncio for AI. Click the image for the series index Introduction In this post, I will briefly introduce how to utilize coroutines for LLMs. Using asyncio for LLM inference is straightfor...
Join discussionFeb 3 · 3 min read · Android apps don’t fail like backend services. They fail like edge nodes: lifecycle churn OEM quirks memory pressure async-heavy execution experiment-driven UI (Compose + flags) At enterprise scale, the expensive failures aren’t just the obvio...
Join discussion
Jan 21 · 9 min read · Introduction In many cases, we have to run several jobs concurrently. Most developers are likely familiar with multi-threading or multi-processing, both of which Python supports through ThreadPoolExecutor and ProcessPoolExecutor. However, there is an...
Join discussionJan 5 · 4 min read · As Android engineers, we spend most of our time in the application layer. However, the smoothness of our UI is governed by hardware limitations and how the Linux kernel manages resources. To build high-performance apps, we must understand the journey...
Join discussion
Jan 1 · 8 min read · Introduction Choosing between Channels and Flow causes more confusion than almost any other Kotlin coroutine concept. This isn't about which is "better" - they solve different problems. This guide provides clear, practical rules with real examples yo...
Join discussion