Effective AI Programming in Scala
Session Abstract
Join the hands-on two-day workshop led by AI tooling and development experts from VirtusLab that cuts through the hype and the fear. Learn how to leverage tools like Cursor or Claude Code to the maximum of their potential and understand the AI-based tooling stack from top to bottom. The course is kept up to date with the current state of the art.
Session Description
Format: Hands-on workshop – small theory section to build knowledge and a lot of practice. Every concept is paired with an exercise on real Scala code. Bring a laptop with a working Scala toolchain (Coursier, scala-cli, JDK 21+, Metals) and an AI coding agent – we drive Claude Code as the primary tool, but the patterns transfer to Cursor, GitHub Copilot, Codex, and others. Attendees are welcome to use those instead.
Who it’s for: Scala developers (intermediate and up) who want to incorporate the AI coding agents in a reliable and predictable way into their workflows, including production code, and who don’t want to compromise on quality. No prior AI-tooling experience required. Skeptics especially welcome – a recurring theme is where these tools actively hurt. The workshop is focused on learning where the actual value of using AI is.
Why this workshop: In the modern world, there are two extremes: developers who don’t use agents at all and developers who let an agent run unsupervised and ship hallucinated APIs. The middle ground – productive and cost-effective use of AI tools – is still something that everyone is trying to find for themselves. VirtusLab is heavily leveraging AI as we have found that Scala’s strong type system is an unusually good safety net for AI-generated code, and the language’s tooling that we develop and maintain (Metals, Scalafix, Scala CLI, Cellar) integrates cleanly with the agentic loop. This workshop is about learning what works: using AI as a force multiplier for reading, navigating, and changing real codebases, with the verification habits that make it trustworthy.
Day 1: Foundations, tooling, greenfield
The goal is to get every attendee fluent enough to do real brownfield work on Day 2.
- Introduction. We start by doing a quick zip through the history of AI in software development, dispelling the common myths and cutting through the empty promises that constitute most of the hype.
- Warm up. Course-takers use an agent on small Scala tasks – scripts, domain-model boilerplate, a set of tests – and compare against what they’d have written. Discussion about the perceived properties of AI coding agents.
- Prompting and context engineering. This is the only theoretical segment in which we explain how AI models process prompts, how they gather information, what hallucinations really are, and how models behave in conversations of different lengths.
- MCP and Scala-aware tooling. What MCP is good for and, crucially, when a direct CLI beats an MCP server. Hands-on: wire up MCP servers that help AI with Scala development, compare with CLI variants of the tools. The objective here is for course-takers to obtain a good understanding of the trade-offs of different ways to expose tools to the models.
- A greenfield warm-up. Attendees will build a small but complete CLI utility end-to-end through a clean agentic flow that showcases how to structure the work with AI coding agents.
Day 2 – Real codebases: brownfield, migrations, orchestration
A sustained focus on real open-source Scala codebases.
- Onboarding to unfamiliar code with AI.
- Solving real issues – we work together on pre-selected issues at different levels of difficulty (a single-file fix, a multi-module change, and one that requires understanding a subsystem). Attendees work with the full Day 1 toolkit; trainers supervise, help when someone gets stuck, and run a mid-day show-and-tell.
- Large-scale Scala migrations – using AI to generate and verify Scalafix rules with an agent.
- Multi-agent orchestration. Exercises in this section are focused on building understanding of where this kind of approach is providing real value and where and in what conditions burn tokens unproductively.
- Build something useful, together. A group-driven closing capstone: the room picks one thing worth building, writes the prompts, manages the agent and its context themselves, and discusses the best way to proceed to get to the best outcome.
What attendees leave with:
- First-hand experience of where AI agents work best with Scala and where they fail.
- A personal agent setup (MCP and CLI tools, hooks, and scripts) that transfers straight to their day job.
- A repeatable workflow for onboarding to unfamiliar code, solving issues, and running migrations with AI as a verified collaborator rather than an unsupervised one.
- A good understanding of where the industry is heading and how software engineering work will change in the near future.
Prerequisites:
Working knowledge of Scala. A laptop with Coursier, scala-cli, JDK 21+, and Metals installed, plus an installed AI coding agent (Claude Code recommended). VirtusLab will provide licenses for some of the available tools, but it’s fine to use your own subscription. A short setup checklist will be sent before the workshop.
Trainers:
Łukasz Biały and Piotr Oramus (VirtusLab), authors and maintainers of the Effective AI Programming in Scala workshop.
