Matej Cerny's Avatar

Matej Cerny

@matejcerny.bsky.social

Functional programming enthusiast with strong foundations in the relational databases world #FP #Scala #Postgres

159 Followers  |  147 Following  |  467 Posts  |  Joined: 26.11.2024  |  1.7857

Latest posts by matejcerny.bsky.social on Bluesky

Search for "Higher-Kinded Types" if you're curious how other languages like Scala solve this.

20.11.2025 09:21 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

Java devs, have you noticed that List, Optional, and CompletableFuture all behave like containers you can map over? Yet, the syntax is inconsistent. Sadly, you can't write an interface to enforce a common API, at least not in #Java.

20.11.2025 09:21 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

The greatest improvement over the years is that now we send CSV files via an S3 bucket instead of SFTP.

18.11.2025 23:21 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

The biggest shift in Scala 3.8 is that the standard library is finally being built with Scala 3 (up until now, it was still Scala 2!). So, what changes for us end users? Absolutely nothing! And thatโ€™s beautiful. ๐Ÿง˜โ€โ™‚๏ธ #scala

18.11.2025 10:59 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

"Better-fors" are leaving preview with the release of Scala 3.8. It looks like a small DX upgrade, but under the hood, the desugaring is a lot simpler, skipping redundant `.map` calls. See the official documentation. #scala docs.scala-lang.org/scala3/refer...

17.11.2025 13:46 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
GitHub - nau/lasca-compiler: Lasca is Scala shifted towards Haskell. Lasca is Scala shifted towards Haskell. Contribute to nau/lasca-compiler development by creating an account on GitHub.

Apparently, there was an experiment called "Lasca" which tried to shift #Scala more towards #Haskell. Based on the readme, it was planned to feature full type inference and be LLVM based. Funnily enough, in Czech ๐Ÿ‡จ๐Ÿ‡ฟ the name means "Love" โ™ฅ๏ธ github.com/nau/lasca-co...

17.11.2025 07:12 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Quick clarificationโ˜๏ธJust because Scala itself targets JDK 8 doesn't mean your app has to! You're free to use any JDK 8 or newer. Scala 3.8 will raise the minimum required JDK to 17, but you'll still be able to use the latest JDKs (21, 25, etc.) for your own projects. #scala #jdk

15.11.2025 20:50 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

4๏ธโƒฃ JEP 395 (Records) opens the possibility of compiling Scala's case classes directly into records, making them first-class citizens when used from Java.

14.11.2025 06:26 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

3๏ธโƒฃ JEP 181 (Nest-Based Access Control) simplifies code for Scala's nested classes and companion objects. It lets them access each other's private members without the compiler generating public "bridge" methods, which is the current workaround.

14.11.2025 06:26 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

2๏ธโƒฃ JEP 441 (Pattern Matching for switch) adds new bytecode for pattern matching. These new JVM-level instructions can be potentially used in Scala's own match expressions, making them even more efficient.

14.11.2025 06:26 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

1๏ธโƒฃ JEP 409 (Sealed Classes) standardizes sealed hierarchies, a feature Scala pioneered. This allows the Scala compiler to emit native sealed bytecode, enabling safer consumption from Java (via exhaustive switch checks) and letting Scala natively match Java's/Kotlin's sealed types.

14.11.2025 06:26 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Let's look at four possibilities that JDK 17 adoption could unlock for the upcoming #Scala versions. ๐Ÿงต

14.11.2025 06:26 โ€” ๐Ÿ‘ 1    ๐Ÿ” 1    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 1

With #Scala 3.8 around the corner, let's recap its biggest changes:
1๏ธโƒฃ JDK 17 as a minimum version
2๏ธโƒฃ "Better fors" (SIP-62)
3๏ธโƒฃ Standard library built with Scala 3

13.11.2025 07:00 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

The biggest improvements in #Scala 3 are not enums or nicer implicits syntax, but:
๐Ÿค Making binary compatibility across versions possible (via TASTy)
โšก A built-in interactive compiler (instead of a batch tool)
๐Ÿ”— A modular architecture that makes new features easier to add

12.11.2025 12:37 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Release 3.7.4 ยท scala/scala3 ยท GitHub Highlights of the release Bump Scala CLI to v1.9.1 (was v1.9.0) #23962 Make coverage more similar to the one in Scala 2 #23722 Deprecations for removal Deprecate scala_legacy/MainGenericRunner/s...

๐ŸŽ‰ Scala 3.7.4 is officially out, bringing several fixes and backports. See the full changelog ๐Ÿ‘‡ #scala github.com/scala/scala3...

11.11.2025 15:28 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
LSUG Aug 2025 Zainab Ali - Taking the plunge: a deep dive into streaming with fs2
LSUG Aug 2025 Zainab Ali - Taking the plunge: a deep dive into streaming with fs2

Streams are a powerful tool for control flow, covering topics such as event handling, file processing, reading from the database... Learn more from Zainab Ali's talk at the London Scala User Group. #scala youtu.be/XMmzoJBtC_Q

07.11.2025 14:53 โ€” ๐Ÿ‘ 3    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I thought it's emacs ๐Ÿ˜€

06.11.2025 19:58 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Beyond the Commit, Episode 1: Michal Janouลกek
Beyond the Commit, Episode 1: Michal Janouลกek

Please share so my boss Michal is happy! ๐Ÿ˜‚ Or to spread the word about VirtusLab / SoftwareMill's new podcast! ๐Ÿ“ข Or to support local #Scala agencies! ๐Ÿ’ช www.youtube.com/watch?v=dcYZ...

05.11.2025 14:30 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
YouTube
Haoyi Li is a software engineer and a core contributor to the Scala ecosystem. He's built a whole suite of Scala libraries under the com.lihaoyi banner, focusing on simplicity and productivity, as well as the Mill build tool, which he has since expanded beyond Scala to support other JVM tools like Java and Kotlin and experimental support for other things like TypeScript and Android, and promises better performance and user friendliness than Gradle and Maven can ever match. He's also the author of the book Hands-on Scala Programming, which focuses on getting things done with Scala. My own course, Scala Projects, uses Haoyi's book examples as starting points for full-fledged, shippable projects that you can use for yourself or turn into products: https://rockthejvm.com/courses/scala-projects Timeline 0:00 Intro 1:08 Conference tour 8:20 Haoyi's work on Mill 13:55 What Mill does better than other tools 18:48 Picking a config language 21:53 Scala at scale at Databricks 29:20 How Scala can continue innovating 34:50 Increasing industry adoption of Scala 39:45 Misconceptions about Scala 42:39 Haoyi's experience switching between IC - tech lead - manager - IC 49:39 How Haoyi started programming and why Scala stood out 57:08 Scala differentiators for the future 1:01:05 How Haoyi maintains his OSS library ecosystem 1:06:43 Hands-On Scala Programming: writing, publishing, open-sourcing 1:14:40 Haoyi's current and future contributions to Scala 1:18:16 Discussion on AI agents 1:29:54 Parting thoughts YouTube

There are so many great thoughts, to pinpoint just a few:
1๏ธโƒฃ Tooling is nowhere near other languages
2๏ธโƒฃ Missing a true "Spring Boot-like" framework
3๏ธโƒฃ Official docs need real-world examples
4๏ธโƒฃ The persistent misconception that "you need async for performance"
#scala youtu.be/a-uME7QBlxg

05.11.2025 06:05 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

This is probably the most complete tutorial on typeclasses in Scala 3, it's basically a short book. Bookmark it, as it has everything: givens, derivation, mirrors, inline defs, macros... you name it. #scala kubuszok.com//2025/sanely...

04.11.2025 19:46 โ€” ๐Ÿ‘ 5    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Don't look down! Look at the data instead! You might get the same vertigo

After years, I came to the same conclusion: it's worth taking the time to use proper test data, even for attributes you don't currently use in your business logic. It'll save you so much time later. etorreborre.blog/dont-look-do...

04.11.2025 15:53 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Scala vs F# - Alexandru Nedelcu Which language leans more towards functional programming? In this binary choice, people have perceived F# to be that language, due to its ML roots, but I have a different perspectiveโ€ฆ

Scala vs. F#: Which is more functional? #scala #fsharp alexn.org/blog/2025/11...

04.11.2025 07:17 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Dev will really suck in a few years...
Dev will really suck in a few years...

The tech industry is creating its own talent crisis. By ditching junior devs for AI hype, companies are just burning out their seniors and killing the future talent pipeline. #ai www.youtube.com/watch?v=DcJ5...

03.11.2025 15:53 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Deep dive: how I added THIS feature to smithy4s (bincompat-friendly mode)
Deep dive: how I added THIS feature to smithy4s (bincompat-friendly mode)

Binary compatibility is a very important topic that every senior should understand. This video, even though it's about Smithy4s, explains concepts for evolving a library's schema in a binary-compatible way. #scala youtu.be/1HFV-tGZVlY

02.11.2025 10:40 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Video thumbnail

The most comprehensive collection of Scala learning material finally on YouTube. A freaking 283 videos! #scala www.youtube.com/@Ziverge/pla...

31.10.2025 15:40 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Release v0.23.33 ยท http4s/http4s ยท GitHub What's Changed http4s-core fix: proxy authorization header instantiation with basic credentials by @tpetillot in #7742 Introduce MultipartReceiver for custom, fail-fast multipart decoding by @dyle...

Respect to Dylan Halperin for his massive contribution to @http4s! ๐Ÿš€ His new MultipartReceiver is in the latest version after over a year of review, adding safer, fail-fast file uploads with size limits and no buffering. #scala github.com/http4s/http4...

31.10.2025 07:29 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Benchmarking Postgres 17 vs 18 โ€” PlanetScale Postgres 18 brings a significant improvement to read performance via async I/O and I/O worker threads. Here we compare its performance to Postgres 17.

I was really looking forward to io_uring in Postgres 18, but it turns out it's not the winning I/O strategy. Worker, the new default, seems to be the best all-around method so far, performing well on all storage types. #postgres planetscale.com/blog/benchma...

30.10.2025 19:42 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
JEP Explained. JEP 471: Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal
YouTube video by IntelliJ IDEA, a JetBrains IDE JEP Explained. JEP 471: Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal

Java is removing sun.misc.Unsafe, an API which is widely used but was never supported or meant to be public. This is one of the reasons for the adoption of JDK 17 in the upcoming version of Scala, which relies on Unsafe for its lazy val implementation. #java #scala youtu.be/jCbqkMKegmY

29.10.2025 19:43 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

๐Ÿ’ก Quick tip: Stop parsing Array[String], use @main and get type-safe command-line args directly as function parameters. #scala

28.10.2025 19:17 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
Scala 3 / Match Types - Alexandru Nedelcu Scala has a neat new feature, resembling TypeScriptโ€™s โ€œconditional typesโ€, but more powerful.

Match types, an awesome feature which I haven't properly used yet ๐Ÿ˜€ #scala alexn.org/blog/2025/10...

28.10.2025 07:39 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@matejcerny is following 19 prominent accounts