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.
We will look into three less-understood, yet (arguably) extremely useful constructs introduced in Cats Effect 3: Dispatcher, Supervisor, IOLocal
How to make Scala more approachable and productive?
We all have pretty little things laying around in our codebases, yet, we seldom give them the same love