Adam Warski

Good morning!

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.

Chief R&D Officer

@ SoftwareMill

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

8 May 2024

Kafka queues: now and in the future

Compare consumer groups, share groups and the KMQ pattern.

kafka
mqperf
kmq
messaging
24 Apr 2024

Safe direct-style Scala: Ox 0.1.0 released

After several months of experimentation and multiple iterations on structured concurrency scopes and error handling, the Ox project's 0.1.0 release is now live! Read on to learn about the new features.

ox
virtual threads
functional programming
scala
concurrency
12 Mar 2024

Handling errors in direct-style Scala

Explore different ways in which we might represent errors and then examine, how such representations are supported in ox.

ox
virtual threads
structured concurrency
concurrency
All articles

Latest videos

24 Apr 2024

Direct style Scala stack: an experiment

scala
concurrency
14 Mar 2024

W kierunku blokujÄ…cych strumieni

java
streaming
13 Mar 2024

Unwrapping IO: is it a path that you want to follow?

scala
functional programming
concurrency
All videos

Get in touch