With @preussler.berlin π at #dcbln25
Thank you @droidcon.bsky.social for inviting me another time to this event!
@marcinmoskala.bsky.social
With @preussler.berlin π at #dcbln25
Thank you @droidcon.bsky.social for inviting me another time to this event!
π 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!
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.
18.09.2025 08:01 β π 0 π 0 π¬ 1 π 0In backend, we often choose something in-between, like when we connect to a real application, but some of its repositories are faked. That is often simpler to setup.
18.09.2025 08:01 β π 0 π 0 π¬ 1 π 0The 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.
18.09.2025 08:01 β π 0 π 0 π¬ 1 π 0On 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.
18.09.2025 08:01 β π 0 π 0 π¬ 1 π 0During 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.
18.09.2025 08:01 β π 0 π 0 π¬ 1 π 0Letβ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.
18.09.2025 08:01 β π 0 π 0 π¬ 1 π 0To 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?
18.09.2025 08:01 β π 0 π 0 π¬ 1 π 0 π€
And what about memory usage when you run millions of concurrent tasks? π€
If any of these questions keep you up at night, join my upcoming webinarβIβll walk you through the answers.
webinar.kt.academy/kotlin-corou...
Which one really scales better for high-concurrency workloads? π€
Are there reliable benchmarks comparing coroutine performance with Loomβs virtual threads?
Only 7 days left to buy Coroutines Mastery at a better price!
25.08.2025 12:00 β π 0 π 0 π¬ 0 π 0Want 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...
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...
Curious about Rich Errors in Kotlin? Here is the first KEEP document, explaining their motivation and implementation:
github.com/Kotlin/KEEP/...
π₯΅ 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...
Updates to MutableStateFlow should be made using the update function; otherwise, conflicts might cause some updates to be lost.
21.08.2025 16:05 β π 2 π 0 π¬ 1 π 0I 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
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
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
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...
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
Coroutines power-user? Grab my brand-new Flow Cheat-Sheetβoperators, builders, the whole buffet. π
cheat-sheet.kt.academy/flow
Many ask me how to stay in touch with what's happening in Kotlin. My answer is simple: Kotlin Weekly!
kotlinweekly.net
In 3 days, we go live! β³
Seats are filling up!
π webinar.kt.academy/why-you-shou...
#KotlinCoroutines #StructuredConcurrency #ReactiveProgramming #SoftwareEngineering #KtAcademy
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...
Kotlin Coroutines cancellation is not perfect, but still, it is the best solution I know, and I am very happy to have it in Kotlin.
08.08.2025 08:01 β π 0 π 0 π¬ 1 π 0Exceptions happen, and connections get lost. Now you can calculate how many resources that can help us save if cancellation lets us close a connection with another service earlier, or not make a request at all, or not calculate something, or release a thread previously blocked.
08.08.2025 08:01 β π 1 π 0 π¬ 1 π 0Also 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.
08.08.2025 08:01 β π 0 π 0 π¬ 1 π 0But 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.
08.08.2025 08:01 β π 0 π 0 π¬ 1 π 0