I'll share a handful of techniques that can help you avoid runtime errors and shift them to the realm of compile time
You are having a good night's sleep and suddenly your phone rings. You wake up and jump to your feet thinking it’s an incident report, but after a second you calm down because you know that it was only one of those “you won a lottery” texts. Thanks to the latest techniques you have implemented, everything is under control. You fall asleep happy that your smart work during the day lets you sleep safe during the night.
Of course, we will not predict everything but during my talk, I'll share a handful of techniques that can help you avoid runtime errors and shift them to the realm of compile time. We'll talk about Scala, refined types and a declarative approach to HTTP endpoints using Tapir.
How Libretto, a Scala DSL for concurrent programming, can be used for writing custom stream operators
We all have pretty little things laying around in our codebases, yet, we seldom give them the same love
Understanding the exact properties that disqualify a data type from being an instance of a given abstraction turns out to be surprisingly helpful