Sign in

Adam Warski

@warski.org
738 followers 32 following 546 posts

Sharing elegant solutions to everyday problems | R&D @ VirtusLab, SoftwareMill | #AI #Scala #FP #Java | Blogger | #OSS developer

PostsRepliesMedia
Adam Warski @warski.org · 01/10/2026
It's going to be an October with #Scala! Where are we heading with AI software development? What's the role of programming languages? How much can we express & verify through types - and can LLMs help with that? Scala has some interesting propositions addressing these problems!
130
Adam Warski @warski.org · 29/09/2026
The first-ever-in-Poland Malayan Tapir was born in the Płock ZOO. He's called Visdom (as in visdom.virtuslab.com), and you can discuss both AI-native SDLC & Scala self-documenting HTTP APIs with him. VirtusLab is a proud sponsor! Pay a visit if you're in the neighbourhood:)
031
Adam Warski @warski.org · 26/09/2026
What might be a better way to interface with TypeSafe AI's #Jev than through a type-safe API? And what language might be better suited for the task than #Scala? That's why sttp-ai now has a fully type-safe Jev integration module: github.com/softwaremill... Enjoy :)
041
Adam Warski @warski.org · 23/09/2026
Some improvements to Tulip-generated PR explanations: * the test/docs sections are folded by default * the side menu covers subsections and is foldable * the explanations are encouraged to use more types of diagrams - module dependencies, data flow, class hierarchy - not only sequence diagrams
110
Adam Warski @warski.org · 10/09/2026
Wading through heaps of code changes in a PR to find the meaningful bits? There's a better way than reading the raw diff. Tulip is a command-line utility that explains PRs top-down using prose, diagrams and code; starting with an overview, ending with details. github.com/VirtusLab/tu...
010
Adam Warski @warski.org · 02/09/2026
Great talk at @javazone.bsky.social by @christingorman.bsky.social on the value of minimalism ("negative space") - in software, but also in life. And it's not only about elegance - which is a trait of many minimalist designs - but predominantly of utility & function.
150
Adam Warski @warski.org · 28/07/2026
Orca - deterministic, AI-driven development flows - now comes with a shell! Run one of the built-in flows for a deterministic plan-implement-review loop, or create your own flow - by hand or prompting your favourite agent harness.
110
Adam Warski @warski.org · 16/07/2026
Orca update: flow scripts are now language-agnostic. Orca will now auto-detect the commands needed to format, lint (compile) and test a project on first use, using a cheap LLM model. These are the written to `.orca/settings.properties`, where you can adjust as needed.
100
Adam Warski @warski.org · 16/07/2026
Can cleaning up technical debt be automated? Just as we're automating coding? Yes, at least partially - and the more of your codebase is AI-generated, the more frequently it should be done.
110
Adam Warski @warski.org · 12/07/2026
Lots of change in Orca: deterministic, AI-driven development flows! The flows are now restartable - so when there's a mid-flow interruption, e.g. due to an intermittent error, the flow can be continued from the last checkpoint.
130
Adam Warski @warski.org · 06/07/2026
(As a side note: code reviews have always been close to my heart; one of our first (failed) startups was CodeBrag - a per-commit code-review tool. Some of the ideas were implemented on GitHub later, so, as always, we've been ahead of our time! ;) )
010
Adam Warski @warski.org · 10/06/2026
An echo from @rustikon.dev: what are you using #Rust for? Tooling / CLIs win with a wide margin, followed by web apps, backend network services & embedded solutions. Evangelism is also strong ;) Does this match your experience? Where do you see most demand for Rust?
010
Adam Warski @warski.org · 31/05/2026
Meet Orca: Deterministic, AI-driven development flows. Orca Flow scripts orchestrate coding agents. No need to try to convince the LLM that reviewing code until all review comments are fixed is a good idea - the script will ensure that's the way it will be done.
140
Adam Warski @warski.org · 08/05/2026
How LLMs work:
052
Adam Warski @warski.org · 05/05/2026
Getting ready for @geecon.bsky.social ! See you in a week :)
010
Adam Warski @warski.org · 23/04/2026
Software engineer interview question for 2026: what tool did you vibe-code to improve your workflow?
000
Adam Warski @warski.org · 21/04/2026
What's your dream #Scala feature? @scalar-conf.com attendees have some ideas - some #Rust inspiration (cargo, serde but for #Scala), some language features, some tooling.
100
Adam Warski @warski.org · 14/04/2026
Two conferences, same question: how do you write code? Fully manually, everything is AI-generated, or somewhere in-between? #Rust people seem more orderly, but also quite AI-sceptic. #Scala people on the other hand - a bit chaotic, but embracing the change.
120
Adam Warski @warski.org · 07/04/2026
ElasticMQ - an in-memory @awscloud.bsky.social #SQS implementation for testing - just got a new UI! Thanks to Michał Ossowski for his continued stewardship of the project and new development :)
100
Adam Warski @warski.org · 31/03/2026
Just got my copy of DDIA by @martin.kleppmann.com, 2nd edition - one of the best books if your interests lie anywhere near distributed systems. Proud to see @softwaremill.com among the acknowledgments! Even if our contribution was only financial, it's great to be able to support such works.
072
Adam Warski @warski.org · 25/03/2026
Another approach to consumer-agents-at-scale. Instead of sandboxing, verify that the agent stays within limits. LLM generates code on the fly, a compiler verifies it. That's the approach described in the recent "Tracking Capabilities for Safer Agents" paper by Martin Odersky et al
100
Adam Warski @warski.org · 24/03/2026
We're steadily getting waves of registration on Shelly - our educational programming language for drawing. (I can only guess that each "wave" is a student group doing assignments.)
120
Adam Warski @warski.org · 20/03/2026
I'm definitely having a déjà vu ... where did I see this kind of slide before? ;)
110
Adam Warski @warski.org · 18/03/2026
I had been coding from 1995 until 2025 - not every day, but more days than not. Good times! From 2026, I've been generating code instead, with just a handful of LOC written manually. Is this the new normal? Just an intermediate step? A witness of the kind of code I write?
140
Adam Warski @warski.org · 24/02/2026
On the left: Kruskal's minimum spanning tree algorithm as presented in CLR's "Introduction to Algorithms". On the right: an implementation of the same algorithm, here in C++. Quite terse, but still much richer in technical detail, and the core idea is not that visible.
110
Adam Warski @warski.org · 18/02/2026
Prompt-to-install: yes or no? (of course, especially since this is for a project which sets up sandboxing, such prompts should always be run in ask-permission-for-everything mode)
100
Adam Warski @warski.org · 11/02/2026
Are you into #Rust? Or hoping to get into the ecosystem? Then @rustikon.dev is for you :) A friendly community, meeting for the 2nd edition of the conference. And we've got a great agenda!
110
Adam Warski @warski.org · 03/02/2026
Once again, I'm happy to report that @softwaremill.com received the #GreatPlaceToWork Poland award. Congratulations - and thank you - to the team :)
250
Adam Warski @warski.org · 22/01/2026
While reading the "Build a LLM from scratch" book, I get to appreciate how intricate and complex the architecture of an LLM is. The common narrative is that It’s "just" throwing a lot of compute power at a deep neural network - but as often in life, there's a lot more nuance.
110
Adam Warski @warski.org · 20/11/2025
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!
110
Adam Warski @warski.org · 14/10/2025
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!
0366
Adam Warski @warski.org · 13/10/2025
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!
010
Adam Warski @warski.org · 03/09/2025
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.
110
Adam Warski @warski.org · 22/08/2025
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 ;)
030
Adam Warski @warski.org · 20/08/2025
Take a tour of Ox 1.0.0! The video is coming soon, the slides are here: warski.org/blog/wp-cont...
032
Adam Warski @warski.org · 20/08/2025
Come and grab a Tapir (while they last - supplies running low ;) ) from the VirtusLab stand: THE company behind #Scala!
000
Adam Warski @warski.org · 23/07/2025
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.
132
Adam Warski @warski.org · 14/07/2025
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.
160
Adam Warski @warski.org · 25/06/2025
More MCP examples written using Chimp! 1. proxying to a service available via HTTP: github.com/softwaremill... 2. exposing multiple tools: github.com/softwaremill...
000
Adam Warski @warski.org · 23/06/2025
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.
100
Adam Warski @warski.org · 17/06/2025
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`
110
Adam Warski @warski.org · 13/06/2025
Thank you Devoxx & LambdaDays! It's been very intense three days, with great hallway/functional/Java/AI tracks :) Hope to see you next year!
120
Adam Warski @warski.org · 09/06/2025
Announcing Chimp: build type-safe, boilerplate-less #MCP servers in #Scala using the HTTP transport! Below is a self-contained, scala-cli runnable example:
1105
Adam Warski @warski.org · 02/06/2025
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.
110
Adam Warski @warski.org · 02/06/2025
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+.
130
Adam Warski @warski.org · 28/05/2025
Latest Tapir supports direct-style streaming bodies, including server-sent events. Cannot get much simpler ;)
120
Adam Warski @warski.org · 20/05/2025
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.
131
Adam Warski @warski.org · 12/05/2025
Binary search train
040
Adam Warski @warski.org · 28/04/2025
Tour of Jox: safe & developer-friendly structured concurrency - building upon the upcoming Java JEPs
120
Adam Warski @warski.org · 24/04/2025
Tour of Jox: finite & infinite #Java streaming using flows, with reactive streams compatibility, (blocking) I/O integration, and a high-level, “functional” API.
161