Northeast Scala Symposium 2020
Confirmed Talks

Streams: Your New Favorite Primitive
Audience Level: All
Time: 9:35 AM (45 minutes)
Speaker: Ryan Peters

Dive into generic streaming with FS2 and explore how FS2 - and streaming libraries in general - can often be the simplest way to solve many common issues. We’ll also examine fallacious definitions of “necessary/simple” in software and why learning new tech doesn’t have to make code more complicated.

Comonads and the Game of Life
Audience Level: Intermediate
Time: 10:25 AM (30 minutes)
Speaker: Rebecca Mark

Have you heard of Conway’s Game of Life? How about comonads?

Let’s put these two things in conversation and implement the Game of Life in Scala!

What's Old is New Again! Adventures in Metaprogramming with Scalameta
Audience Level: All
Time: 11:10 AM (30 minutes)
Speaker: Eric Fredericks

How can we take some re-usable code for asynchronous, schema-less data science backend integration, and give it the type-awareness it needs to comply with new schema requirements? Scalameta, code generation, and an sbt plugin to the rescue! The Go4 Decorator re-imagined with a bit of a typing twist!

Bringing Scala to a Diverse Group of Students
Audience Level: All
Time: 11:45 AM (45 minutes)
Speaker: Elissavet Velli, Noel Welsh, Yifan Xing, Michelle Toelle

We want to tell you how to bring Scala to more people. This might be other developers in your company or a diverse group within your community. What do they need and how do you get and keep them excited about Scala? Come along and find out!

Analysis of Zinc
Audience Level: Intermediate
Time: 2:00 PM (15 minutes)
Speaker: Eugene Yokota

When you compile Scala using a build tool, Zinc is called to do incremental compilation. But how does that work? This is a talk to explain what’s going on in Zinc.

Understanding Scala's Type System
Audience Level: Intermediate
Time: 2:20 PM (30 minutes)
Speaker: Bill Venners

Scala has many types of types. This talk will take you on a tour of Scala’s type system, show you how it is evolving in Scala 3, and help you understand how everything fits together.

Scala eDSLs for domain-specific business logic
Audience Level: Intermediate
Time: 2:55 PM (45 minutes)
Speaker: Eleftherios “Lef” Ioannidis

A powerful pattern in functional programming is embedding small, declarative languages into a host language. I will demonstrate three interpreted eDSLs in Scala that solve three real business problems; time-series financial math, formatting financial reports and working with large data-frames.

Catching More Bugs at Compile Time with Phantom Types and Implicits
Audience Level: Intermediate
Time: 2:55 PM (45 minutes)
Speaker: Maryam Aly

Are you writing a library for your team? Are you encountering bugs or runtime errors that you suspect can be found earlier? Learn how to use the magic of implicits with phantom types to catch more bugs at compile time!

Careful With That Hammer, Eugene... (Toward Simpler Scala)
Audience Level: All
Time: 4:30 PM (45 minutes)
Speaker: Narek Asadorian

Put the hammer down, you don’t need recursion schemes to parse a JSON file! This talk introduces the principles of Simple Functional Programming, a way to make advanced Scala code approachable to newcomers. We’ll dive into real life code examples, uncovering common anti-patterns and their antidotes.

How to Eliminate Surprises In Your Data
Audience Level: Beginner
Time: 5:20 PM (30 minutes)
Speaker: Anne DeCusatis, Idrees Khan

How do you know you can trust the accuracy of the data flowing through a pipeline, and the insights derived from it? At Spotify, we’ve made both cultural changes and Scala tools to increase confidence and eliminate surprises in our data contents, and solve problems in the wide space of data quality.

Free Monoids: Monoids for Anything!
Audience Level: All
Time: 5:55 PM (15 minutes)
Speaker: Adam Rosien

“Can you make a Monoid[A] for any A?” It seems impossible, but you can do it if you cheat.

This talk will quickly go over why we’d want to do this, the “trick” we can use, and show how this trick can be generalized and used in many contexts.