kt.academy Logo
Marcin Moskała profile

Marcin Moskała

GitHubX (Twitter)

Marcin Moskała to doświadczony programista, autor książek Effective Kotlin, Kotlin Coroutines, Python od podstaw oraz JavaScript od podstaw, założyciel Kt. Academy. Programuje od dziecka, występuje na międzynarodowych konferencjach programistycznych, posiada w dorobku liczne publikacje m.in. w magazynie Programista. Pasjonat czytania i pisania książek, uczenia się i filozofii.

public workshop

Warsztaty otwarte

icon
18 - 19 Dec 2025

Kotlin Expert [EN]

Learn about the most advanced Kotlin tools and patterns.

Marcin Moskala
Marcin Moskala
Zniżka do 18.11.2025
1800 zł
2000 zł
chevron down
TOP CHOICE
KSIĄŻKA

Effective Kotlin [EN]

Marcin Moskala
Marcin Moskala
TOP CHOICE
KSIĄŻKA

Kotlin Coroutines [EN]

Marcin Moskala
Marcin Moskala
KSIĄŻKA

Advanced Kotlin [EN]

Marcin Moskala
Marcin Moskala
KSIĄŻKA

Functional Kotlin [EN]

Marcin Moskala
Marcin Moskala
KSIĄŻKA

Kotlin Essentials [EN]

Marcin Moskala
Marcin Moskala
KSIĄŻKA

JavaScript od podstaw [PL]

Marcin Moskala
Marcin Moskala
KSIĄŻKA

Python od podstaw [PL]

Marcin Moskala
Marcin Moskala
KSIĄŻKA

Python з нуля [UA]

Marcin Moskala
Marcin Moskala

Opublikowane artykuły

Suspending functions vs. Flow: When to use which?
10/28/2025
Marcin Moskała
Marcin Moskała

Suspending functions vs. Flow: When to use which?

A comprehensive guide to understanding the differences between suspending functions and Flow in Kotlin Coroutines, and when to use each.

Dowiedz się więcejlearn more icon
How to implement a random coroutines challenge generator
10/20/2025
Marcin Moskała
Marcin Moskała

How to implement a random coroutines challenge generator

A behind-the-scenes look at how to implement a generator of interesting challenges for learning Kotlin Coroutines.

Dowiedz się więcejlearn more icon
Discussing Kotlin Coroutines on Talking Kotlin Podcast
10/17/2025
Marcin Moskała
Marcin Moskała

Discussing Kotlin Coroutines on Talking Kotlin Podcast

An insightful discussion about Kotlin Coroutines on the Talking Kotlin podcast.

Dowiedz się więcejlearn more icon
Coroutines vs Reactor: When Elegance and Simplicity Crush Complexity
10/6/2025
Marcin Moskała
Marcin Moskała

Coroutines vs Reactor: When Elegance and Simplicity Crush Complexity

A comparison of Kotlin Coroutines and Reactor, highlighting the elegance and simplicity of Coroutines over the complexity of Reactor.

Dowiedz się więcejlearn more icon
Suspending functions into blocking functions or CompletableFuture
9/29/2025
Marcin Moskała
Marcin Moskała

Suspending functions into blocking functions or CompletableFuture

A guide on how to correctly convert suspending functions into blocking functions or CompletableFuture in Kotlin Coroutines.

Dowiedz się więcejlearn more icon
Kotlin Flow to RxJava or Reactor and vice versa
9/22/2025
Marcin Moskała
Marcin Moskała

Kotlin Flow to RxJava or Reactor and vice versa

A guide on how to convert Kotlin Flow to RxJava or Reactor streams and vice versa.

Dowiedz się więcejlearn more icon
Kotlin Coroutines and Swift
9/15/2025
Marcin Moskała
Marcin Moskała

Kotlin Coroutines and Swift

How to use Kotlin Coroutines in Swift projects, or Swift libraries from Kotlin Coroutines.

Dowiedz się więcejlearn more icon
Kotlin Coroutines and JavaScript
9/8/2025
Marcin Moskała
Marcin Moskała

Kotlin Coroutines and JavaScript

How to use Kotlin Coroutines in JavaScript projects, or JavaScript libraries from Kotlin Coroutines.

Dowiedz się więcejlearn more icon
runBlocking in practice: Where it should be used and where not
9/1/2025
Marcin Moskała
Marcin Moskała

runBlocking in practice: Where it should be used and where not

A comprehensive guide to using runBlocking in Kotlin Coroutines, including best practices and common pitfalls.

Dowiedz się więcejlearn more icon

Zrecenzowane artykuły

Running Kotlin coroutines on Project Loom's virtual threads
1/9/2023
Jan Vladimir Mostert
Jan Vladimir Mostert

Running Kotlin coroutines on Project Loom's virtual threads

How to use Project Loom to improve Coroutines performance.

Dowiedz się więcejlearn more icon
A birds-eye view of Arrow: Data Immutability with Arrow Optics
12/19/2022
Alejandro Serrano Mena
Alejandro Serrano Mena

A birds-eye view of Arrow: Data Immutability with Arrow Optics

Learn to use Arrow Optics to support working on immutable objects.

Dowiedz się więcejlearn more icon
Slowing down your code with Coroutines
12/9/2022
Jan Vladimir Mostert
Jan Vladimir Mostert

Slowing down your code with Coroutines

How can we use coroutines to slow down our code, and why would we want to do that.

Dowiedz się więcejlearn more icon
A birds-eye view of Arrow: Error Handling
12/6/2022
Simon Vergauwen
Simon Vergauwen

A birds-eye view of Arrow: Error Handling

Learn about Error Handling in Arrow, end how to effectively work with Either.

Dowiedz się więcejlearn more icon
A birds-eye view of Arrow: working with function with Arrow Core
11/28/2022
Alejandro Serrano Mena
Alejandro Serrano Mena

A birds-eye view of Arrow: working with function with Arrow Core

Learn about essential Arrow functions used for composition, memoization, recursion and functions generation.

Dowiedz się więcejlearn more icon
Persistent memory design choices and use-cases
5/26/2022
Sarthak Makhija
Sarthak Makhija

Persistent memory design choices and use-cases

Let's understand some design choices with persistent memory and use-cases of persistent memory.

Dowiedz się więcejlearn more icon
Persistent dictionary
5/19/2022
Sarthak Makhija
Sarthak Makhija

Persistent dictionary

Let's make our in-memory dictionary persistent and understand some concepts of PMDK.

Dowiedz się więcejlearn more icon
Introducing persistent memory
5/12/2022
Sarthak Makhija
Sarthak Makhija

Introducing persistent memory

Let's learn the basics of persistent memory, its characteristics, how it works and the beauty of byte addressability.

Dowiedz się więcejlearn more icon
In-memory dictionary
5/5/2022
Sarthak Makhija
Sarthak Makhija

In-memory dictionary

Let's begin our journey to understand persistent memory by building an in-memory dictionary.

Dowiedz się więcejlearn more icon