@rcardin.bsky.social
#Java is evolving, one piece at a time. 📈 Now, it's possible to implement Algebraic Data Types (ADTs) well using records and sealed hierarchies. They can help us avoid using exceptions 🔥 for expected business errors and check edge cases at compile time. rockthejvm.com/articles/alg...
ADTs (Algebraic Data Types) in Java
Discover ADTs (Algebraic Data Types) in modern Java: how records and sealed interfaces bring sum types and product types to Java 25
rockthejvm.com
#Scala devs, finally, #YAES has its own home! 🏡 Version 0.22.0 migrated all the libraries under the yaes-io GitHub org, and the root package to `io.yaes`⭐️. The website is now available at www.yaes.io. Here are the release notes: github.com/yaes-io/yaes...
We're approaching summertime again ⛱️, and before going on holiday 🍹 , there is time for a new version of #YAES! The main addition is the CircuitBreaker handler, which, together with the Retry handler, lets us develop #Scala resilient distributed applications using YAES 🚀 github.com/rcardin/yaes...
#Scala folks, in Italy 🇮🇹 we're approaching the Republic Day, and a new #YAES version is here to celebrate! 🎉 The focus was on testing YAES applications, so we introduced some utilities to deal with effects in tests (mainly for @scalatest). Check it out! github.com/rcardin/yaes...
It seems to me that in the era of #AI and agentic development, non-tech people are discovering software engineering. Many of the proposed processes had been around for 40 years, more or less, waiting for their time.
A couple of months ago, I had the pleasure of giving a talk at @scalar-conf.com . Now the video 📽️ is available! The talk was about how #Scala, #Kotlin, and #Java use continuations to implement their light version of threads 🧵 Enjoy! www.youtube.com/watch?v=2TA-...
The Concurrency Triangle by Riccardo Cardin | Scalar 2026
YouTube video by SoftwareMill
youtube.com
#Scala lovers, #YAES 0.19.0 is out! 🚀 We focused on making the HTTP Client more ergonomic and usable. We create a `uri(...)` interpolator checking URI validity at compile time. 💪 Moreover, we strengthen the decoding errors hierarchy. Here are the release notes: github.com/rcardin/yaes...
New version of #YAES is here, and this time it's huge! 🚀 We have a new integration with #Scala Jsoniter, a new testing library with primitives for testing the `Raise[E]` effect, a bunch of other stuff... and a new version of the `Reader[R]` effect based on opaque types 👻 github.com/rcardin/yaes...
The slides for my talk at the @scalar-conf.com are available. It's called "The Concurrency Triangle: Scala Fibers, Java Virtual Threads, and Kotlin Coroutines". Check'em out! github.com/rcardin/scal...
Today it's Father's Day in Italy! 🇮🇹 What better event for a new version of #YAES? Version 0.16.0 introduces HTTP Client! It's a wrapper around #Java HttpClient, but lifted to effect tracking 🚀 Plus, we reinvented the site: blog.rcard.in/yaes/ Here are the release notes: github.com/rcardin/yaes...
Spring 🌷 is approaching fast here in Italy 🇮🇹, and a new version of #Scala #YAES is here! - a new integration with Circe 🐍; - a new `Retry` effect handler ↩️, which allows retrying code execution using different policies; and much more! Checkout the release notes: github.com/rcardin/yaes...
I revamped my blog with a new look and feel. 🌻 There are articles about #Scala, #Java, #Kotlin, functional programming, and software engineering. EST. 2013 ⭐️ blog.rcard.in
Big ball of mud
Writing about Scala, Kotlin, and the JVM — from functional programming and effect systems to design patterns and concurrency.
blog.rcard.in
Here we go again, hashtag#Scala lovers 🎸! Version 0.12.1 of hashtag#YAES is here with big new features! ✨ We implemented the graceful shutdown for the `Async` effect! If you want, you can interact with the shutdown process using the `Shutdown` effect 😱 Release notes: github.com/rcardin/yaes...
🤖 Direct-style programming can feel elegant until you try to compose it. This session explores what happens when flatMap enters the picture. Check out "Yo Dawg, Heard You Want To FlatMap Your Direct-Style" from Riccardo Cardin
Riccardo Cardin: Yo Dawg, Heard You Want To FlatMap Your Direct Style [Scala Days 2025]
The direct style in Scala 3, influenced by languages like Kotlin and Rust, simplifies functional programming by eliminating for-comprehension syntax on higher-kinded types. It offers an imperative approach supported by context functions. While many Scala developers support it, others prefer the tra
youtube.com
Hey, #Scala lovers 💕, Santa is coming 🎅, bringing version 0.11.0 of #YAES this year! 🎁 This time, we added the integration with Reactive Streams so that you can use YAES with any library implementing the standard (Akka, Vert.x, Http4s...). github.com/rcardin/yaes... Merry Christmas! 🎄
Sad to learn that there will not be a #lambdadays 2026 conference in Krakow. As a consolation, all the 2025 talks have now been published including mine: www.youtube.com/watch?v=LDln...
Shoehorning dependency injection into a FP language (...)? - Eric Torreborre | Lambda Days 2025
YouTube video by Code Sync
youtube.com
#Scala lovers ,💕#YAES v0.10.0 is out! Bridge the gap between YAES and Typelevel Cats Effect 🐈 with the new `yaes-cats` module. Convert between IO monads, integrate with `Validated` types, and get `MonadError` instances for `Raise`. Check out the release notes: github.com/rcardin/yaes...
#Scala lovers, #YAES 0.9.0 is here! 🚀 Full I/O stream support with `Flow` 🌊. Read files, process lines, and write output with ease. In addition, we introduced `channelFlow`, the bridge 🌉 between channels and flows! Cold flows + concurrent emission = 🔥 Check it out 👉 github.com/rcardin/yaes...
Hack.Commit.Push Switzerland is just one week away! 🇨🇭 This is a great opportunity to get involved in Open Source projects like @assertj.github.io, with direct guidance from the maintainers!
The next edition of Hack.Commit.Push Switzerland🇨🇭will take place in Rotkreuz LU this November 22nd. Care to join us for some Open Source hacking? It’s for a good cause! switzerland2025.hack-commit-pu.sh
We've closed the first round of applications for the Scalar Call for Papers! We'll be announcing the first speakers for the 2026 edition very soon! In the meantime, check out our #myscalastory series at sml.io/myscalastory, featuring insights from top Scala and functional programming experts!
A new month, a new version of #YAES 🥳 Version 0.8.0 finally introduces the `YaesApp`. Now, you can develop your direct style #Scala app, and Yaes will take care of the execution of most of the effects 🙌 Plus, we redesigned Channels and added overflow policies! 💪 github.com/rcardin/yaes...
#Scala Effects lovers, here is the Halloween 🎃 release of #YAES. We introduced Channels in the library. Now, fibers can communicate asynchronously through message passing 📨. #Kotlin Channels heavily inspired the feature. Here are the release notes: github.com/rcardin/yaes...
My first @scaladays.org just finished. Thanks to all the people who attended my talk and took some time to chat with me 🙏 There are a lot of engineers, data scientists, front-enders, and students who do extraordinary things using #Scala every day, and are the heart of our community 💕. Thank you all
Version 0.5.0 of the #YAES effect system is here 🚀 (just in time for @scaladays.org...fiuuu). We added the `State[S]` effect to the #Scala 3 party 🥳. However, be careful that the current version is not thread-safe. Here are the release notes: github.com/rcardin/yaes...
I'm reading @sam-cooper.bsky.social's "Kotlin Coroutine Confidence". It's a masterpiece💫, even if you already know #Kotlin coroutine machinery: It's worth your money 💰: pragprog.com/titles/sckot...