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

19 Jul 2024

Programmer-friendly structured concurrency for Java

Jox integrates nicely with all the other Java features, starting with virtual threads, through trywith-resources and exceptions, and blocking I/O operations.

java
concurrency
virtual threads
structured concurrency
jox
3 Jun 2024

WebSocket chat using structured concurrency, Ox & Tapir

A quick introduction to implementing WebSocket chat using structured concurrency, Ox & Tapir.

scala
tapir
virtual threads
structured concurrency
27 May 2024

Lagom is approaching end of life: possible migration paths

Lagom is reaching end-of-life on July 1st, 2024. What should be the replacement? How to architect the migration path? What kind of options do we have?

scala
java
event sourcing
kafka
All articles

Latest videos

15 Jun 2024

Direct style Scala using Ox

scala
loom
concurrency
structural concurrency
effects
ox
5 Jun 2024

Tapir Tutorials - playlist

tapir
scala
tutorial
29 May 2024

Jox - Passing Control Information Through Channels

jox
java
virtual threads
concurrency
tutorial
All videos

Get in touch