Adam Warski
warski.org
Adam Warski
@warski.org
Sharing elegant solutions to everyday problems | R&D @ SoftwareMill | #Scala / functional programmer #FP | Blogger | #OSS developer
Everybody's talking about THAT piece of #Rust code. Would you have done it better? How to avoid .unwrap()? What's the root cause, is it the people, or is the type system too weak? What are we missing?

These are all great subjects for a @rustikon.dev session. The c4p ends soon!
November 20, 2025 at 11:48 AM
Congratulations to Martin Odersky for receiving the Programming Languages Achievement Award @icfp-conference.bsky.social - well deserved! :)

I can only confirm what it says on the citation, his work deeply impacted how I view programming.

Let's work towards making #Scala a continued success!
October 14, 2025 at 12:27 PM
If you're at #icfpsplash25, join the #Scala workshop which runs now - all of Monday - and Tuesday morning. Lots of interesting talks! I'll be speaking as well, hopefully adding something interesting to the lineup: How functional is direct-style? See you there!
October 13, 2025 at 3:10 AM
In Bootzooka - our direct-style #Scala service template - there's a single source of truth when it comes to HTTP endpoints: the code-first description in the backend.
September 3, 2025 at 8:31 AM
Post-@scaladays.org hike! Just an hour away from Lausanne :)

Speaking of Scala conferences… if anything inspired you at ScalaDays, maybe it would make a good talk for @scalar-conf.com? The c4p is closer than you think ;)
August 22, 2025 at 3:53 PM
Take a tour of Ox 1.0.0!

The video is coming soon, the slides are here: warski.org/blog/wp-cont...
August 20, 2025 at 12:23 PM
Come and grab a Tapir (while they last - supplies running low ;) ) from the VirtusLab stand: THE company behind #Scala!
August 20, 2025 at 11:47 AM
Doing some benchmarks for Ox, using the excellent Kyo benchmark arena, which already has the code for Kyo, cats and ZIO.

I've added Ox & Pekko to a couple of benchmarks - the results are varied. Ox holds well in streaming, in other areas the benchmarks often really test the JVM & virtual threads.
July 23, 2025 at 1:22 PM
Might seem like a tiny #Scala Metals features, but it really makes a difference: the status bar tells you that the code in the module you're currently in won't compile (hence - no new highlighting), because there are errors in an upstream module.
July 14, 2025 at 4:57 PM
More MCP examples written using Chimp!

1. proxying to a service available via HTTP: github.com/softwaremill...

2. exposing multiple tools: github.com/softwaremill...
June 25, 2025 at 12:06 PM
With the latest updates, Ox's blocking, synchronous streaming through `Flow`s is now fully integrated with sttp-client & Tapir.

This includes both streaming byte-bodies (as request & response), SSE (Server Sent Events) as well as handling WebSockets as streams of frames.
June 23, 2025 at 4:38 PM
Jox (#Java) & Ox (#Scala) - virtual thread-based safe concurrency & streaming - updates:

* `selectWithin` which guarantees that no elements are received from channels on timeout
* more `Flow` operators: `split` & `splitOn`
June 17, 2025 at 10:06 AM
Thank you Devoxx & LambdaDays! It's been very intense three days, with great hallway/functional/Java/AI tracks :) Hope to see you next year!
June 13, 2025 at 1:04 PM
Announcing Chimp: build type-safe, boilerplate-less #MCP servers in #Scala using the HTTP transport!

Below is a self-contained, scala-cli runnable example:
June 9, 2025 at 7:26 AM
Secondly, the `retry` API has been improved with more flexible schedules. They are composable & testable, which amounts to inspecting the list of intervals at which the operation might be triggered.
June 2, 2025 at 10:07 AM
What's new in Ox 0.6.0 (safe direct-style concurrency and resiliency for #Scala on the #JVM)?

Firstly, Ox no longer uses preview JVM features, specifically `StructuredTaskScope`s and `ScopedValue`s. Stabilization of these seems quite far off, and Ox now works with any JVM 21+.
June 2, 2025 at 10:07 AM
Latest Tapir supports direct-style streaming bodies, including server-sent events. Cannot get much simpler ;)
May 28, 2025 at 7:31 PM
Comparing Structured Concurrency approaches in #Java: JEP 505 (left) vs Jox (right).

Both implement the same logic: run `findUser` and `fetchOrder` in parallel, and combine their results. Any failure interrupts the other tasks, and when they terminate, propagates the exception.
May 20, 2025 at 3:28 PM
Binary search train
May 12, 2025 at 7:42 PM
Tour of Jox: safe & developer-friendly structured concurrency - building upon the upcoming Java JEPs
April 28, 2025 at 12:59 PM
Tour of Jox: finite & infinite #Java streaming using flows, with reactive streams compatibility, (blocking) I/O integration, and a high-level, “functional” API.
April 24, 2025 at 9:52 AM
Tour of Jox: Go-like (selectable), completable, performant channels for #Java
April 22, 2025 at 7:06 AM
If you're in #Tokyo on Tuesday (22 April), join me on @JJUG for a walk-through #Java's virtual threads, structured concurrency, and how to implement a reactive-streams like library, in the "spirit" of Java 21+.

Hope to see you there! :)
April 18, 2025 at 7:19 AM
Just found out (via @szimano.org ) that the @oreilly.bsky.social "Programming #Scala" book by @deanwampler.bsky.social has a Tapir on the cover (since 2009!)

Destiny! ;)
April 17, 2025 at 2:19 PM
sttp client v4 - the #Scala client you always wanted - released!

Simpler types, shorter names, fewer type parameters, clearer error messages, better IDE integration - these are the driving factors of the new stable release.
April 8, 2025 at 1:49 PM