marcinmoskala.bsky.social
@marcinmoskala.bsky.social
With @preussler.berlin 👍 at #dcbln25

Thank you @droidcon.bsky.social for inviting me another time to this event!
September 25, 2025 at 9:17 AM
🚀 Want to dive deeper into performance and Kotlin best practices?

Join me for the upcoming open workshop – Kotlin Mastery, October 23–24, where we’ll explore performance optimization and much more!
September 18, 2025 at 8:01 AM
On Android the modern standard for testing is Macrobenchmark and Microbenchmark frameworks. They can measure startup times, performance of all kinds of UI operations, and much more.
September 18, 2025 at 8:01 AM
The problem is that such a test is harder to profile, harder to setup, and gives less predictable outcomes, but it better shows us how our application behaves under certain stress.
September 18, 2025 at 8:01 AM
On the other hand, you can write a local E2E performance test. On backend it means starting application locally, local database, and local fake services it uses. Such a test measures much more, including database use, serialization/deserialization, etc.
September 18, 2025 at 8:01 AM
During execution we can profile execution time and memory use to know what to optimise. For more precise measurements, we can use a framework like JMH, but that limits our profiling capabilities.
September 18, 2025 at 8:01 AM
Let’s start with the simplest approach: Testing an element in separation. A class often needs some fake dependencies, and we fill them with fake data, to simulate a specific scenarios.
September 18, 2025 at 8:01 AM
To optimise, you must measure. To choose the right approach for performance measurement, you must answer the most important question: What do you want to measure?
September 18, 2025 at 8:01 AM
Which one really scales better for high-concurrency workloads? 🤔
Are there reliable benchmarks comparing coroutine performance with Loom’s virtual threads?
August 25, 2025 at 3:02 PM
Want to see how Loom really compares against Kotlin Coroutines?
On Sept 1, I’ll be live comparing them side-by-side — strengths, weaknesses, and when to use each.
Two time slots, free to join.
Reserve your seat → webinar.kt.academy/kotlin-corou...
August 22, 2025 at 4:02 PM
Boost your Kotlin performance with Project Loom's virtual threads!

Say goodbye to `Dispatchers.IO` and run blocking code like it's non-blocking. Faster, simpler, smarter. ⚡

🔗 Dive in now:
kt.academy/article/disp...
August 22, 2025 at 4:02 PM
🥵 Are your frustred by mistakes like these? That’s just one of many subtle pitfalls we tackle in Coroutines Mastery.
If you want to master Kotlin’s concurrency tools — and avoid the mistakes that slow teams down — join our course.

coroutinesmastery.com?utm_source=l...
August 21, 2025 at 4:05 PM
Updates to MutableStateFlow should be made using the update function; otherwise, conflicts might cause some updates to be lost.
August 21, 2025 at 4:05 PM
I will be speaking at #JDDKrakow on October 21-22, 2025!
Let's meet in Krakow, Poland - join the conference at: jdd.org.pl

#JavaDevelopment #JavaConference #SoftwareEngineering #TechConference #Krakow
August 15, 2025 at 8:02 AM
A lightweight wrappers over arrays, providing efficient collection processing functions, immutability, equality, and proper type hierarchy. Those are arrays done well, I love it!

github.com/daniel-rusu/...

#Kotlin #ImmutableCollections #FunctionalProgramming #SoftwareEngineering #DeveloperTips
August 15, 2025 at 8:01 AM
Ready and excited for today's sessions! Can't wait to share this content with you all.
See you all very soon!
webinar.kt.academy/why-you-shou...

#Kotlin #KotlinCoroutines #Concurrency #AsyncProgramming #DeveloperCommunity
August 14, 2025 at 8:01 AM
Still debating whether you should introduce coroutines—or where to even begin? Skip the internal tug-of-war and bring your toughest questions to my live Q&A TOMORROW!

I’ll be dedicating extra time to answer everything you throw.

Last chance to sign up: webinar.kt.academy/why-you-shou...
August 13, 2025 at 8:01 AM
Starting from square one? Come hang out at my live session “Why You Should Use Kotlin Coroutines.” this Thursday. We’ll unpack why they’re worth the learning and how to do it painless. 👇
webinar.kt.academy/why-you-shou...

#KotlinCoroutines #KotlinFlow #SoftwareEngineering #DeveloperTips
August 12, 2025 at 8:01 AM
August 11, 2025 at 8:01 AM
Cancellation is just one example of how Kotlin Coroutines improve real-world code.
If you'd like to explore more such concepts, I invite you to my free webinar: webinar.kt.academy/why-you-shou...
August 8, 2025 at 8:01 AM
Also when you define a backend application in a framework like Ktor, that is coroutines-first, if an HTTP connection is lost, call gets immediately cancelled, the same if WebSocket or RSocket connection is lost.
August 8, 2025 at 8:01 AM
But cancellation mechanisms are also a great benefit for backend developers. If you make async calls and one of them fails, others are cancelled by default.
August 8, 2025 at 8:01 AM
Thanks to structured concurrency, cancellation propagates from child to parent. That is a game-changer for Android developers, where each scope is associated with a view, so if the view gets destroyed, all its processes get cancelled.
August 8, 2025 at 8:01 AM
Most people do not even think about cancellation, but it is extremely important, and both Android and backend developers benefit from Kotlin Coroutines cancellation mechanisms. Let me give you some examples.
August 8, 2025 at 8:01 AM
Curious about the real payoff of coroutines? Save a spot at my upcoming webinar — details & sign-up: webinar.kt.academy/why-you-shou...
August 6, 2025 at 8:00 AM