's Avatar

@marcinmoskala.bsky.social

105 Followers  |  3 Following  |  678 Posts  |  Joined: 23.07.2024  |  2.2747

Latest posts by marcinmoskala.bsky.social on Bluesky

Post image

With @preussler.berlin πŸ‘ at #dcbln25

Thank you @droidcon.bsky.social for inviting me another time to this event!

25.09.2025 09:16 β€” πŸ‘ 5    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Post image

πŸš€ 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!

18.09.2025 08:01 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

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    πŸ“Œ 0

In 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    πŸ“Œ 0
Post image

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.

18.09.2025 08:01 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

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.

18.09.2025 08:01 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

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.

18.09.2025 08:01 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

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.

18.09.2025 08:01 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

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?

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...

25.08.2025 15:02 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Which one really scales better for high-concurrency workloads? πŸ€”
Are there reliable benchmarks comparing coroutine performance with Loom’s virtual threads?

25.08.2025 15:02 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Only 7 days left to buy Coroutines Mastery at a better price!

25.08.2025 12:00 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

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...

22.08.2025 16:02 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

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...

22.08.2025 16:02 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
KEEP/proposals/KEEP-0441-rich-errors-motivation.md at main Β· Kotlin/KEEP Kotlin Evolution and Enhancement Process. Contribute to Kotlin/KEEP development by creating an account on GitHub.

Curious about Rich Errors in Kotlin? Here is the first KEEP document, explaining their motivation and implementation:
github.com/Kotlin/KEEP/...

22.08.2025 11:44 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

πŸ₯΅ 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...

21.08.2025 16:05 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

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    πŸ“Œ 0
Post image

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

15.08.2025 08:02 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

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

15.08.2025 08:01 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

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

14.08.2025 08:01 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

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...

13.08.2025 08:01 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

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

12.08.2025 08:01 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
FLOW IN KOTLIN COROUTINES Need a no-fluff guide to Kotlin Flow? Sign up and grab the Flow in Kotlin Coroutines Cheat Sheetβ€”a concise, high-impact PDF that turns complex async concepts into copy-paste-ready code examples.

Coroutines power-user? Grab my brand-new Flow Cheat-Sheetβ€”operators, builders, the whole buffet. πŸ‘‡
cheat-sheet.kt.academy/flow

12.08.2025 08:01 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Many ask me how to stay in touch with what's happening in Kotlin. My answer is simple: Kotlin Weekly!
kotlinweekly.net

11.08.2025 13:38 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

In 3 days, we go live! ⏳
Seats are filling up!
πŸ‘‰ webinar.kt.academy/why-you-shou...

#KotlinCoroutines #StructuredConcurrency #ReactiveProgramming #SoftwareEngineering #KtAcademy

11.08.2025 08:01 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

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...

08.08.2025 08:01 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

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    πŸ“Œ 0

Exceptions 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    πŸ“Œ 0
Post image

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.

08.08.2025 08:01 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

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.

08.08.2025 08:01 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

@marcinmoskala is following 3 prominent accounts