Northeast Scala Symposium 2019
Accepted Talks

Long Talks (45 minutes)

Stewart Stewart: Solving a Rubik's Cube with Group Theory in Scala
Audience Level: All

Have you solved a Rubik’s Cube Yet?

In five minutes, I’ll teach everything you need to know to solve it. Really! Then, with the easy stuff out of the way, we’ll dive into the math behind the solution, teach it to a computer, and demonstrate the result with a live solve on a Bluetooth Rubik’s Cube.

Jon Pretty: Fire and Fury
Audience Level: All
Fury is an exciting new build tool and dependency manager for Scala with bold aspirations to revolutionize the way we define and distribute source builds. You will learn Fury’s radical—but simple—model, see its fast and beautiful UI, and start to believe how Fury can be the future of building Scala!
Martin Snyder A Websocket-based Chat Server in http4s
Audience Level: All

An impromptu walk through of the source code for http4s-chatserver . http4s-chatserver is an example project for http4s that demonstrates how to combine multiple WebSockets, functional streams, and application state to build a compact, but non-trivial application.

Medium Talks (30 minutes)

Max Epelbaum: Building a Resilient, Typesafe, and Modelled ETL Framework in Scala
Audience Level: Intermediate
Come see how we’ve made use of Scala to build an ETL framework that preserves many of the benefits of off-the-shelf platforms while solving many of the problems - it is resilient, typesafe, testable, modelled, abstracted over source and destination, and it’s easy to build in new jobs!
Jeferson David Ossa: Exploring the Scala Tooling Ecosystem
Audience Level: All

Scala’s tooling experience has improved and now there’s an increasing number of tools to choose from. We can feel the hype but might not be fully aware of tools that exists, alternatives, trade offs or even recent efforts such as LSP initiative. This talk’s goal is to create such tooling awareness.

Adam Rosien: Free Boolean Algebras: Boolean Logic for Free!
Audience Level: All

You may have heard of Free Monads, but there are other “Free” structures. Another useful type are Free Boolean Algebras, which give us Boolean logic for a set of primitives “for free”. We’ll derive the Free Boolean Algebra and show how you can use it in your programs.

Michael Pilquist: FS3: Evolving a Streaming Platform
Audience Level: Advanced

FS3 is the code name for the next major version of FS2. In this talk, we’ll look at how pull based streaming may be implemented in FS3 and how various API decisions guide the design process. As a result, I hope a few will be inspired to help make FS3 reality.

Lightning Talks (15 minutes)

Petr Zapletal Adopting GraalVM
Audience Level: All
After years of development, Oracle published GraalVM and sparkled a lot of interest. GraalVM is a high-performance polyglot VM with a number of interesting traits we can take advantage of. I’d like to discuss the advantages and disadvantages of adopting GraalVM also share our story in this area.
Dmitry Lakhvich: Apache Spark Structured Streaming: The Easy Path to Data Lake
Audience Level: Beginner
This speech shows you how to organize simple Data Lake with Apache Spark structured streaming if you need to do it fast and flexible. This solution will be near-production ready, and your data science team will be happy because they can start checking their hypotheses and share feedback with you.
Oli Makhasoeva: Build a micro-services API in 15 minutes
Audience Level: All
This talk introduces Mu, a new FP library for building micro-services APIs. Mu offers code annotations for defining RPC or REST APIs, message types, and serialization formats, thus removing the dependency on protocol-specific declarations and enabling seamless changes between different implementations.
Mark Canlas: Type class survival guide
Audience Level: Intermediate

Monad, Monoid, Functor, Semigroup. What’s the difference!? Become a type class master with these handy visual aids! Learn their powers and the relationships between them. Gotta catch ‘em all!