Posts by Year

2021

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.

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

What the Functor?

4 minute read

In this article, we’ll explore one of the most used (and useful) concepts in pure functional programming: the Functor. Pretty abstract, so buckle up.

Back to top ↑

2020

Given and Using Clauses in Scala 3

6 minute read

The given/using clauses are some of the most important features of Scala 3. Read on for the essential concepts and how to use them.”

Infix Methods in Scala 3

2 minute read

A quick article on one of the simple, but expressive features of the Scala 3 method syntax.

Let’s Talk About the Scala 3 Indentation

6 minute read

Some people love it, some hate it. Scala 3 indented syntax is not that bad, and it might actually help. Let’s take a look at how Scala 3 can change the struc...

ALL the Joins in Spark DataFrames

6 minute read

It’s obvious that Spark allows us to join tables. What’s not obvious is how many different kinds of joins Spark supports. We explore them in this article.

Type Lambdas in Scala 3

3 minute read

Exploring a quick but powerful structure in Scala 3 - type lambdas. This will help you think higher-level.

Scala 3: Opaque Types

3 minute read

We discover opaque type aliases in Scala 3 and how we can define new types with zero overhead.

Scala 3 Traits: New Features

3 minute read

This article will continue some of the previous explorations of Scala 3. Here, we’ll discuss some of the new functionality of traits in Scala 3.

Enums in Scala 3

2 minute read

Scala 3 introduces enums. About time! Even though it might seem like something minor, it has important implications.

New Types in Scala 3

6 minute read

Scala 3 introduces some new kinds of types, which we’re eagerly awaiting for.

Refined Types in Scala

5 minute read

We look at how we can impose constraints on values at compile time with the Refined library.

Underscores are Overloaded in Scala!

3 minute read

Scala syntax is so confusing sometimes - I’ll show almost all uses of underscores in Scala. Sometimes the philosophy is inconsistent, but it’s worth at least...

How to Use Akka Streams Graph DSL

6 minute read

Akka Streams has the Graph DSL, which is one of its most powerful APIs. Learn how to use it and get started quickly with Akka Streams.

Akka HTTP to Heroku in 10 Minutes

4 minute read

Akka HTTP is super easy to deploy to a web server. Learn how to use Heroku and deploy your first Akka HTTP service in minutes.

4 Nice Ways to Read Files in Scala

2 minute read

Learn to read files in Scala like a boss and compare it to other styles in other languages. We write a simple API which looks almost as easy as Python’s read...

Reading Spark DAGs

5 minute read

We walk you through one of the foundational skills for Spark performance optimization: reading the Spark UI and the graph of how your job is structured.

Reading Spark Query Plans

5 minute read

In this article you’ll learn one of the most important Spark skill: reading how your job will run. This is foundational to any further Spark optimization.

Controllable Futures in Scala

3 minute read

In this article we learn to address the problem of “deterministic” Futures in Scala, using Promises.

8 Scala Pattern Matching Tricks

6 minute read

Pattern matching is one of the most powerful Scala features. Learn to use it to the max so you can write your best Scala code.

Back to top ↑