Scala Summit 2026

Scala Summit 2026 · Monday, October 19

Speakers

10 confirmed so far. Tap anyone for their talk, the abstract, and where to find them online — the programme grows as we lock in more.

Call for talks

Got a Scala talk in you?

The programme is still filling up, and we're taking proposals from the whole community — first-time speakers included. Pitch us a talk and we'll be in touch.

Submit a talk
Adam Warski

The talk

Where Scala meets AI

The AI revolution raises questions about the utility of various technologies, especially programming languages. And when it comes to developer experience, Scala might have just the right answers.

We’ll take a tour of how to use Scala efficiently for and with AI. We’ll start by augmenting existing Scala development workflows with AI, leveraging Metals MCP and Cellar.

Next, we’ll teach AIs to write better Scala and more functional code. A short Scala skill makes a whole lot of difference in the quality of the generated code. Here we’ll focus on the direct-style-Scala skill we’ve been developing, highlighting the main challenges that AI faced in our experiments.

We’ll finish by looking at applications: using Scala to orchestrate coding agents and to orchestrate arbitrary business workflows. These are two broad categories. First, we’ll take a hands-on look at Orca, which offers an API for setting up deterministic, AI-driven development flows.

For the second, we’ll see how sttp-ai and chimp work together to provide the necessary Scala tooling to use AI models in your applications: talking to OpenAI/Claude APIs, running an agentic loop, using structured inputs & outputs. One theme will be constant: leaning on type safety and Scala’s toolchain to deliver business value not only faster, but also with more reliability.

In each case, we’ll show where Scala is better suited than alternatives for the problem at hand — and where it loses to the competition. Our goal will be to answer the question: in the age of AI, where does Scala have the upper hand?

About Adam

I am the co-founder of SoftwareMill, head of R&D at VirtusLab, where I primarily generate code using Java, Scala, Rust and other interesting technologies. I am actively involved in open-source projects, such as Ox, Jox, Tapir, sttp, and others. I have also been a speaker at major conferences, including JavaOne, Devoxx, GeeCON and ScalaDays.

In addition to writing closed- and open-source software, I spend my free time exploring various programming-related subjects. Any ideas or insights I gain usually end up with a blog.

Open Adam Warski's full page
Bill Venners

Bill Venners

President, Artima · Lead developer of ScalaTest

The talk

What's New in ScalaTest 3.3

ScalaTest 3.3 is the biggest release since 3.0, and it completes a plan that started in 3.1, when FunSuite, FlatSpec and their siblings were deprecated and renamed AnyFunSuite, AnyFlatSpec. The Any prefix indicates that test bodies have type Any. One consequence is a test that forgets to assert still compiles, runs, and passes. In 3.3 the original names come back, with a test body type of Assertion. A test that ends in a Boolean expression in a FunSuite, for example, will not compile. The Any* styles stay — they are still useful in many ways — but now there’s a more typesafe alternative.

We paired the safer style traits add a new kind of assertion, an Expectation, which always returns a value rather than sometimes throwing an exception. Fact is that value, and it composes using the logical operators — such as &&, ||, or implies — so a sequence of statements whose results get discarded becomes one expression.

In addition, we’ve been developing a property-based testing framework for several years, and it will be released as part of 3.3. Shrinking is integrated rather than bolted on. A generator produces a lazy tree of progressively simpler candidates instead of a bare value, and every candidate is filtered through the generator’s own validity check, so a shrunken counterexample is always a value that generator could have produced in the first place. Edge cases are first-class as well: each generator carries a list of boundary values, and a property run works through those as well as generating random values, so the cases most likely to break your code are tried regularly rather than left to chance. Because Randomizer is immutable and seed-based, any failing run can be replayed exactly.

About Bill

Bill Venners is president of Artima, Inc. He is the lead developer of the ScalaTest and Scalactic open source libraries and coauthor of Programming in Scala, Fifth Edition and Advanced Programming in Scala, Fifth Edition.
Open Bill Venners's full page
Zach Michaelov

Zach Michaelov

Co-founder & CTO, Annex Risk

The talk

Functional Underwriting in Scala

As a provider of personal lines insurance, Annex Risk is responsible for maintaining a large set of underwriting rules across multiple product lines. Underwriting rules can be arbitrarily complex and often evolve over time. Many teams handle this with a rules engine or a DSL stored in a database. We went the other way: our rules are plain Scala.

This talk explores how we model underwriting rules as an interval map, where each range holds a function object implementing the rule in effect for a particular time window. Thin Scala-friendly constructors and builders reduce a new rule version to a few lines of code. Because it’s just Scala, we get type safety, the compiler, IDE support, and all our existing tooling for free, and source control gives us a complete audit history.

About Zach

Zach is the co-founder and CTO of Annex Risk. Prior to that, he was at Twitter where he discovered a passion for typed functional programming while working on everything from data pipelines to ML feature stores.
Open Zach Michaelov's full page
Win Wang

Win Wang

Founder, ParaQuery

The talk

GPUs for Type Inference and Typeclasses

Everyone knows about LLM inference on GPUs, but what about type inference on GPUs? After all, we love strong types, but hate compile times. Unfortunately, the more we try to prove about our programs, the more time we spend waiting for our builds.

Can we throw a GPU at it? Is type inference even that parallelizable? What about for type systems of real languages like Scala, or Rust, etc.?

One commonality of these languages is typeclass resolution. Whether it’s called implicit resolution or trait resolution, it’s a powerful pattern, but can induce particularly long compile times.

We’ve convinced ourselves that type inference is highly serial, but it doesn’t have to be. We’ll explore how we might scale such type systems to many cores, unlock data-parallelism, and accelerate type inference and resolution on GPUs.

About Win

I previously worked on distributed builds, parallel Scala compilation, and semantic tooling back at Twitter. Currently, I’m the founder of ParaQuery, a fully managed, GPU-accelerated SQL/Spark solution. I still want faster and smarter compilers.
Open Win Wang's full page
Alexandros Bantis

Alexandros Bantis

Software Engineer, AdRise

The talk

Taming the Agentic Beast

Working with AI can sometimes feel like a psychedelic time sink, but it doesn’t have to be that way. Scala is a great language to code with an agent if you can get it to talk to the compiler.

We’ll start by looking at the fundamentals: using the agent to minimize context switching, tooling, how to stay safe, and how to help it write in plain English.

Next, we’ll look at tooling to let agents run wild with Scala, with dangerous permission levels but in locked down containers so that you can go off and do other things while your agents are working away.

Finally, we’ll zoom out and consider strategies to help you stay productive and happy, working along side agents and product on mature production code.

About Alexandros

I’m a software engineer at AdRise. I build applications; lately forecasting is the app de jour, working along side some awesome ML and Data Engineers. I dabble in Python, Typescript, and Rust, but Scala is my first love. I’ve been spending a lot of time over the past year with agents; sometimes they drive me crazy, but I’m having a lot of fun.
Open Alexandros Bantis's full page
Aditya Naik

Aditya Naik

Software Engineer, SiFive

The talk

Chisel: The Next Generation

Chisel is a Scala-embedded DSL for describing hardware. Created by UC Berkeley researchers in the early 2010s, Chisel has undergone numerous iterations and is now used heavily by many modern hardware companies, including SiFive, where it forms the backbone of highly parameterized RISC-V CPU generators.

We have been undertaking a multiyear effort of migrating Chisel and our internal SiFive codebases to Scala 3. This talk will highlight the techniques, pitfalls and takeaways from our large migration from Scala 2 to 3. I’ll also touch upon the new features we’re excited about in Scala 3 and how we’re planning on incorporating them in Chisel.

About Aditya

I’m a software engineer at SiFive on the Platform Technologies team where I work on Chisel, LLVM CIRCT and other technologies that form the core platform for SiFive’s RISC-V hardware generators. I previously worked on the MicroPython language for memory-constrained embedded systems. I’m interested in the intersection of languages, hardware and programming paradigms – specifically how modern programming paradigms impact the implementation of new languages.
Open Aditya Naik's full page
Łukasz Biały

Łukasz Biały

Scala Developer Advocate, VirtusLab

The talk

Making the AI agents safe with Scala

Everyone and their dog are building permanent AI agents, but nobody is solving the real problem — how to prevent the agent from doing something it should never, ever do while preserving its general problem-solving capability. In this talk, we will introduce the CapybaraClaw — the agent built with safety in mind that gives you the peace of mind.

About Łukasz

Polyglot full-stack developer and functional programming enthusiast. Scala Developer Advocate @ VirtusLab. Values quality over quantity. Permanent learner with a severe information dependency problem. Enjoys conversations about philosophy and all things related to the mind’s inner workings. Loves mountains, biking, and hiking.
Open Łukasz Biały's full page
Roberto Leibman

Roberto Leibman

Software Engineer, Fox Corporation (Tubi/AdRise)

The talk

One Language, Every Layer: An Opinionated Scala 3 + ZIO Stack

We keep writing the same application three times: types for the database, types for the wire, types for the UI — in three languages, kept in sync by hope and integration tests. This talk presents a complete, opinionated Scala 3 stack where the model is defined exactly once and shared, compiled, from the database to the browser.

About Roberto

Roberto has decades of experience in Software Engineering in a variety of companies and industries. He has been passionate about Scala since 2012.
Open Roberto Leibman's full page
Vivek Ragunathan

The talk

Just Capturing Checking

Vivek is going to talk about Scala 3’s experimental feature: capture checking. He’ll show how resource leaks are flagged as compile-time errors, which the compiler identifies by tracking which capabilities each value retains. He’ll also cover the type system updates related to capture checking.

About Vivek

Vivek Ragunathan is an experienced Scala developer based in the Bay Area who has presented at Bay Area Scala events before. You can find out more about him and his great work on his blog, A Developer’s Experience.
Open Vivek Ragunathan's full page
Krzysztof Romanowski

Krzysztof Romanowski

Head of Development Productivity, VirtusLab

The talk

AI Multiplies — Let Scala Hold the Line

AI is a multiplier, not a fixer — point it at a mess, and it scales the mess up: defects climb, reviews balloon, tests become a farce. Scala’s honest compiler and typed libraries are a base that holds as you push harder. We’ll assemble the workflow around them with agents, context, deterministic refactors, hermetic builds and more.

A year ago, my argument was that productivity lives in the whole development lifecycle, not in how fast anyone types. AI hasn’t changed that — it made it unforgiving. The instinct is to treat an agent as a fixer, something you point at a problem to make it go away. It isn’t. It’s a multiplier, and a multiplier obeys whatever it’s standing on. Direct it at a shaky team process, and nothing gets repaired; the shakiness simply scales. More defects, longer review queues, green test suites that are quietly wrong — and reworks that grow faster than anyone wants to admit.

Which reframes the whole question. It’s not “how do we add AI?”, it’s “what is it multiplying?” For Scala teams, the honest answer is the language itself. Strongly typed libraries and a compiler that refuses to lie give you a foundation that gets firmer under pressure. This allows to discover failures at runtime — the kind of failures that only surface at runtime on production with other stacks. The types you already have are complex enough. What’s usually missing is a process built to lean on them.

So that’s what we’ll assemble, one component at a time, like building together a kit. Context Fabric, CI build for Machine Speeds, Tiered Review and testing strategies for the AI era. We will apply the same discipline we’ve been using in large monorepo teams — the Airbnb and Databricks tier — where we’re seeing output climb by roughly half in a matter of months, but in a way that can be split and rearranged to match your context. You won’t leave with a mandate to adopt all of it. You’ll leave with the kit, the cost of each piece, and a clear sense of what to reach for next on your own Scala projects — a way to raise productivity and quality at the same time, instead of trading one for the other.

About Krzysztof

Krzysztof is Head of Development Productivity @ VirtusLab, where he manages teams creating world-class developer’s tooling (mainly focused on LLMs, Bazel and IDEs), and maintaining core parts of the Scala ecosystem. As a developer, Krzysztof specialised in developer tooling for Scala, like Scala CLI.
Open Krzysztof Romanowski's full page