Posts by Tag

scala

An introduction to SBT

21 minute read

Learn how to set up and configure your Scala projects with SBT in this long-form tutorial.

Slick Tutorial

19 minute read

An introduction to the popular database library in Scala: Slick.

Tagless Final in Scala

12 minute read

Demystifying the tagless final pattern in Scala. TLDR: it’s got nothing to do with type classes.

Evaluation Modes in Scala

3 minute read

We’ll take a look at some core Scala constructs and look at them from a different angle than we’re used to.

Custom Pattern Matching in Scala

6 minute read

Pattern matching is one of Scala’s most powerful features. In this article, we’ll how to customize it and create our own patterns.

Scala Functional Collections

7 minute read

A short article with a powerful idea about functional collections many Scala programmers do not know about.

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.

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.

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

4 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

4 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

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

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

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 ↑

type system

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.

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.

Back to top ↑

scala 3

Scala 3: Anti-Givens

3 minute read

Showing a Scala 3 trick that few developers know: exploiting the absence of a given instance to enforce type relationships.

Scala 3: Extension Methods

4 minute read

Deconstructing extension methods, one of the most exciting features of the upcoming Scala 3.

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.

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

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

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

4 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

4 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

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

Back to top ↑

akka

Akka Streams Backpressure

10 minute read

Akka Streams implements backpressure, a critical component of the Reactive Streams specification. This article is a demonstration of this mechanism.

Akka Typed: Adapting Messages

7 minute read

In this article we’ll see a good practice for organizing code, messages, domains and logic in an Akka application with Scala.

Back to top ↑

cats

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.

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 ↑

kotlin

Kotlin Flows - The Ultimate Guide

41 minute read

This article thoroughly covers a crucial concept in Kotlin Coroutines: Kotlin Flows. Flows are a reactive data structure you probably didn’t know, but you ca...

Back to top ↑

spark

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.

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.

Back to top ↑

how to

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.

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.

Back to top ↑

kafka

Kafka Streams 101

31 minute read

Apache Kafka is clearly the leading technology concerning message brokers, and Kafka Streams brings a complete stateful streaming system based directly on to...

ZIO Kafka: A Practical Streaming Tutorial

22 minute read

Apache Kafka has proven itself as a reliable and scalable communication bus between distributed application components. We’ll learn to use ZIO to interact wi...

Back to top ↑

zio

ZIO Kafka: A Practical Streaming Tutorial

22 minute read

Apache Kafka has proven itself as a reliable and scalable communication bus between distributed application components. We’ll learn to use ZIO to interact wi...

ZIO: Introduction to Fibers

11 minute read

Many libraries implement the effect pattern in the Scala ecosystem, and every one has its own concurrency model. First, let’s introduce the ZIO library and i...

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.

Back to top ↑

beginners

An introduction to SBT

21 minute read

Learn how to set up and configure your Scala projects with SBT in this long-form tutorial.

Slick Tutorial

19 minute read

An introduction to the popular database library in Scala: Slick.

Back to top ↑

functional programming

Back to top ↑

akka streams

Akka Streams Backpressure

10 minute read

Akka Streams implements backpressure, a critical component of the Reactive Streams specification. This article is a demonstration of this mechanism.

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.

Back to top ↑

tricks

Back to top ↑

fp

Back to top ↑

akka http

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.

Back to top ↑

cats effect

Cats Effect 3 - Racing IOs

5 minute read

After the previous introduction to concurrency in Cats Effect, we’ll look at how to manage racing IOs and fibers.

Back to top ↑

http4s

Back to top ↑

pulsar

Back to top ↑

streaming

Back to top ↑

teaching

Back to top ↑

rant

Back to top ↑

meta

A 2021 Retrospective

5 minute read

Wrapping up 2021 with an overview of what’s happened this year at Rock the JVM.

Back to top ↑

abstract

Free Monad in Scala

16 minute read

A tutorial on the Free monad in Scala, how it works and what it’s good for.

Tagless Final in Scala

12 minute read

Demystifying the tagless final pattern in Scala. TLDR: it’s got nothing to do with type classes.

Back to top ↑

async

Controllable Futures in Scala

3 minute read

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

Back to top ↑

io

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

Back to top ↑

heroku

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.

Back to top ↑

spark streaming

Back to top ↑

refined

Refined Types in Scala

5 minute read

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

Back to top ↑

aws

Back to top ↑

spray

Back to top ↑

circe

Back to top ↑

jackson

Back to top ↑

monocle

Back to top ↑

traits

Scala 3 Traits: New Features

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

Back to top ↑

optimization

Back to top ↑

data structures

Back to top ↑

algorithm

Back to top ↑

mathematics

Back to top ↑

category theory

Back to top ↑

collections

Scala Functional Collections

7 minute read

A short article with a powerful idea about functional collections many Scala programmers do not know about.

Back to top ↑

testing

Back to top ↑

philosophical

Evaluation Modes in Scala

3 minute read

We’ll take a look at some core Scala constructs and look at them from a different angle than we’re used to.

Back to top ↑

spark structured streaming

Back to top ↑

typelevel

Back to top ↑

fs2

Back to top ↑

scalafx

Back to top ↑

game

Back to top ↑

cassandra

Back to top ↑

zio-streams

Back to top ↑

sbt

An introduction to SBT

21 minute read

Learn how to set up and configure your Scala projects with SBT in this long-form tutorial.

Back to top ↑

zio-http

Back to top ↑

algorithms

Back to top ↑

tips

Back to top ↑

finagle

Back to top ↑

coroutines

Back to top ↑

concurrency

Back to top ↑

scala-native

Back to top ↑

scala-cli

Back to top ↑

learning

Back to top ↑

play

Back to top ↑

http

Back to top ↑

parallelism

Back to top ↑

github-api

Back to top ↑

cats-effect

Back to top ↑

skunk

Back to top ↑