DEV Community

Konfy for Konfy

Posted on

Scala Love in the City tour

Alt Text

The Scala Love in the City conference — a combination of two awesome events, Scala Love Conference and Scala in the City — begins on February 13, 2021, and we hope you’ll be there with us!

This year our conference speakers include some of the most well-known names in the Scala world, including Bill Venners, Jon Pretty, Debasish Ghosh, a reunion of the Scalawags podcast crew, maintainers and users of popular Scala libraries, and of course our keynote speaker, Martin Odersky, the creator of the Scala language.

The conference begins on February 13th, from 9:00 AM to 11:00 PM Central European Time (12:00 AM (midnight) to 2:00 PM Pacific Standard Time in the U.S.). We are going to have two tracks: one for speakers based in Europe/Asia, and one for speakers based in America!

How to Register

Signify Technology and Konfy want to give back to the Scala community and the communities we live in, and therefore we’re not charging for this event. We only ask that any donations you are able to make would be greatly appreciated, and they will go to deserving charities who are helping us all during COVID-19, including NHS and Doctors Without Borders.

You can get your ticket at this EventBrite page.

For more information, the rest of this blog post provides an introduction to what our speakers will be talking about.

Opening Words

On February 13, 2021, at 9:00 AM Central European Time — midnight PST in the U.S. — Oli Makhasoeva and Ryan Adams will kick off the Scala Love in the City conference. Oli (@Oli_kitty) is the CEO of Konfy, a business that organizes online conferences and brings communities together. Ryan (@ryan_signify) is the founder of Signify Technologies, an award-winning Scala recruitment company.

Keynote

The keynote will be given by Martin Odersky, the creator of the Scala language. For anyone who doesn’t know him, Mr. Odersky received his Ph.D. under the supervision of Niklaus Wirth, the chief designer of programming languages like ALGOL, Pascal, Modula, and others. With his work on generics in Java 5, Mr. Odersky was known as “the father of the javac generics compiler.” He’s a professor at EPFL in Lausanne, Switzerland, and for many years his focus has been on the fusion of object-oriented and functional programming, work that led to the creation of Scala.

The presentations

This year’s presentations fall into these categories:

  • Tooling
  • Domain Design
  • Processing at Scale
  • Functional Programming
  • Testing
  • Types
  • Made with Scala 3
  • Platforms

The talks are briefly introduced in the sections below, where you’ll also find links for more details about each presentation.
We've also prepared a mind map that can be found here

Tooling

Here are the talks on Tooling:

  • In Truly Standalone Scala Scripts, Przemek Pokrywka introduces TSK — The Scripting Kit — as a possible solution for Scala scripting. Just write your Scala code, prepend it with a special preamble that invokes a curl script, and you’ll have a solution that works on multiple systems, and is editable with IDEs at the same time.

  • The CLI of coursiercs — provides a convenient way to install JVMs, Scala, and tools like sbt, Mill, and Ammonite. In Reproducible Environments for Scala Using Coursier, Alex Archambault demonstrates how it can be used on your local machine, in scripts, and with your CI.

  • In GitBucket: Open Source Self-Hosting Git Server by Scala, Naoki Takezo discusses the challenges of updating GitBucket, an open source, self-hosting git server, written in Scala, and with over 8,300 stars on Github.

Domain Modeling

Here are the talks on Domain Modeling:

  • In A Few Tips on Modeling Things in Scala, Mateusz Kubuszok shares some simple and easy-to-implement tips about creating domain models in Scala. Topics include DDD entities, persistence layers, and annotations required by JSON and other libraries.

  • In Algebraic Thinking for Evolution of Pure Functional Domain Models, Debasish Ghosh, author of Functional and Reactive Domain Modeling, takes a deep dive into the importance of algebraic thinking when designing pure functional domain models, showing how algebras are intuitive as well as compositional.

Processing at Scale

This category includes talks on Big Data, Distributed Systems, Kubernetes, Scalability, and Distributed Tracing:

  • In Upgrade Tooling with Spark: It’s Not Just for Language Versions, Holden Karau shows how to significantly reduce the pain of updates by using tools to semi-automatically upgrade your Scala (and Python) Spark environments.

  • In Greyhound: Powerful Pure Functional Kafka Library, Natan Silnitsky shows how Greyhound — an open source, Kafka client SDK wrapper that harnesses ZIO’s sophisticated async/concurrency features — is used by Wix developers in more than 1,500 event-driven microservices.

  • In Alice and the Lost Pod: Practical Guide to Kubernetes in Scala, Roksolana Diachuk continues her popular “Alice” presentations. This time, Alice needs to bring the pod back home using her knowledge of Scala. Will she be able to discover the link between Scala and Kubernetes to save her friend?

  • In Scaling Scala at Spotify, Filipe Regadas and Julien Tournay demonstrate how they use Scio — an open source Scala API for Apache Beam and Google Cloud Dataflow — to build data pipelines. Spotify runs thousands of unique Scio jobs, and they discuss scalability in terms of data processed, as well as the number of engineers on your platform.

  • In One Year with Akka 2.6, Sean Glover talks about a year’s experience with Akka 2.6 and its new type-safe APIs. The talk includes major developments in Akka, and recently open-sourced components that were previously only available to Lightbend customers, including the Split Brain Resolver for Akka Cluster.

  • In Distributed Application Tracing with Trace4Cats, Chris Jansen demonstrates Trace4Cats, which is both an application library for capturing traces, and a partial tracing system aimed at aggregating, sampling, and forwarding traces to monitoring systems.

Functional Programming

This year’s talks on Functional Programming are:

  • In Finite State Machines for Functional Software Machinery, Noel Welsh believes that FSMs are one of the simplest models of computation and should be more widely used, so he shows how their simplicity makes them easy to understand, and therefore easy to create and debug.

  • In HKD: Stems Cells for Data, Oleg Nizhnikov discusses some problems that require boilerplate, macro-converters, or loose typing. He then describes what Higher Kinded Data (HKD) is, and how it transforms into different data shapes.

  • In OOP Versus Type Classes in Scala, Alex Nedelcu discusses both OOP and ad-hoc polymorphism via type classes. He goes through the pros and cons of each approach, and establishes guidelines for which to pick, depending on the use case.

  • In An Introduction to Recursion Schemes, Nicolas Rinaudo aims to demonstrate that recursion schemes are far less scary and confusing than they need be. He starts from first principles, refactors his way to proper recursion schemes, explaining all the necessary concepts.

  • In Cats Effects 3, Daniel Spiewak, Principal Engineer at Disney Streaming Services and primary maintainer of Cats Effects, discusses what’s new in Cats Effects 3.

Testing

Our talks on Testing are:

  • In Property-Based Testing: Let Your Testing Library Work for You, Magda Stożek demonstrates property-based testing with ScalaTest and ScalaCheck, showing how to generate thousands of test cases with varying data to explore your code’s edge cases, and reduce found problems down to their root cause.

  • In Who Is Testing Your Tests?, Hugo van Rijswijk demonstrates mutation testing with Stryker4s, a mutation testing library for Scala. This form of testing injects small bugs into your code, and then the question becomes, are your tests good enough to spot the bugs?

  • In MUnit: Your New Favorite Scala Testing Library?, using live coding, Gabriele Petronella demonstrates MUnit, a testing library for Scala, highlighting MUnit’s most notable features so you can see what makes this little library unique in the testing world.

Types

Here are the talks on Scala 3 Types:

  • In A Visual Language for Types, Jon Pretty, creator of tools like Fury and Magnolia, provides a visual journey through the Scala 2 and 3 type systems. You’ll see the relationships between the types, and develop an understanding of operations, such as finding the least upper-bound of a pair of types.

  • In Understand the Type System of Scala 3, Bill Venners, ScalaTest creator and co-author of Programming in Scala, continues where he left off in the 2020 Scala Love conference, where he touched on Scala 3 union and intersection types. This talk covers the more advanced aspects of the type system in Scala 3.

Made with Scala 3

Here are the talks in the Scala 3 and IoT categories:

  • In Why Scala 3 Will Be Awesome, Piotr Gołębiewski gives you a taste of the Scala 3 future. He uses live coding to demonstrate how certain problems were solved using Scala 2, and how you can now solve them differently with Scala 3.

  • In Sweet Home Scala 3, Krzysztof Romanowski shows how he’s using Scala 3 on top of the Home Assistant running on Raspberry PI to make his apartment a little “smarter.” He shows how his smart home project works, demonstrating Scala 3 features that improve even a small project.

  • In A Tour of Contextual Abstractions in Scala 3, Dean Wampler, author of Programming Scala, demonstrates how implicits have been reworked in Scala 3 to make them more intuitive. He demonstrates new constructs like extension methods, given instances with using clauses, given imports, and more.

  • In Scala 3: Avoiding Macros with inline and derived, Josh Suereth demonstrates how Scala 3 provides a rich set of features that negate the need for most macros. He shows how to use inline methods, tuples, and derived code to create performant and flexible APIs.

  • In Typelevel’s Road to Scala 3, Lars Hupel outlines some of the history behind Scala 3, and the steps taken in the Typelevel ecosystem to get ready for Scala 3, and keep up with its development.

  • In DSLs with Scala 3, Jacob Odersky will share some experiences he and his team have had as early adopters of Dotty, as well as some lessons learned while introducing the DSL to complete newcomers of the language.

Platforms

Our “platform” talks are in the subcategories of the JVM, Scala Native, and Android:

  • Scala is changing, and the JVM is also constantly changing, so in Checking out JVM 12-16, Piotr Przybyl covers the major changes to the JVM and updates to the Java language to show how these changes impact your Scala life.

  • In A Deep Dive into Scala Native Internals, Wojciech Mazur — a Scala Center team member working on Scala Native — discusses what he has learned as the Scala and native ecosystem worlds come together, including how Scala Native is unique, background on its design decisions, its current status, and the 2021 roadmap.

  • In Scala on Android, Maciej Gorywoda — who has used Scala professionally for Android app development for four years — talks about how Scala should thrive on Android, but doesn’t. He demonstrates the hacks that are needed to run Scala on Android, and then focuses on recent developments that give hope for a brighter future.

Scala Panel Discussion: Scalawags

The conference also brings together a reunion of the full “Scalawags” crew, which ran a monthly podcast about the Scala language from 2012 to 2016. The reunion includes Josh Suereth, Dick Wall, Daniel Spiewak, Heather Miller, and Seth Tisue.

Party (Spatial Chat)

We're thrilled to continue our tradition of the Hallway Track, powered by Spatial Chat. It allows social interactions – your avatar can move closer to people you want to engage with or move aside if you want to quickly discuss something privately. 🗣️👂

Where to Go Next?

If you want to learn more about the conference, or you’re ready to register, see these links:

We hope to see you there!

A big thank you to our volunteer Alvin Alexander who contributed to this blog post <3

Top comments (0)