ADTs (Algebraic Data Types) in Scala
10 min read • • Explanation
Discover ADTs (Algebraic Data Types) in Scala: Answers to all your questions about this essential concept
Riccardo Cardin
A proud alumnus of Rock the JVM, now a senior engineer working on critical systems written in Java, Scala and Kotlin.
10 min read • • Explanation
Discover ADTs (Algebraic Data Types) in Scala: Answers to all your questions about this essential concept
18 min read • • Guide
An extensive guide to testing functional Kotlin code using Arrow and the Raise DSL
25 min read • • Guide
Discover the ultimate tutorial on purely functional streams in Scala with FS2
21 min read • • Guide
Master error handling in Kotlin with ease: discover how nullable types and Arrow Option types tackle errors efficiently, whether you're using object-oriented or functional approaches
28 min read • • Guide
Continue your functional error handling journey: explore how to effectively use the Result and Either data types in Kotlin
41 min read • • Guide
Wrap up your Kotlin functional error handling journey: discover the Raise DSL in Arrow 1.2.0 for managing typed errors with Kotlin contexts
29 min read • • Guide
Master functional programming basics: use http4s with the Cats ecosystem to seamlessly create powerful HTTP APIs
31 min read • • Explanation
Apache Kafka is the leading technology for message brokers: Kafka Streams builds a robust stateful streaming system on top of it
18 min read • • Guide
Explore Kotlin context receivers: a new feature for creating clean and manageable abstractions in Kotlin
31 min read • • Guide
Discover Kotlin coroutines: a powerful tool for asynchronous programming within structured concurrency, and learn about their key features and strengths in this tutorial
41 min read • • Guide
This article delves into Kotlin Flows: a crucial reactive data structure in Kotlin Coroutines that, once discovered, becomes indispensable
18 min read • • Guide
Discover type classes in Kotlin: a powerful pattern to organize your code for improved readability, maintainability, and flexibility
31 min read • • Guide
JDBC struggles with side effects in functional programming: doobie offers a higher-level, effectful API through Cats and Cats Effect
49 min read • • Guide
In this article, we will explore the concept of structured concurrency and how Project Loom simplifies writing concurrent code in Java
33 min read • • Guide
Project Loom and virtual threads: Explore how they promise to bring modern concurrency paradigms from Kotlin and Scala to Java, even while still in preview
12 min read • • Explanation
Discover a powerful technique for eliminating hard-to-trace bugs with ad-hoc type definitions: learn how Scala 2's newtypes and Scala 3's opaque types can enhance your code's safety and maintainability
12 min read • • Guide
Explore ZIO's unique fiber model for concurrency: see how it stands out from other effect libraries in the Scala ecosystem
23 min read • • Guide
Discover how to leverage ZIO to seamlessly interact with Apache Kafka: the proven, scalable solution for reliable communication between distributed application components