ScalaUA-2019 Abstracts

Daniel Beskin — Compile Time Logic Programming in Scala — What For? (45 minutes)
It has been known that Scala's implicits allow one to write Prolog-like programs that run at compile time. Although letting the compiler solve your daily Sudoku puzzle for you is fun, how could that possibly be useful in an actual program? Taking a step back, as vigilant observers of type safety, we try to leverage the type system to ensure the correctness of our code; but when the domain constraints become too involved, constructing the appropriate types might become cumbersome. In this talk, after introducing some basic Prolog phrased in the language of implicits, we'll see how this newfound power can free us from the burden of type construction by letting the compiler do most of the grunt work for us.  
Noam Almog — Adding Cross Multilingual Support to Wix microservices (45 minutes)
The last year Wix has added multilingual support to its microservices. In order to do that we needed to build a new infrastructure to allow our users to translate their sites and content to different languages. In this talk, we will review the architecture we chose to implement this and how we leveraged Scala's macros to allow easier integrations.  
Karl Brodowsky — Know your Data (20 minutes, Lightning Talk)
When working with big data efficiently gains can be achieved by putting in knowledge about the nature of the data. Most of our data processing does things like sorting, searching and compression without any assumptions about the data and this works well for relatively small amounts of data that do not create really heavy load or costs. It is relatively little known that it is actually possible to speed up these things when we stop ignoring the knowledge that we actually have or can acquire.  
Justin Kaeser — Integrating Developer Experiences — Build Server Protocol and beyond (45 minutes)
IDEs - Integrated Development Environments - traditionally provide out of the box support for many of the tasks that go into making working software out of source code. But increasingly, developers expect to be able to use any one of a variety of special-purpose tools for each task. This shifts the focus of the IDE from ""Integrated"" to ""Integrating"" external tools into a coherent experience. Especially in the Scala ecosystem, we have an increasing number of build tools to choose from. I have been focusing on integrating sbt and other new tools with the IntelliJ Scala plugin and will talk about challenges involved and how the Build Server Protocol makes it possible for IntelliJ to interface with any build tool.  
Łukasz Filut — Large love simplicity — how build metrics on few example incidents (45 minutes)
The talk is about four cases of different availability and performance incidents. Problems has been detected and resolved in large scale systems (two on large payment provider, one large bank and one in large high school portal). All cases will be occasion to introduce GQM methodology in terms of defining proper and understable metrics. During talk I would like to convince audience (especially developers and devops) to take responsibility for this is very crucial element of any monitoring ecosystem. Each case will be described and followed by methods that helped me during incident. On close up I will present two things. I will introduce GQM as method itself and show how this method could help build better, more readable and reliable, monitoring dashboards with GQM.