Adam Warski
@warski.org
670 followers 31 following 310 posts
Sharing elegant solutions to everyday problems | R&D @ SoftwareMill | #Scala / functional programmer #FP | Blogger | #OSS developer
Posts Media Videos Starter Packs
warski.org
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!
Reposted by Adam Warski
tomasz-dziurko.bsky.social
Do firmy, która jest całkowicie zdalna i nie planuje tego zmieniać, szukamy specjalistów od #Scala #DevOps #Rust #ProductDesign #UX #UI :)

#remote #work #Poland
softwaremill.com
Do you also appreciate autonomy, growth, and balance? Check out our open roles!

1⃣ Sr DevOps Engineer: softwaremill.com/join-us/seni...

2⃣ Senior Scala Dev: softwaremill.com/join-us/seni...

3⃣ Senior Rust Dev: softwaremill.com/join-us/seni...

4⃣ Sr Product Designer: softwaremill.com/join-us/seni...
Reposted by Adam Warski
scalaspace.bsky.social
This concludes our Ox feature tour - hope you've enjoyed it as much as we did!

If you feel a feature is missing, or if you have a suggestion for an integration, just create an issue, we'll be happy to assist:
github.com/softwaremil...
GitHub - softwaremill/ox: Safe direct-style streaming, concurrency and resiliency for Scala on the JVM
Safe direct-style streaming, concurrency and resiliency for Scala on the JVM - softwaremill/ox
github.com
Reposted by Adam Warski
scalaspace.bsky.social
Ox feature tour, day 19: because it's direct style, integration with OpenTelemetry (metrics+logging+tracing) "just works"! To propagate tracing context inside concurrency scopes, you only need a single switch at your top-level `OxApp`!
Reposted by Adam Warski
Reposted by Adam Warski
softwaremill.com
Although the AI companion is a significant, positive change in developers’ work, with great power comes great responsibility.

Check out the latest issue of This Month We AIed: virtuslab.com/blog/ai/ai-s... and discover what ​​experiment inspired Marcin to such reflections 🤔

#cursorAI #aiagents
Reposted by Adam Warski
softwaremill.com
In October, you will have another chance to meet our experts! Here's where 👇
🔹 The Scala Workshop: Adam Warski
🔹 The Hack Summit: Sebastian Rabiej
🔹 Kielce JUG meetup: Michał Zyga
🔹 JDD 2025: Rafał Maciak, Sebastian Rabiej, Michał Zyga
🔹 Toruń JUG meetup: Sebastian Rabiej
Reposted by Adam Warski
scalaspace.bsky.social
Ox feature tour, day 17: converting exceptions to `Either`s, and vice versa is trivial thanks to the inline `.catching[]` and `.orThrow` methods. A panic at one level, might become an expected error at another!
warski.org
We'll review every submission, there are no bad ideas, the only limiting factor is the number of slots at the conference.

The C4P proceeds in two phases: we'll review & accept the first batch of talks after 31st of October; the deadline for the second & final batch is the 24th of November.
warski.org
Are you a #Scala or #Rust engineer?

Time to turn the projects you've worked on, OSS software, case studies, tools you've discovered (including AI) into abstracts, and submit them to @scalar-conf.com and @rustikon.dev!
Reposted by Adam Warski
scalaspace.bsky.social
Ox feature tour, day 16: we propose error handling based on "panics" (exceptions) and "expected" errors, represented as Eithers. Working with the lattter is ergonomic thanks to Scala's boundary/break, and its Ox-provided specialization to Eithers using `either: and `.ok()`
warski.org
Implementing backend->frontend DB synchronization is a breeze with @electric-sql.com. What about the other direction? Electric documents a couple of ways to handle client-side writes, I'd add event-driven: buffering events on the frontend, event sourcing on the backend.
Reposted by Adam Warski
scalaspace.bsky.social
Ox feature tour, day 15: Flows provide integration with Kafka, allowing one to implement the common publish-then-commit pattern using an elegant high-level, functional API.
warski.org
Structured Concurrency is coming to #Java - we can now test the 5th preview of the API.

Orchestrating IO-bound tasks is already much easier and safer then before, but some problems remain. Details in the article: softwaremill.com/critique-of-...
Critique of JEP 505: Structured Concurrency (Fifth Preview) | SoftwareMill
With the justreleased Java 25, we have the opportunity to test the fifth preview of structured concurrency APIs. Turns out, creating such an API is not that easy a task!
softwaremill.com
Reposted by Adam Warski
scalaspace.bsky.social
Ox feature tour, day 14: declarative concurrency in flows - virtual threads are started (and terminated on error) safely, without ever needing to touch concurrency scopes! Signalling an error is as easy as throwing an exception.
warski.org
Jox: Virtual-thread based safe concurrency & streaming is now fully migrated to work with Java 25!

The `channels` module will work with any Java 21+, while `flows` (react-streams-compatible, blocking streaming) now requires Java 25.

github.com/softwaremill...
GitHub - softwaremill/jox: Virtual-thread based safe concurrency & streaming
Virtual-thread based safe concurrency & streaming. Contribute to softwaremill/jox development by creating an account on GitHub.
github.com
Reposted by Adam Warski
scalaspace.bsky.social
Ox feature tour, day 13: flows provide I/O integration, declarative concurrency, and reactive streams compatibility!
Reposted by Adam Warski
scalaspace.bsky.social
Ox feature tour, day 12: describe data streaming using operators you know and love from Akka Streams or FS2, using direct-style (no Futures or other wrappers!)