Recent posts

Semigroups and Monoids in Scala

7 minute read

This article is about Monoids and Semigroups as a gentle introduction to functional abstractions and to how the Cats library works.

Organizing Services with ZIO and ZLayers

12 minute read

ZIO layers (ZLayers) help us structure our complex services into modules that are independent, composable and easy to understand. Let’s take a look.

Value Classes in Scala

12 minute read

An ad-hoc type definition technique for eliminating bugs which are hard to trace, with implementations in Scala 2 via newtypes and in Scala 3 via opaque types.

Mutability in Scala

5 minute read

Although frowned upon by FP purists, creating and managing mutable data structures is important in any language. Scala has some first-class features.

Idiomatic Error Handling in Scala

8 minute read

Error handling is likely one of the most frustrating part of programming, and in Scala, there are better and worse ways to do it. Let’s take a look.

Match Types in Scala 3

6 minute read

Scala 3 comes with lots of new features. In this episode, match types: a pattern matching on types, and a tool for more accurate type checking.

How to Sort Lists in Scala with Tail Recursion

5 minute read

Sorting lists might be a “school” problem, but in this article I’ll show you how to use proper FP, tail recursion and more, using this popular example. Might...

Algebraic Data Types (ADT) in Scala

9 minute read

Every developer using Scala meets the acronym ADT sooner or later. In this article, we will try to answer all of your questions about ADTs.

Objects and Companions in Scala

4 minute read

This article is for the starting Scala programmer: an introduction to singleton objects and companions in Scala, what they can do, and why and where we shoul...