Matej Cerny

Matej Cerny

@matejcerny.bsky.social

Scala & Functional Programming Engineer. Database/SQL Veteran.

206 followers148 following851 posts

Seeing so many security incidents last week made me want to help. I made a small start by adding basic vulnerability checks to #Scala Steward. It only shows what an update fixes for now - no cooldown or schedule settings yet. Feedback and reviews are very welcome! github.com/scala-stewar...

Long CI times are a common headache, and let's be honest, tweaking pipelines is tedious. ๐Ÿ˜ Almost every team has this task buried in their backlog. With AI agents, it's finally time to fix it. Bring this up at your next team meeting! alexitc.com/blog/2026-10...

alexitc.comFrom 27 minutes to 4: Cutting CI build time by 85%Sharing my experience to get a faster CI: caching, test parallelism, and path filtering took one project's GitHub Actions build from 27 minutes to 4

A very interesting project powered by kyo! โœจ tui4s is a terminal UI runner for #Scala 3. It uses kyo-ui to handle cell layouts, reactive signals, and keyboard events, and it can even share UI code between the terminal and the browser. ๐Ÿ‘‰ tui4s.yuri4n.dev

Scala rewritten in Rust before GTA 6 ๐Ÿคฏ Well, at least a scripting subset. Scivolo ports the #Scala 3 frontend to Rust to run scripts without a JVM or compile server. The goal is simple: make Scala scripts start as fast as Python while keeping static types. github.com/reactivecore...

github.comGitHub - reactivecore/scivolo: Scala Interpreter / AOT Compiler written in RustScala Interpreter / AOT Compiler written in Rust. Contribute to reactivecore/scivolo development by creating an account on GitHub.

Since our team is scattered across Europe, we took #Scala Days as an opportunity to finally meet each other. I'm so glad to have such sharp colleagues!

"Errors in production are expensive. Downtime costs real money." Gordon Cooke learned this the hard way. His team rewrote a #Scala service into #Java, hoping for lower costs, easier hiring, and faster time to market...

My favorite talk from #Scala Days 2026 was about baking refinement types right into the compiler. Unlike libraries like Iron or Refined, it adds a built-in solver that verifies logic and math across multiple variables at compile time with zero runtime cost.

Scala 3.10 is here ๐ŸŽ‰ โ€‹This release cleans up legacy syntax, stabilizes strict equality pattern matching, and brings several new previews and experimentals. โ€‹Here are the key highlights:

- `โ€‹with` type operator is now an error - โ€‹Java records pattern matching support โ€‹- `//> using dep` now works in the REPL - โ€‹Preview: referenceable package objects, relaxed lambdas, and unroll default args โ€‹- Experimental: inline traits and agentic spec strings

For anyone who sees me at Scala Days - people have often told me that I look cold and arrogant at first sight, but trust me, I am a nice guy! ๐Ÿ˜€ I am just quiet and introverted in person, unlike on social media ๐Ÿ™ˆ

Last day in Greece and I'm exhausted from the kids ๐Ÿ˜ฌ Really hoping for good coffee at Scala Days. I haven't checked the schedule yet - any talk recommendations?

There is something satisfying about internal cleanup and modernization. And that is the case with the newest release of #Scala CLI: now built on Scala 3 Next, ready for JDK 24+, and shipping with a smarter fix command plus a fresh docs site. github.com/VirtusLab/sc...

github.comRelease v1.18.0 ยท VirtusLab/scala-cliThis release is the biggest internal overhaul of Scala CLI in a while. Scala CLI itself is now built with Scala 3 Next, rather than the 3.3 LTS. At the time of this release that means Scala 3.9.0, ...

So the new optional/error type T?E was approved for initial implementation. There were times when other languages copied Scala, but recent direction feels like it is going the other way around. Instead of improving and unifying what we have, we introduce more and more fragmentation.

"All these claims about a โ€œdesign mistakeโ€, โ€œoverfitting to the Either typeโ€ and โ€œblindly copying Haskellโ€ are mere assertions without any attempt at justification other than that it โ€œfeels unnaturalโ€. It never felt unnatural to me, and why would it?" ๐Ÿ‘‡ contributors.scala-lang.org/t/pre-sip-a-...

contributors.scala-lang.orgPre-SIP: A New Type for Optionals and Error Handling (2)I just realized that thereโ€™s actually another problem with putting the success type left and the error type right. Left-bias for ? makes things work for type classes like Functor[F[_]] or Monad[F[_]] ...

http4s v0.23.38 is out and this is not routine maintenance! ๐Ÿšจ 11 security advisories landed at once. A few highlights on why you should care: ๐Ÿ’ฃ Trivial remote denial of service ๐Ÿ”€ Request smuggling on Ember ๐Ÿช Cookie leakage across origins ๐Ÿ“ˆ HTTP/2 memory exhaustion

Have you upgraded to #Scala 3.9 yet? You should - 3.10 already has three RC versions out. This is one of the features moving from experimental to preview. It's called "relaxed lambda syntax".

AI won't replace developers. It will overwhelm Product. Engineers won't lose jobs because AI writes the code, but because Product will fail to keep up with delivery speed.

sbt 2.1.0-M1 is out, but bumping to Scala 3.9 breaks plugin compatibility across minor releases. Any plugin compiled with sbt 2.1 won't run on 2.0 โš ๏ธ sbt 2.0 should have waited for the Scala 3.9 LTS baseline. Splitting the plugin ecosystem this early in the 2.x cycle is unfortunate. ๐Ÿ˜Ÿ

Compatibility issues aside, the engineering updates here are massive! The biggest three for me are: ๐Ÿ“ฆ Ivyless publishing - Apache Ivy is finally dropped! ๐Ÿงน Cache-aware clean task (no need for cleanFull anymore) โšก Big Zinc and disk cache performance optimizations

โ˜•๏ธ JEP 512: Run flexible main methods directly on JDK 25+ ๐Ÿ“ Pass individual resource files via '--resource' (no need for a whole directory anymore) ๐Ÿ“ฆ Package library JARs directly with '-d output.jar' ๐Ÿ›  '//> using exclude' now works inside '.sc' scripts github.com/VirtusLab/sc...

github.comRelease v1.17.0 ยท VirtusLab/scala-cliChanged defaults to Scala 3.9.0 LTS & lts tags now point at the 3.9 LTS series Scala 3.9.0 is both the new default Scala version and the first in line of the new Long Term Support series, so the lt...

http4s v0.23.37 is out! ๐Ÿšจ A critical security release patching several Ember HTTP/2 DoS vectors. It also brings support for RFC 10008 (the HTTP QUERY method) - a standard way to send read queries with a payload instead of abusing POST. github.com/http4s/http4...

github.comRelease v0.23.37 ยท http4s/http4sSecurity fixes GHSA-gq9p-f254-h286: Ember HTTP/2 buffers a frame's declared payload before checking SETTINGS_MAX_FRAME_SIZE GHSA-3q2f-8v8m-249p: Ember HTTP/2: CONTINUATION frame with END_HEADERS b...

I thought the whole point of the Scala 3 macro redesign was to get rid of Shapeless-style libraries. I'm no macro expert, but the more I read about it, the less I believe that goal was achieved. Anyway, a great read on a library that fixes some of Mirror's limitations. ๐Ÿ‘‡

halotukozak.comEfficient Derivation With No Macros: Extending Scala 3 Mirrors with M&DE - halotukozakScala 3 Mirrors give you a type's shape, but not its custom field names, default values, or annotations, and they refuse value classes outright. M&DE derives an enriched mirror that carries all of tha...

And here is the official summary of what the new LTS version means for library maintainers, what features landed since #Scala 3.3 and how to migrate cleanly! โ€‹https://www.scala-lang.org/news/3.9/