What is Scala eXchange?
Scala eXchange London 2018 is the largest Scala conference in Europe, where over two days you can discover and learn about the latest developments in the Scala world and apply these to your current and future projects.
Meet those who are either new to or experienced with Scala and see just how their passion for functional programming continues to drive the language's growth and use in some of the most exciting companies in the world.
What's on this year?
This year we are lucky to welcome Scala's creator, Martin Odersky, who will deliver both a keynote to open the conference and sit down in a fireside chat with one of the original creators of Haskell, Simon Peyton Jones.
Make sure you don't miss Scala eXchange's other keynote speakers: mathematician and concert pianist Dr Eugenia Cheng; host of the Pursuit Podcast and co-founder of Trans*Code Jessica Rose; and Rob Norris, Typelevel expert and software engineer for the Gemini Observatory.
Our extensive programme of experts covers the latest developments in Scala development, with a focus on five areas of the scala language and community that have become major talking points in 2018: Apache Kafka and Spark, types, Cats, and Tagless Final.
Check out the full Scala eXchange London 2018 programme!
ScalaX London Party - Thursday 13th December

Did you enjoy the first day of Scala eXchange? It's party time now! Visit the Skills Matter booth during ScalaX for a Party Ticket (tickets are limited to 400 only - so grab one while they last!) to enjoy our Party at Codenode's {{SpaceBar}} and share your experience and impressions of ScalaX with other ScalaX attendees.
We will have our very own ScalaX double decker routemaster buses bringing you from the BDC (Business Design Centre, 52 Upper Street) to CodeNode. Buses will be ready outside the BDC once the conference ends on Thursday 13th December (straight after the last session at 6.30pm) to bring you to CodeNode!
If you prefer the good old London Underground, CodeNode is a five-minute walk from Moorgate Tube Station, which is just two stops from Angel (the closest station to the BDC, where Scala eXchange takes place), and it's served by the Northern Line.

You can come along from the conference or meet us at CodeNode for an evening of good music, games, food and drinks – a chance to share your ideas with each other in a relaxed and fun atmosphere. We look forward to having you with us! And if you need some help finding your way home/to your hotel once the party's over, please visit the Transport for London's website which contains full information on how to move around in London.
Code of Conduct
We are committed to providing a friendly, safe and welcoming environment for all. Learn more in our Code of Conduct.
Volunteer at Scala eXchange London
Get a free ticket to Scala eXchange London by volunteering and enjoy a firsthand look into the latest tools and approaches in Scala. Help us set up the conference spaces, introduce talks and speakers, field Q&A questions with mics, or support some of the workshops and hacks we've got in store.
Email us at conference-team@skillsmatter.com and we will put your name down as a volunteer for Scala eXchange London 2018!
ScalaX Day 3 - ScalaX2gether Community Day
Following Scala eXchange London, come down to the ScalaX2gether Community Day on Saturday 15th December at CodeNode for a hackathon-style day of workshops where you can share ideas and approaches for your Scala-based projects. Sessions and topics will be decided on the day, so you only need to bring yourself and your ideas!
Register →Sponsor Scala eXchange
Imagine the power of having your brand at the largest Scala conference in Europe.
Sponsor Scala eXchange →
Excited? Share it!
Day 1: Thursday 13th December
All rooms have been allocated thanks to your votes! Enjoy these amazing sessions :)
Track | Room 1 | Room 2 | Room 3 | Room 4 | ||||||||||||
08:15
Invalid Time
Invalid Time
|
Registration & Breakfast Refreshments |
|||||||||||||||
09:00
Invalid Time
Invalid Time
|
KEYNOTE
scala
scalax
About the speaker...Dave GurnellIn his spare time he enjoys making maps, playing with cats, and taking short trips in his space ship. |
|||||||||||||||
09:15
Invalid Time
Invalid Time
|
KEYNOTE
functional-programming
scala
scalax
About the speaker...Martin OderskyMore generally, Martin is interested in programming languages and methods, in particular how object-oriented and functional programming can be made to work seamlessly together. He believes is that the two paradigms are two sides of the same coin and should be unified as much as possible. He was named an ACM fellow for his achievements in this area. |
|||||||||||||||
10:15
Invalid Time
Invalid Time
|
Tea & Coffee Break |
|||||||||||||||
10:30
Invalid Time
Invalid Time
|
|
You will discover some basic type theory and concrete examples, in order to see how types can constrain the design space. More importantly, you will learn how to select the right type for the job. |
In this talk, you will discover Typelevel Ciris: a library for lightweight, extensible, and validated configuration loading in Scala. Ciris provides an easy, safe, and secure way to write configurations as code. You will learn how Ciris uses a functional approach to configuration validation, while also dealing with multiple environments and configuration sources, secrets, logging, and effects. In the end, you will have eliminated many common configuration errors and prevented errors from occurring as early as possible. |
There are a few (more or less opinionated) principles where SBT sit on. Just learning a few basics will enormously boost your productivity, demystify the dragons in your build.sbt and open new horizons to leverage on it. You will begin from the very basics and check SBT from a very different angle! |
||||||||||||
11:15
Invalid Time
Invalid Time
|
Tea & Coffee Break |
|||||||||||||||
11:30
Invalid Time
Invalid Time
|
Since the first introduction of Cats Effect, many things have changed and this has taken its design and performance to a whole new level. Join Gabriel to learn how to deal with side effects in a pure functional way while abstracting over the effect type to take composition to the next level. Starting with a review of the basic concepts, you will explore the most important features, such as synchronous and asynchronous computations, error handling, safe resource management, concurrency, parallelism and cancellation. In addition, Gabriel will demonstrate how these abstractions make complex problems trivial in their current production systems. |
|
Like FP:
Unlike FP:
The foundations of the library are monads and arrows:
|
At Elsevier, Adam and Anna have augmented their CF-based research article recommender system with a ‘Learning to Rank’ (LTR) machine learning model that uses a rich array of article features to modify and re-rank recommendations. In addition, this model is constantly adapting to real user feedback, so that recommendation quality improves over time with no manual intervention. In this talk, we will explore the implementation of the CF algorithm and adaptive LTR model in Apache Spark to produce demonstrably higher quality recommendations to our users, and look at how Spark allows developers and data scientists to work together on a web-scale production system. |
||||||||||||
12:15
Invalid Time
Invalid Time
|
Tea & Coffee Break |
|||||||||||||||
12:30
Invalid Time
Invalid Time
|
In this talk, you will learn the core features like the joining and leaving of member nodes and the failure detector, explore different ways to bootstrap a cluster, discover how to monitor and keep a cluster healthy, and more. |
Recursion schemes is a code pattern that allows you to automate the process of traversing and recursing through nested data structures by separating recursion out of the rest of the logic. They allow you to use off-the-shelf libraries to do the recursion for you, so you can write less code and potentially fewer bugs! In this talk, Tamer will share with you an example, a JSON data-structure, and provide a walk-through of a step-by-step transformation of the code to use a recursion schemes library. By attending you will understand the gist of Recursion Schemes and how to use it in your codebase. There are no prerequisites to attend the talk, Tamer will be explaining any advanced concepts as you go.
scala
functional-programming
codebase
scalax
About the speaker...Tamer AbdulRadiCheck Tamer's posts at abdulradi.com. |
In this talk, we will strip back these terms to the fundamentals. By understanding what they solve and how they solve it you will be able to make a much more informed choice over which rules to apply to your software and when it is OK to break them. By the end of this talk, you will have discovered best-practices in a more refined light, and leave writing better code than before.
scala
reactive
scalax
functional-programming
About the speaker...Rory GravesFollow Rory on twitter. |
Luis has worked at different companies where developers had different levels of expertise. A few of them lived and breathed pure functional programming, but most of them were just starting to use Scala and its ecosystem. In this talk, Luis will share his views and experience when working with teams where most of the members are new to Scala. What can you do to help them learn and write something that is not just a 'better Java'? What are the pain points? What can you do to mitigate them? |
||||||||||||
13:15
Invalid Time
Invalid Time
|
Lunch |
|||||||||||||||
14:30
Invalid Time
Invalid Time
|
KEYNOTE
|
|||||||||||||||
15:30
Invalid Time
Invalid Time
|
Tea & Coffee Break |
|||||||||||||||
15:45
Invalid Time
Invalid Time
|
|
|
|
In this talk, Renato will share with you the architectural principles promoted by the Lagom Framework. Through interactive demos you will learn how Lagom can help you build an event sourced application and distribute it over different nodes in a cluster. You will learn about Lagom’s Persistence API and its underlying technology, namely Akka Persistence and Akka Cluster Sharding. How it favours Event-First Application Design and how its design principles lays the foundation for Reactive Microservice Architecture.
scala
cqrs
event-sourcing
akka-cluster
play
microservices
lagom
About the speaker...Renato CavalcantiCheck out BeScala |
||||||||||||
16:30
Invalid Time
Invalid Time
|
Tea & Coffee Break |
|||||||||||||||
16:45
Invalid Time
Invalid Time
|
You will then learn how to calculate derivatives using a family of algorithms known as Automatic Differentiation and how to encapsulate these algorithms in a familiar monadic interface. From this, you will be able to build a toy deep learning system in Scala. Finally, we will look at the future of deep learning frameworks and the rise of 'differentiable programming'. |
During this talk, you will get a sense of how to use the comonad in this way (along with other functional tools) by processing and decoding a familiar real-world signal, the old-school analogue composite video, as we build a homemade TV capture card. Starting with a minimal stream-like structure, we will define a comonad on it, recycle common functional concepts into a signal processing toolkit, and build up until we see an actual colour TV picture. You will also learn how this endeavour lends itself well, at least in theory, to a functional treatment, and perhaps get some motivation to find more uses for the comonad and other techniques employed. |
In this talk, you will discover how implicit conversions and parameters work in Scala. We will explore resolution rules and their precedence and once you have a good understanding of that, you will learn about design patterns – where they can come in handy as well as scenarios where they should definitely be avoided. At the end of this session, you will have a better idea about the power and the responsibility that comes with the 'i-word'. Key takeaways:
|
In this talk, you will learn about attempts to step into the world of typed actors. What was the impact, what was learned, what is still missing and what was the end result? The talk is aimed at those who are interested in Akka development, have not made the move to typed actors yet but may be wondering what they are missing. |
||||||||||||
17:30
Invalid Time
Invalid Time
|
Tea & Coffee Break |
|||||||||||||||
17:45
Invalid Time
Invalid Time
|
In this lightning talk you will see how the Bridges library is built and the benefits of using it in your project. |
|
scala
jvm
vm
scalax
graalvm
About the speaker...Petr ZapletalPetr participates in the whole software delivery life-cycle: from requirement analysis & design through to maintaining systems in production. During his career, Petr has worked for various companies, from start-ups to large international corporations. Technically, Petr is SMACK (Spark, Mesos, Akka, Cassandra, Kafka) evangelist. Petr enjoys working with Akka and has deep knowledge of toolkit’s features like Akka Clustering, Distributed Data or Akka Persistence. Petr is also certified Spark Developer. Follow Petr on @petr_zapletal. |
|||||||||||||
18:00
Invalid Time
Invalid Time
|
scala
scalax
ml
rust
idris
haskell
About the speaker...Chris BirchallFollow Chris on Twitter and check out the ScalaCache library. |
Based on a protobuf service definition, akka-grpc can generate:
This will also be a teaser for a hands-on session he plans to run at the ScalaX2gether on Saturday 15th December at CodeNode. |
|
|||||||||||||
18:15
Invalid Time
Invalid Time
|
|
|
|
|||||||||||||
18:30
Invalid Time
Invalid Time
|
End of #ScalaX Day 1 - Party buses will be ready at BDC forecourt at the end of the last session to ferry all those with party tix to CodeNode! |
|||||||||||||||
19:00
Invalid Time
Invalid Time
|
#ScalaX Party at CodeNode (10 South Place, London EC2M 7EB) with Drinks, Nibbles, Music & Games! |
Day 2: Friday 14th December
All rooms have been allocated thanks to your votes! Enjoy these amazing sessions :)
Track | Room 1 | Room 2 | Room 3 | Room 4 | ||||||||||||
08:15
Invalid Time
Invalid Time
|
Registration & Breakfast Refreshments |
|||||||||||||||
09:15
Invalid Time
Invalid Time
|
Scala eXchange 2018 Opening - Welcome to Day 2! |
|||||||||||||||
09:30
Invalid Time
Invalid Time
|
KEYNOTE
In this talk Jessica will explain occupational burnout, how to detect it and then look at possible routes back to a level of health and wellness that allows you to get back to building what you love.
functional-programming
scalax
scala
burnout
About the speaker...Jessica RoseShe's helping FutureLearn reach learners around the world as a technical manager. She's founded the Open Code meetup series, co-founded Trans*Code and runs the Pursuit Podcast. |
|||||||||||||||
10:30
Invalid Time
Invalid Time
|
Tea & Coffee Break |
|||||||||||||||
10:45
Invalid Time
Invalid Time
|
In this talk, we will tour the different libraries/frameworks for writing multi-threaded applications in Scala. There is no silver bullet, but you will discover the different approaches and when to use them. |
Part of this decision came from an influence from the community and the abundance of resources for this technical landscape. Why did the tide shift? Was it curiosity, maintainability, performance, or all of the above? Join in this talk to learn from her team's experience, looking at the pros and cons and most importantly the "BUT, WHY?"
fs2streams
http4s
fp
oop
scala
cats
functional-composition
functional-programming
About the speaker...Sofia Vaughan-JonesShe is a co-founder of an emerging technology podcast called BreakpointRadio and the non-profit goodtechconf.org which promotes diversity and ethics in technology for social enterprises. She enjoys co-organising the London Scala User Group meetups, writing Scala based blog posts and reading all the book she can in her spare time. Follow Sofia on twitter. |
Formal verification has been gaining the attention and resources of both the academic and the industrial world since it prevents critical software bugs that cost money, energy, time, and even lives. Yet, software development and formal verification are decoupled, requiring verification experts to prove properties of a template – instead of the actual – implementation ported into verification specific languages. Niki's goal is to bridge formal verification and software development for the programming language Haskell. Haskell is a unique programming language in that it is a general purpose, a functional language used for industrial development, but simultaneously it stands at the leading edge of research and teaching welcoming new, experimental, yet useful features. In this talk, Niki is presenting Liquid Haskell, a refinement type checker in which formal specifications are expressed as a combination of Haskell’s types and expressions and are automatically checked against real Haskell code. This natural integration of specifications in the language, combined with automatic checking, established Liquid Haskell as a usable verifier, enthusiastically accepted by both industrial and academic Haskell users. Recently, Niki turned Liquid Haskell into a theorem prover, in which arbitrary theorems about Haskell functions would be proved within the language. As a consequence, Liquid Haskell can be used to prove theorems about Haskell functions by all Haskell programmers.
scala
scalax
haskell
functional-programming
About the speaker...Niki VazouNiki dreams of bringing formal verification into everyday programming and she pursues her dream at IMDEA. Haskell is her favorite programming language because she finds programming with functions the natural way to go and also she never figured out how to prevent null pointer, runtime exceptions. She started her computer science education in NTUA, Athens, Greece. She earned her Ph.D. at UC San Diego where she and her team developed Liquid Haskell that extends Haskell types with logic with a goal to catch more exceptions before runtime. Since then, she has been pushing to turn Liquid Haskell into a theorem prover, so that all Haskellers can prove random theorems about their programs within Haskell! After UCSD, she spent some time as a postdoctoral fellow at University of Maryland. Niki's research interests include refinement types, automated program verification, and type systems and her goal is to make theorem proving a useful part of mainstream programming. Liquid Haskell is an SMT-based, refinement type checker for Haskell programs that has been used for various applications ranging from fully automatic light verification of Haskell code, e.g., bound checking, to sophisticated theorem proving, e.g., non-interference. |
|
||||||||||||
11:30
Invalid Time
Invalid Time
|
Tea & Coffee Break |
|||||||||||||||
11:45
Invalid Time
Invalid Time
|
Next you'll implement some of these concepts in Scala, starting from scratch and working step by step towards an implementation of 'Q-learning' – a popular RL technique for learning policies. You'll structure your code using type classes to separate the generic Q-learning framework from the specifics of any particular problem we want to model. You will also learn how to train an agent using your Q-learning implementation, and finally Chris will demonstrate the result of the training: the computer successfully playing a simple game.
scala
temporal-difference-learning
reinforcement-learning
scalax
About the speaker...Chris BirchallFollow Chris on Twitter and check out the ScalaCache library. |
|
In this session, we'll explore how to build interpreters using comonads, combine them with higher-kinded products, and enjoy the full power of a la carte interpreters. |
|||||||||||||
12:30
Invalid Time
Invalid Time
|
Lunch |
|||||||||||||||
14:00
Invalid Time
Invalid Time
|
KEYNOTE
scala
functional-programming
haskell
scalax
About the speakers...Simon Peyton JonesSimon Peyton Jones, MA, MBCS, CEng, graduated from Trinity College Cambridge in 1980. Simon was a key contributor to the design of the now-standard functional language Haskell, and is the lead designer of the widely-used Glasgow Haskell Compiler (GHC). He has written two textbooks about the implementation of functional languages. After two years in industry, he spent seven years as a lecturer at University College London, and nine years as a professor at Glasgow University before moving to Microsoft Research (Cambridge) in 1998. His main research interest is in functional programming languages, their implementation, and their application. He has led a succession of research projects focused around the design and implementation of production-quality functional-language systems for both uniprocessors and parallel machines. More generally, he is interested in language design, rich type systems, software component architectures, compiler technology, code generation, runtime systems, virtual machines, and garbage collection. He is particularly motivated by direct use of principled theory to practical language design and implementation -- that's one reason he loves functional programming so much. Martin OderskyMore generally, Martin is interested in programming languages and methods, in particular how object-oriented and functional programming can be made to work seamlessly together. He believes is that the two paradigms are two sides of the same coin and should be unified as much as possible. He was named an ACM fellow for his achievements in this area. |
|||||||||||||||
14:45
Invalid Time
Invalid Time
|
Tea & Coffee Break |
|||||||||||||||
15:00
Invalid Time
Invalid Time
|
During this talk, you will learn how to create a web service using Akka HTTP and Cats' Free, IO, Writer and Reader monads. The aim is to clearly delimit pure and impure code such that the former can be unit tested and reasoned about whilst the latter can be minimized. The talk will have three parts. The first will show how to 'free' an Algebraic Data Type (ADT) that describes side effecting operations using the Free monad and an interpreter. The second part will introduce the IO monad and demonstrate how it lets you be both lazy and explicit when dealing with asynchronous operations. And in the final part, we will explore how to use the Reader and Writer monads to read configuration and write logs without sacrificing purity. |
|
In this talk, you will explore what a feed forward network is, and learn how to build and train one from scratch, trying best not to use any external machine learning or math libraries. And you will discover if it can perform on some benchmark datasets. After that, you will also learn some of the tools available in Scala community for this domain. A basic understanding of linear algebra is preferred. |
All of these have shortcomings. Hickey tries are magically indexable but the only other thing you can do to them is add things to the end. Finger trees are absurdly flexible but you can’t index them efficiently. And so the search goes on… And today, you’re going to learn about the ultimate list data structure: the RRB tree ('relaxed radix balanced tree'). It is an improved version of the tried-and-tested Hickey trie and has achieved the impossible: every basic operation is efficient - push and pop on either end, index lookup, split and join. RRB trees pull no punches. Watch as Bodil shares diagrams with brightly coloured boxes in an enthusiastic effort to explain why RRB trees are amazingly exciting. |
||||||||||||
15:45
Invalid Time
Invalid Time
|
Tea & Coffee Break |
|||||||||||||||
16:00
Invalid Time
Invalid Time
|
scalax
scala
functional-programming
About the speaker...Dave GurnellIn his spare time he enjoys making maps, playing with cats, and taking short trips in his space ship. |
In this talk, Petra will take a look at patterns and means to implement (Distributed) Tracing in services written in Scala. After introducing the basic concepts, Petra will share with you some code examples and implement tracing in a small system of yet uninstrumented services. You'll learn about available support for widely used libraries and cover best practices for writing your own instrumentation. |
As big data jobs move from the proof-of-concept phase into powering real production services, you will need to consider what will happen when everything eventually goes wrong (such as recommending inappropriate products or other decisions taken on bad data). During this talk, you will discover that you will eventually get aboard the failboat (especially with ~40% of respondents automatically deploying their Spark jobs results to production). It's important to automatically recognise when things have gone wrong, so you can stop deployment before you have to update our resumes. Figuring out when things have gone terribly wrong is trickier than it first appears, since you want to catch the errors before your users notice them (or failing that before CNN notices them). We will explore general techniques for validation, look at responses from people validating big data jobs in production environments, and libraries that can assist you in writing relative validation rules based on historical data. For folks working in streaming, you will learn about the unique challenges of attempting to validate in a real-time system, and what you can do besides keeping an up-to-date resume on file for when things go wrong. You will discover code examples in Apache Spark, as well as learn about similar concepts in Apache BEAM (a cross platform tool), but the techniques should be applicable across systems. Real-world examples (with company names removed) will be presented, as well as several creative-common licensed cat pictures and an adorable panda GIF.
scala
scalax
big-data
apache-beam
apache-spark
About the speaker...Holden KarauHolden is a transgender Canadian Open Source Engineer at Netflix with a focus on improving OSS data tooling. She is the co-author of Kubeflow for Machine Learning (2020), High Performance Spark (2017) and Learning Spark (2015). She is a committer and PMC on Apache Spark and committer on SystemML & Mahout projects. She was tricked into the world of big data while trying to improve search and recommendation systems and has long since forgotten her original goal. |
|
||||||||||||
16:45
Invalid Time
Invalid Time
|
Tea & Coffee Break |
|||||||||||||||
17:00
Invalid Time
Invalid Time
|
KEYNOTE
In this talk, you will start with a simple design problem and follow the types, think about composition, abstract away what's irrelevant, and arrive at a solution to many problems. With some luck you'll also gain a bit of intuition about how functional programmers think. |
|||||||||||||||
18:00
Invalid Time
Invalid Time
|
#ScalaX 2018 Wrap Up Presentation |
|||||||||||||||
18:15
Invalid Time
Invalid Time
|
End of #ScalaX 2018: See you at #ScalaX2gether and in 2019! |
-
Meetings With Remarkable Trees
Featuring Bodil Stokke
Everybody knows the classic cons list. Clojeurs brag about their bitmapped vector tries. Haskell weenies took it up a notch with their impossible finger trees. Rustaceans turned back the clock and gave us simple arrays again.
rrb functional-programming scalax scala -
Neural Network from Scratch in Scala
Featuring Joy Sun
Deep learning/neural network is the new buzzword. While there are many libraries that provide a complete model in one API call, building things from scratch is still the best way to learn all the details both in theory and in implementation.
deep-learning neural-network scala -
A Fistful of Functors
Featuring Itamar Ravid
Functors show up everywhere in our day-to-day programming. They're so common, we take them for granted – especially in typed functional programming. Besides being common, they're incredibly useful for code reuse. However, functors have some lesser known variants: profunctors, bifunctors,...
functional-programming functor category-theory cats scala -
Type-Driven Development in Practice: Cats and Akka HTTP
Featuring Matt Roberts
Type-driven development is a programming style where you write types first and use them to guide the definition of functions in your program. Scala is particularly well suited to it because of its powerful type system. Cats lets you take Scala and type-driven development even further by...
cats akka tdd types scala -
Validating Big Data Jobs - Stopping Failures before Production (w/ Spark, BEAM, & friends!)
Featuring Holden Karau
As big data jobs move from the proof-of-concept phase into powering real production services, you will need to consider what will happen when everything eventually goes wrong (such as recommending inappropriate products or other decisions taken on bad data).
apache-spark apache-beam big-data scalax scala -
Keynote: Conveying the Power of Abstraction
Featuring Dr Eugenia Cheng
Abstract mathematics is sometimes thought of being very far removed from real life, perhaps something that people think about with their head in the clouds as opposed to the sort of applied maths and science do when people are thinking about "reality". And yet, many of you who work in...
abstraction abstract-mathematics scala haskell functional-programming scalax -
2
Monad I Love You Now Get Out of My Type System
Featuring Gjeta Gjyshinca and James Belsey
Functional programming has features such as presumed immutability and a declarative nature. With the rise of multicore machines and the growth in multi-threaded programming, it's natural for functional programming to increase in prominence. However non-functional programming languages and...
functional-programming scalax scala -
Connecting the Dots With (Distributed) Tracing
Featuring Petra Bierleutgeb
In microservice-oriented, asynchronous and often event-driven systems, looking at traditional log files only gives a glimpse of the whole story. In such systems, and even within a single service, tracing and correlated logs are important tools to maintain the ability to comprehend logical flows...
scalax scala microservices distributed-systems event-driven tracing -
2
Introduction to Kafka Streaming
Featuring Lindsey Dew and Omnia Ibrahim
The last few years we've witnessed the rise of data-driven projects, with Apache Kafka leading the charge for streaming big volumes of data.
In this session Omnia and Lindsey will introduce you to Kafka Streams. They will be sharing with you Scala code examples, demonstrations of use-cases...
bigdata streaming kafka scala -
Factor Recursion Out of Your Codebase
Featuring Tamer AbdulRadi
Recursion is hard! But luckily you can 'get it right' once and reuse it in other projects.
scalax codebase functional-programming scala -
Back to Basics aka 'When to Break Rules'
Featuring Rory Graves
Best practices always comes as snippets of advice. Nowadays you are told to be 'functional', 'immutable', 'pure', and 'reactive'. To really understand these buzzwords you need to go back to basics.
functional-programming scalax reactive scala -
Cobind and Chill
Featuring Danielle Ashley
Recently the comonad has been getting several mentions, although real-world applications are less common than for the monad. One example often cited is to use comonads to do signal processing. But what does it mean in practice?
scalax signals low-level electronics functional scala -
Lightning Talk: N Features that Scala Should Steal From Other Languages
Featuring Chris Birchall
If you want Scala to evolve in a healthy manner, you should keep an eye on the state of the art in other modern languages. Let's re-use their good ideas and avoid reinventing wheels.
In this talk Chris will share with you some interesting features and ideas he's found in other languages,...
haskell idris rust ml scalax scala -
Concurrency and Asynchrony in Scala
Featuring Greg Dorrell
Scala supports a lot of different ways of programming. Just in the world of concurrency, you have many options: Scala Futures, Twitter Futures, Akka (both Actors and Streams), Monix, fs2, cats-effect, and the list goes on. How do they work? Which one should you use?
scalax monix fs2 akka cats-effect scala -
Embrace the Implicit
Featuring Anna Bladzich
Implicits are often regarded with suspicion by developers, with some teams going as far as banning them from their codebases.
implicits implicit-parameters implicit-conversions design-patterns scala -
2
Kotlin vs Scala
Featuring Urs Peter and Joost Heijkoop
You have almost 20 years of Scala experience and have experience with many other languages. Recently you have jumped onto Kotlin, because it looks very promising as Java competitor. Of course there is no one size fits all solution. Joost will show how the two languages compare and explain why and...
scalax kotlin scala -
Ciris: Functional Configurations
Featuring Viktor Lövgren
Configurations can be a time bomb waiting to explode. In fact, configuration errors have become a major cause of failures in large-scale systems. Many of these issues arise because configuration values are not validated upfront.
configurations functional-programming literal-types type-classes effects scala -
Lightning Talk: Britain’s Computing Education Problem Can Be Fixed
Featuring James Belsey
The new Computing Curriculum describes a genuinely useful and durable set of computing skills. Simon Peyton Jones and others have worked extremely hard to make this a reality for the UK. The new curriculum does a much better job than its predecessors in preparing students for a career in...
scalax computing-education computing-curriculum scala -
Lightning Talk: MTL in 15 minutes
Featuring Pere Villega
This year MTL (and cats-mtl) have come to the forefront. But, what is MTL? How does it work? And how can it help my codebase? In this lightning talk, you will get an introduction to MTL and an answer to all those questions, so you can start exploring this new technique.
mtl scalax cats-mtl scala -
Lightning Talk: Compile-time checked URI templates with uritemplate4s
Featuring James Collier
RFC 6570, colloquially known as the URI Template specification. A method to compactly describe a range of URIs through variable expansion. In this talk James will give a brief overview of the technologies utilised to build this library, fastparse (a parser combinator library) and contextual (to...
uri uritemplate4s scala -
Lightning Talk: Formally Verifying Complex Systems Using TLA+
Featuring Ruben Berenguel
Designing interactions across systems can be complex. Microservices, actors, threads: anything involving communication or sharing can lead to complex state machines that are then hard to test and reason about.
TLA+ is a formal specification language created by Leslie Lamport (Paxos, LaTeX, Turing...
scalax pluscal tla akka scala -
Lightning Talk: Meet Akka gRPC
Featuring Renato Cavalcanti
In this lightning talk, Renato will give a short demo on Akka gRPC and how it can be integrated with Akka Http, Play and Lagom. gRPC is a schema-first RPC framework, where your protocol is declared in a protobuf definition, and requests and responses will be streamed over an HTTP/2 connection.
scalax akka grpc scala -
Lightning Talk: Adopting GraalVM
Featuring Petr Zapletal
After many years of development, Oracle finally published GraalVM and sparkled a lot of interest in the community. GraalVM is a high-performance polyglot VM with a number of potentially interesting traits we can take advantage of like increased performance and lowered cost. It can also tackle...
graalvm scalax vm jvm scala -
Lightning Talk: Why the Web is a Monad
Featuring Luke Tebbs
Luke has devised a technique and library to allow a programmer to define a user-interaction as an abstract program which can then in turn be used to derive a CLI, GUI and Web user-interface simultaneously. This cuts down on development time considerably, future-proofs code against changes in...
scalax functional-programming cli gui scala -
Lightning Talk: Bridging the Gap Between Front End and Back End
Featuring Pere Villega
Bridges is a library by Dave Gurnell that generates front end code (currently Elm, Typescript, and Flow) from your case classes.
front-end shapeless elm typescript flow library scala -
Liquid Haskell: Theorem Proving for All
Featuring Niki Vazou
Formal verification has been gaining the attention and resources of both the academic and the industrial world since it prevents critical software bugs that cost money, energy, time, and even lives. Yet, software development and formal verification are decoupled, requiring verification experts to...
functional-programming haskell scalax scala -
Program Description Based Programming
Featuring Luc Duponcheel
During this talk, you will learn about the implementation and usage of a library, PDBP, written using the Dotty language, implementing FP, the language presented by John Backus during his Turing Award winning lecture.
functional-programming pointfree-programming programming-dsl program-description program-meaning scala -
What Can Lagom Do For You?
Featuring Renato Cavalcanti
Much has been said about building Microservices and the advantages of it, but how can you build truly scalable and distributed Microservices systems?
lagom microservices play akka-cluster event-sourcing cqrs scala -
Akka Cluster – Up and Running
Featuring Heiko Seeberger
Truly reactive systems must be distributed and Akka offers powerful tools like Cluster Sharding and Distributed Data, which make writing these an easy task. But when it comes to running an Akka Cluster in production it is necessary to understand its workings in detail.
akka akka-cluster distributed-data scala -
Principled SBT
Featuring Andrea Peruffo
Everyone has learned over the years to hate SBT enough. It's now time to talk a little more about why. Like any other library or tool you use in your daily work, SBT deserves some principled learning. Despite the fact most people try to keep the build working with some furious googling and...
sbt-tools scala -
Refactor All the Things!
Featuring Daniela Sfregola
Learning the syntax is just the first step towards mastering a new language. Idiomatic expressions and good practices must also be adopted to produce code that is readable and performant. Without guidance on its specific style, you can quickly develop habits that could cause your application to...
refactoring scalax functional-programming scala -
2
Adaptive Recommender Systems with Apache Spark
Featuring Anna Bladzich and Adam Davidson
Collaborative filtering (CF) is a powerful algorithm at the core of many recommender systems. However, it is inherently naïve of features that can further improve the quality of recommendations.
big-data apache-spark machine-learning recommender-systems scala -
Introduction to Functional Reactive Programming in Scala
Featuring Diego Alonso
Functional Reactive Programming is an approach to writing programs. FRP uses signals, which represent a mutable value time-line of a value, and signal transformations as its basic blocks. This talk explores the key concepts of FRP, and presents a basic implementation technique for Arrowised FRP....
scalax fs2 frp libraries scala -
Deep Learning: Programming with a Difference
Featuring Noel Welsh
What does deep learning and functional programming have in common? This talk dives into the basic ideas behind deep learning and deep learning frameworks like Tensorflow. You'll discover that deep learning fundamentally builds on composition, one of the central ideas in functional...
machine-learning deep-learning monads automatic-differentiation scala -
Onboarding Scala
Featuring Luis Angel Vicente Sanchez
Since starting to use Scala in late 2011, "Scala is a hard language" is a phrase Luis has heard very often. And yes, it probably is if you don't have the right support when you are learning it. As in any learning process, you need space to explore and learn new things; but with a...
scalax learning teams scala -
Typed Actors - Should I Start Using Them?
Featuring Willem Vermeer
Typed actors are finally here and, for all of you lovers of typesafe programming, just their name is enough to get you excited! But here you are, maintaining a large scala/akka codebase – should you immediately migrate all your actors to typed actors? What are the benefits and will your code look...
typesafe-programming akka scalax scala -
Into the New World
Featuring Sofia Vaughan-Jones
For the last 6 months, Sofia has been working in a team that has been moving from their comfort zone into a 'New World'. Previously, they kept the balance of using the object-orientated features in Scala paired with functional programming concepts where they could. They now use http4s,...
functional-programming functional-composition cats scala oop fp http4s fs2streams -
Functional Composition and the Kleisli
Featuring Alexander Worton
During this talk, we will explore functional composition from the ground up. Find out about the different ways functions can be composed to form larger pieces of software, using both the standard library and the Kleisli from functional libraries scalaz and cats, while looking at the advantages...
scalax kleisli functional-composition testing typelevel scala -
Keynote: Pushing Types and Gazing at the Stars
Featuring Rob Norris
The hardest thing about functional programming is learning how to think like a functional programmer. Simple questions can lead to very general answers, but it's not always obvious how to get from here to there.
scala functional-programming types -
2
Fireside chat: Martin Odersky & Simon Peyton Jones
Featuring Simon Peyton Jones and Martin Odersky
Fireside chat with Martin Odersky and Simon Peyton Jones hosted by Miles Sabin & Zainab Ali covering topics that matter across the two special communities. Includes Q&A for your burning questions too!
scalax haskell functional-programming scala -
Throw Away your Bash Scripts
Featuring Trond Bjerkestrand
Odersky's original idea behind 'scalable language' was that Scala should be an excellent language for writing small scripts, but allow these scripts to easily grow into bigger applications. However, the slow JVM startup time has often been a limiting factor for scripting in Scala....
scala-native functional-programming jvm scala -
Keynote: Burnout
Featuring Jessica Rose
Occupational burnout leaves sufferers unproductive and miserable, with symptoms that closely mirror depression and other serious ailments.
burnout scala scalax functional-programming -
Reinforcement Learning in Scala
Featuring Chris Birchall
Reinforcement learning (RL) is a powerful machine learning paradigm that has been successfully applied to a wide class of problems, from steering helicopters to predicting stock prices. During this talk you will find out what RL is all about and how to implement it in Scala. Chris will introduce...
scalax reinforcement-learning temporal-difference-learning scala -
Unfolding Programs With Interpreters
Featuring Regis Kuckaertz
Free and tagless algebras are now in the mainstream. They give you the power to reason about your programs in a purely functional fashion and compose DSLs willy-nilly. Something that doesn’t get talked about much in the Scala world is that the treatment you give DSLs can be applied to their...
functional-programming cofree-coalgebra free-algebra scalax scala -
Types vs Tests
Featuring Julien Truffaut
Tab vs spaces, vim vs emacs, types vs tests, our community is full of these conflicts. In this talk, you will explore the latter: what is the impact of types in our programs? Can types help write more efficient tests? If so, how?
testing types type-theory scala
-
ScalaX2gether Community Day 2018
One day in London
We're excited to announce ScalaX2gether, to be held on Saturday 15th December at Skills Matter's home, CodeNode. #ScalaX2gether is organised by Skills Matter and the Community. Together, we will host a day-long event with a few workshops and challenges.
fury functional-programming microservices hackathon hack scalax scala -
ScalaX2gether Community Day
One day in London
We're excited to announce the return of the Scala eXchange Community Day - ScalaX2gether, to be held on Saturday 16th December at Skills Matter's home, CodeNode. The #ScalaX2gether is organized by Skills Matter with the aim of hosting a community day with a few unconference sessions.
scala scalax hack community -
Scala eXchange 2017
Two days in London
Want to understand where Scala is going, what’s Lightbend’s vision for collaboration, competition and interoperability in Scala? How the Dotty project will help develop new technology for Scala tooling and concepts for future Scala language versions? Are you involved in a large Microservices or...
scala reactive functional-programming scala-ide microservices devops scala-test data scala-web -
ScalaXHack 2016
One day in London
We're excited to announce the return of the Scala Exchange Hack Day, to be held on Saturday 10th December at Skills Matter's home, CodeNode. The #ScalaXHack is organized by Skills Matter, with Underscore, Typelevel, and the Scala Centre. Together, we will host a daytime hackathon with a...
scala hack scalax scalaxhack hackathon unconference typelevel underscore functional-programming fp -
Scala eXchange 2016
Two days in London
Want to understand where Scala is going, what’s Lightbend’s vision for collaboration, competition and interoperability in Scala? How the Dotty project will help develop new technology for Scala tooling and concepts for future Scala language versions? Are you involved in a large Microservices or...
scala reactive-programming functional-programming akka play lift machine-learning deep-learning scalax -
ScalaXHack
One day in London
We're excited to announce the first ever Scala Exchange Hack Day, to be held on Saturday 12th December at CodeNode in partnership with Underscore and the London Scala User Group.
scala scalaxhack scalaxhack-day -
Scala eXchange Party
0.5 days in London
Scala eXchange 2015 continues at Skills Matter's new home CodeNode for the Scala eXchange Party! Starting at 6.30pm on 10th December 2015!
scala scala-x -
Scala eXchange 2015
Two days in London
Want to hear the latest happenings in the world in Scala? Interested in hearing how your peers are approaching similar software challenges? Then join us at Scala eXchange 2015, Europe's largest community conference on Scala.
scala reactive-programming functional-programming akka play lift -
Scala eXchange 2014
Two days in London
Join us at Europe's largest and most comprehensive annual Scala conference in London. The Scala eXchange brings together the world's top Scala experts with Europe's passionate community of Scala developers.
scala reactive-programming functional-programming akka play lift big-data -
Scala eXchange 2013
Two days in London
The Scala eXchange returns to Skills Matter for it's third year - share, learn and innovate with 350+ attendees, 60+ presentations, and the world's greatest Scala Rock Stars!
scala akka playframework spray scalatest scala-collections reactive-programming scala-macros scalax functional-programming -
Scala eXchange 2012
Two days in London
The Scala eXchange returns to Skills Matter for it's second year. The Scala eXchange comes in the wake of Scala Days in April - 350+ attendees, 60+ presentations, and the lovebus! -
For updates on our latest confirmed speakers and talks, follow us on Twitter @skillsmatter and #scalax
scala akka typesafe -
Scala eXchange 2011
Two days in London
Skills Matter is very pleased to announce our first-ever annual Scala eXchange, on June 15-16 2011 in London.
This 2-day conference provides both high level presentations and low level follow-up tutorials/design discussions afterwards -- making it one of the most exciting dates on the calendar of...
scala functional-programming