Skip to main content

VirtusLab's Articles

Scala|May 13, 2026

Our impressions from the Scala Survey 2026

Explore key insights from the Scala Survey 2026, including Scala 3 adoption rates, popular libraries, tooling preferences, and industry trends shaping the future of the Scala ecosystem.

Image Alt
Artificial Intelligence|May 12, 2026

We're Building on Quicksand, and Most Teams Don't Know It

Tomek Lelek and I wrote Vibe Engineering because we kept seeing the same mistake everywhere: teams confusing the speed of generation with the speed of delivery. Vibe coding, that intuition-first, prompt-driven mode where you accept what the AI gives you without deep verification, is genuinely valuable. It's the digital sketchpad. It's how you turn a foggy idea into a working interface in an afternoon. I use it. You probably should too.

book_cover_pen
Scala|Apr 30, 2026

Introduction to Scala 3's Capture Checking and Separation Checking

Languages like Rust mitigate these problems through ownership and lifetimes. But how do we bring these ideas into a GC-based language like Scala in a way that doesn't break existing programs? In other words, we want to track access rights (capabilities) to resources (objects in the object-capability model), while leaving memory management to the GC. Scala 3's answer is Capture Checking + Separation Checking.

gold_and_purple
Backend Engineering|Apr 29, 2026

Supply Chain Attacks: How They Work and How to Defend Your Codebase against Them

Software supply chain security is a problem which, if ignored, can easily cause anything ranging from a minor bug to a literal disaster. Should we be scared? What can we do to be safe? This article will do its best to answer these questions briefly, while still doing justice to how serious the danger is. As a bonus, I will also mention how a build tool called Bazel can help in the fight.

purple_waves
Artificial Intelligence|Apr 29, 2026

Visdom: AI Works Great. At Level Four.

AI adoption gaps stem from a missing common vocabulary. A maturity matrix with five levels and four perspectives helps organizations honestly assess where they truly stand.

Image Alt
Artificial Intelligence|Apr 21, 2026

Sandboxing LLM coding agents: part 2

This practical guide demonstrates how to implement sandboxed LLM coding agents using Agent Sandbox. Learn the complete setup process, from initialization and runtime configuration to managing network policies and handling authentication. Discover advanced patterns for Java projects, IDE integration, and security considerations for safe AI-assisted development workflows.

purple_brain
Artificial Intelligence|Apr 21, 2026

Visdom: Shadow AI Is Already in Your Codebase

This is post #4 in The Agent-Ready SDLC series. In post #1 we laid out the Ferrari-in-a-Fiat-500 problem - the engine is great, the chassis isn't. In post #2 we covered the first bottleneck: context. In post #3 we covered the second: feedback loops. Now we're at the third piece - and it's the one nobody wants to talk about.

blue_wave
Scala|Apr 17, 2026

Comparing effect systems in Scala: The Problem and Future

Concurrency in Scala has come a long way from the humble beginnings of scala.concurrent.Future. What started as a minimal abstraction over callbacks that allowed easy sequencing of operations, thanks to the monadic composition has since evolved into a rich ecosystem of effect systems, each trying to solve real-world problems around type and resource safety, composability, and performance.

Image Alt
Backend Engineering|Apr 17, 2026

Bootstrap Your Backend Server Using Ktor, Koin, and Exposed

After seven years in Java, I joined a Kotlin project and got curious about the native ecosystem. To learn it, I built a small Trading Accountability App — a tool that logs trades, enforces trading rules, and flags violations when discipline slips — from scratch using only Kotlin-native libraries, and this article walks you through doing the same.

Image Alt
Scala|Apr 16, 2026

Comparing effect systems in Scala: Cats Effect and ZIO

The Cats library and the related Cats Effect were inspired by scalaz and scalaz-concurrent libraries (and, more broadly, by Haskell and its ecosystem). They represent the most widely adopted effect system in the Scala ecosystem. In this context, effects are values representing descriptions of computations that can be composed using typeclass-based abstractions like Functor, Monad, or Sync, as provided by Cats and Cats Effect. This approach promotes the use of pure functions and referential transparency - the principle that any expression can be replaced by its evaluated result without changing the program's behavior.

Image Alt
Artificial Intelligence|Apr 15, 2026

Sandboxing LLM coding agents: part 1

LLM coding agents moved fast from cloud demos to tools running on developer workstations. They don't just suggest code anymore. They execute it. They start shells, install packages, edit repos, run tests, and sometimes open PRs. All with the same permissions you have. In the first part of the miniseries, Jakub Bocheński will look at Context, Motivation, and available sandboxing tools.

purple_waves
Scala|Apr 15, 2026

Comparing effect systems in Scala: Kyo, Gears, and Ox

Kyo is one of the younger kids on the block - at the time of writing of this blogpost it has only reached its first release candidate for version 1.0. It is the brainchild of Flavio Brasil, a tenured Scala open source author and contributor who, in the past, created Quill, an SQL library based on Scala’s metaprogramming facilities and contributed to Twitter’s Finagle stack. Kyo attempts to take the idea of fused effects introduced in the ZIO monad and generalise it to provide a complete algebraic effects runtime and solve the “monads do not compose” problem at the same time. In practice, Kyo is also a purely functional, monadic solution but it’s built for the future and uses a lot of new features of Scala 3 to aggressively avoid allocations and inline common operations.

Image Alt