ZIO Inception. Journey through layers and intersection types.
02.07.2020 @ FunctionalWorld, Online
This is an entertaining story which starts with a very small PR to ZIO and end up in some really unexpected places. Along the way you’ll discover ZLayer, learn some library design lessons and cool typelevel tricks.
Aecor: Purely Functional Eventsourcing In Scala
25.01.2019 @ F.by conf, Minsk, Belarus
05.04.2019 @ Scalar, Warsaw, Poland
In this talk I give a quick overview of Aecor library
Leveraging Spire for complex time allocation logic
06.04.2018 @ Scalar conf, Warsaw, Poland
In this talk I show how intervals and interval sets from Typelevel Spire library can help with complex scheduling and time allocation tasks.
Scala.js In A Big Web Application
16.05.2017 @ Riga Dev Days, Riga, Latvia.
My first talk ever at a big IT conference was about my production experience with Scala.js. It nicely concluded a full year of extensive Scala.js frontend development, that my team was doing at Evolution Gaming starting from May 2016.
I tried to lay out various pros and cons of using Scala.js in a big browser SPA, based on that real experience. I also tried to go into details and provide examples for most of the points.
Video (48m, english):
Recursive implicit proofs with Shapeless HLists
18.08.2016 @ Riga Scala Meetup
Contents in brief
- Analogy between Scala implicit resolution and Mathematical proofs.
- Recursive implicit proofs (why “recursive” is important feature)
- HList basics
- Various implicit proofs for HLists with demos. Mathematical induction as a handy tecnique to writing HList proofs.
- Expanding HList proof to all product-like types with shapeless.Generic
Solid Type System vs Runtime Checks & Unit Tests
01.07.2015 @ QIWI Conf #2
A month ago I made a talk for my colleagues at our private developers meetup called QIWI Conf. It’s about how Scala type system can help you to release safer code.
Talk is mostly for Scala beginners, yet some patterns covered are very powerful and not offered by majority of other languages.
Contents in brief
- What are fail-fast options today?
- Why compile-time checking is the best choice?
- Patterns that can lift up your code to be checked at compile time
- Either and scalaz.\/
- Sealed ADT + pattern matching
- Phantom types
- Path dependent types