Sharing elegant solutions to everyday problems
I’m Adam Warski: programmer, OSS developer and the co-founder of SoftwareMill. Following the motto above, I enjoy both writing and speaking on various programming-related subjects, very often around the areas of distributed systems, architecture and functional programming.

Main interests
What my projects, articles & videos are usually about. But not only!
Functional programming
I started my FP adventure using Scheme and OCaml, but I'm now a happy user of Scala: an elegant, safe and practical language combining functional and object-oriented programming.
Event sourcing
Event sourcing gives us not only performance, but also makes sure important data doesn't disappear, and offers and interesting way of structuring code. It's usable both in the large, and in the small, which isn't so well known!
Developer experience
How to balance safety properties guaranteed at compile-time, with code readability and maintainability? Fundamental tradeoffs are not always obvious, and most popular approaches aren't always "the best".
Latest articles

4 Dec 2025
Understanding Capture Checking in Scala
Capture checking is an upcoming Scala feature that allows you to track which designated values (capabilities) are captured (i.e., stored as references) by arbitrary other values. This tracking happens at compile time and is currently an opt-in mechanism that can be enabled via an import.

17 Nov 2025
Deterministic Concurrent Testing Using Fray
Fray enables writing concurrent tests for the JVM, deterministically simulating various thread interleaving, and if needed, replaying runs that failed, using a standard Java debugger. Let's take a closer look at how Fray can be used and how it works.

25 Sep 2025
Critique of JEP 505: Structured Concurrency (Fifth Preview)
With the just released 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!
