Adam Warski's Avatar

Adam Warski

@warski.org

Sharing elegant solutions to everyday problems | R&D @ SoftwareMill | #Scala / functional programmer #FP | Blogger | #OSS developer

701
Followers
30
Following
401
Posts
03.06.2023
Joined
Posts Following

Latest posts by Adam Warski @warski.org

How LLMs Call Tools and Use the MCP Standard for Integration Learn how LLMs call tools and how MCP standardizes external tool use.

Second, you heard about MCP, but how does it work? Where are the tools invoked? Dive in: virtuslab.com/blog/ai/how-...

Third: deep dives the latest trending Github AI-related repositories, delivered every week on virtuslab.com/blog/ai

03.03.2026 15:17 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Agent Visualization - VirtusLab | Software Consulting & Engineering Real-time view of an AI agent's decision-making process and activities

If you're not yet fully immersed in agent-assisted programming, we've got some resources to get you up to speed!

First off, agent visualization: interact with a real LLM and see how and when are tools called virtuslab.com/agent-visual...

03.03.2026 15:17 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Rustikon Join the best Rust conference in Poland, Rustikon! Ready to learn about the latest trends in Rust programming and build lasting relationships?

We also have special student tickets for a fraction of the usual price.

More: www.rustikon.dev

02.03.2026 11:46 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Are we going to rewrite everything in #Rust? Is Rust the best language to generate code using AI?

These would be my bets for the hallway track of @rustikon.dev - 19-20 March in #Warsaw, Poland.

If you don't have your ticket yet - don't wait any longer :)

02.03.2026 11:46 πŸ‘ 0 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0
Preview
Scalar Conference 2026 Join the developers' favourite Scala conference in Central Europe. Dive into two days of immersive functional programming experiences with our fantastic community.

Only a month left until @scalarconf! The agenda's there, the afterparty is planned - now you just need to get a ticket :)

Affordable as always, in the center of #Warsaw, easily reachable by plane, train, bus, car (by bike and on foot as well ;) ).

www.scalar-conf.com #Scala

26.02.2026 14:40 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Scala's capture checking & Ox's concurrency scopes: more compile-time safety
Scala's capture checking & Ox's concurrency scopes: more compile-time safety YouTube video by SoftwareMill

#Scala's capture checking is useful not only when dealing with resources, but also when paired with other values that shouldn't leak syntactical scopes, such as Ox's concurrency scopes.

Here's a short breakdown of how this works:

youtube.com/shorts/ozoeD...

25.02.2026 10:38 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Release v1.13.9 Β· softwaremill/tapir What's Changed Skip runtime validation for derived enumeration validators (#5088) @adamw Update maven central badge (#5085) @xuwei-k Dependency updates Update jackson-module-scala to 2.21.1 (#50...

Latest Tapir (rapid development of self-documenting APIs) brings performance improvements when validating decoded request (e.g. JSON) bodies. Try it out!

github.com/softwaremill...

25.02.2026 07:45 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

LLMs could guard that the human-maintained sources stay in sync with the now "low-level", compiled, C++/Rust/Java/whatever implementation.

24.02.2026 17:30 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

With LLMs, can we now program using the abstraction level as presented in the book?

This new "source code" would be lower-level than a declarative specification ("I need to obtain a MST"), but higher-level than what we use currently, with liberal use of natural language.

24.02.2026 17:30 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image Post image

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.

24.02.2026 17:30 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Release v1.1.2-channels Β· softwaremill/jox What's Changed Implement non-blocking trySend and tryReceive methods (#262) @endrju19 fix: Skip release-drafter on pull_request events (#264) @endrju19

jox channels 1.1.2 (#Java virtual-thread based safe concurrency & streaming) introduce non-blocking trySend() and tryReceive() methods.

Thanks to Andrzej KobyliΕ„ski for working on this!

github.com/softwaremill...

24.02.2026 13:32 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Scala Survey 2026 Turn data collection into an experience with Typeform. Create beautiful online forms, surveys, quizzes, and so much more. Try it for FREE.

We're running the 2026 #Scala Survey!

Let us know how you are using Scala, #AI with Scala, and give hints to the Scala teams (both at VirtusLab and EPFL) on where the focus in driving Scala forward could be.

Thank you - your answers count :)

virtuslab.typeform.com/ScalaSurvey2...

24.02.2026 12:13 πŸ‘ 2 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
GitHub - VirtusLab/sandcat: A Docker & dev container setup for securely running AI agents in `--dangerous` mode. All container traffic is routed through a transparent mitmproxy, enforcing network acce... A Docker & dev container setup for securely running AI agents in `--dangerous` mode. All container traffic is routed through a transparent mitmproxy, enforcing network access rules and injectin...

After a couple of trial-and-errors, Sandcat finally works well for #Java & #Scala development, alongside IDEs such as Metals!

The first sandboxed autonomously-created PRs are already merged into our OSS projects

github.com/VirtusLab/sa...

23.02.2026 09:28 πŸ‘ 3 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
Reducing Time-to-Insight in Company Financial Data by 90% How SoftwareMill employees went from writing complex SQL queries to asking questions in plain English.

FinBot: exposing data to a wider audience using natural language queries. Project profitability, employee metrics, quarterly comparisons - some examples of queries that our internal users asked.

How does it work? Read the full overview by @kgrajek.bsky.social : softwaremill.com/reducing-tim...

20.02.2026 11:18 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Understanding Capture Checking in Scala | SoftwareMill 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...

How does it work? See the full (written) guide: softwaremill.com/understandin...

20.02.2026 11:10 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
What kind of problem Capture Checking in Scala solves?
What kind of problem Capture Checking in Scala solves? YouTube video by SoftwareMill

A 01:46 introduction to what kind of problems capture checking in #Scala solves. Pushing forward what type systems might do!

youtube.com/shorts/TJofT...

20.02.2026 11:10 πŸ‘ 3 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0
Book cover of "Designing Data-Intensive Applications, 2nd edition". It has a similar wild boar on the cover as the first edition, but it uses O'Reilly's new cover design, and the boar is now slightly colourised.

Book cover of "Designing Data-Intensive Applications, 2nd edition". It has a similar wild boar on the cover as the first edition, but it uses O'Reilly's new cover design, and the boar is now slightly colourised.

The second edition of Designing Data-Intensive Applications, by myself and @chris.blue, is finished and sent off to the printers! Ebooks should be available in the next week, and print books in 3–4 weeks. Sigh of relief. πŸ˜…

(BTW, this is a good opportunity to support your favourite local bookshop!)

18.02.2026 11:09 πŸ‘ 669 πŸ” 140 πŸ’¬ 27 πŸ“Œ 19
Post image

sttp-ai now supports #Scala Native!

You can use: OpenAI, Claude, Grok, Ollama, ...
With different flavours of Scala: direct, functional, Future-based
On various platforms: JVM & Native
(not all combinations are supported, though)

Enjoy :)

19.02.2026 16:09 πŸ‘ 4 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0
Preview
GitHub - VirtusLab/sandcat: A Docker & dev container setup for securely running AI agents in `--dangerous` mode. All container traffic is routed through a transparent mitmproxy, enforcing network acce... A Docker & dev container setup for securely running AI agents in `--dangerous` mode. All container traffic is routed through a transparent mitmproxy, enforcing network access rules and injectin...

This is from github.com/VirtusLab/sa...

18.02.2026 14:38 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

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)

18.02.2026 14:38 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Agent Visualization - VirtusLab | Software Consulting & Engineering Real-time view of an AI agent's decision-making process and activities

Based on your feedback (thanks!) we've updated our Agent Visualization!

What's new:
* better mobile view
* clearer labels - what's generated by the LLM vs. tool output
* improved prompt, so that it's easier to follow the reasoning

What do you think?

virtuslab.com/agent-visual...

18.02.2026 09:17 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Adopt Tapir Generate tapir project with just few clicks

adopt-tapir.softwaremill.com now uses the latest&greatest #Scala 3.8.1

Generate a one-file scala-cli project exposing a self-documenting HTTP API, or a full-fledged multi-module-ready sbt project with tests. All type-safe & LLM-friendly.

17.02.2026 17:05 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

* Claude Code-specific mounts so that your `~/CLAUDE.md` is there, along with agents & commands
* "public" envs next to "secret" envs which are substituted, plus git config on startup

16.02.2026 11:18 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
GitHub - softwaremill/sandcat: A security-oriented dev container setup for securely running AI agents in `--dangerous` mode. All container traffic is routed through a transparent mitmproxy, enforcing ... A security-oriented dev container setup for securely running AI agents in `--dangerous` mode. All container traffic is routed through a transparent mitmproxy, enforcing network access rules and inj...

An update of Sandcat: a dev container setup for securely running AI agents in `--dangerous` mode

* no forwarding of SSH/GPG agents into the container
* restricted VS Code settings to lockdown the environment

16.02.2026 11:18 πŸ‘ 5 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

We'll of course cover how to work with AI and on AI through Rust, but that's just the start - macros, async, web, concurrency,...: a great overview of how companies and people use Rust.

Tickets are just 350 euro, for 2-days w/ an after-party. Join us in #Warsaw, a great city to visit and live in :)

11.02.2026 14:16 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

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!

11.02.2026 14:16 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
GitHub - softwaremill/sandcat: A dev container setup that routes all container traffic through a transparent mitmproxy via WireGuard, enforcing network access rules and injecting secrets at the proxy ... A dev container setup that routes all container traffic through a transparent mitmproxy via WireGuard, enforcing network access rules and injecting secrets at the proxy level - softwaremill/sandcat

Sandcat routes all container traffic through a transparent mitmproxy in WireGuard mode (deployed as side-containers). Heavily inspired by matchlock & agent-sandbox.

github.com/softwaremill...

11.02.2026 11:40 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
GitHub - softwaremill/sandcat: A dev container setup that routes all container traffic through a transparent mitmproxy via WireGuard, enforcing network access rules and injecting secrets at the proxy ... A dev container setup that routes all container traffic through a transparent mitmproxy via WireGuard, enforcing network access rules and injecting secrets at the proxy level - softwaremill/sandcat

Continuing the quest to lock down #AI agents in a sandbox: here's Sandcat, a dev container setup that intercepts all container network traffic, filters it & injects secrets.

Your API key values never even exist in the container. But you retain the convenience of reviewing & browsing code in an IDE

11.02.2026 11:40 πŸ‘ 3 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0
Post image

Learn Kafka essentials from a Confluent Elite Partner πŸ’ͺ

There’s plenty of theory out there, but nothing beats production experience. We’ve seen exactly what works and what breaks in high-scale data streaming environments.

Download the ebook: softwaremill.com/ebooks/start...

09.02.2026 10:58 πŸ‘ 0 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
Scalar Conference 2026 Join the developers' favourite Scala conference in Central Europe. Dive into two days of immersive functional programming experiences with our fantastic community.

A two-day conference ticket is 350 euro. As a bonus, find out why everybody's saying #Warsaw and #Poland are such great places to lives :)

Tickets here: www.scalar-conf.com

09.02.2026 07:38 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0