Skip to main content

VirtusLab's Articles

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
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
Artificial Intelligence|Dec 11, 2025

How To Write Rules for AI Coding Tools - A Practical Guide from Real Projects

This guide explains how developers can craft small, precise rules that make AI coding tools more reliable. It shows practical techniques for structuring, organizing, and enforcing rules to achieve consistent, production-grade output.

brain_made_with_binary
Artificial Intelligence|Dec 11, 2025

How to Test and Evaluate Agentic Systems for Reliability

Agentic systems require a new testing paradigm focused on evaluating trajectories, not just outcomes. This post details core test types, metrics, and tools.

Green Brain Tree
Artificial Intelligence|Aug 11, 2025

How MCP and LLM tool calls work

Explore how tool invocation works in LLMs like Claude and ChatGPT, blending prompt design with infrastructure. Understand the role of MCP in standardizing external tool integration for seamless AI-agent interactions.

How MCP and LLM tool calls work cover
Scala|Dec 17, 2024

Scala, Bazel, Akka, and monorepos: A technical perspective of monorepo migration

Companies, especially mid-sized and larger ones, face the challenge of structuring projects at scale. Arguably, almost every technology and paradigm can be used by a single developer to write a small piece of code, but obviously, this is not enough for any organization—engineering solutions must allow people from multiple disciplines to develop and maintain the application efficiently throughout the whole application lifecycle.

Scala_Bazel_Akka_and_monorepos:_a city made out of containers
Business insights|Mar 4, 2024

What is Green IT– Strategies and trends lined out

Read about how you can help reduce CO2 by creating sustainable IT solutions.

What_is_Green_IT_–_Strategies_and_trends_lined_out_image-min.jpg
Business insights|Sep 8, 2023

What is the future of Java in today’s enterprise?

What is the future of Java? Take a look at Java's strengths and the impact of Java 21 on modern enterprises.

What_is_the_future_of_Java_in_today’s_enterprise_image-min.jpg
Scala|Jun 28, 2023

How to mine Scala 3 compiler metadata using TASTy files

Learn how we leveraged Scala 3's decompiler to mine compiler metadata with TASTy files, streamlining data gathering in 150 code lines.

How_to_mine_Scala_3_compiler_metadata_using_TASTy_files_image-min.jpg
Scala|May 12, 2023

The Scala 3 compatibility story

No programming language can succeed long-term without strong stability guarantees. Scala 3 takes this seriously, giving you excellent backward output compatibility and ensuring your code will work in future versions without changes.

The Scala 3 compatibility story image