Scala Wave

7‑8 July 2017

Resourceful Scala for the societies and industries

Scala Wave is created to build the network of Scala (and related technologies) enthusiasts & experts in the area of the Baltic Sea Region and beyond

Scala Wave means sharing Scala passion, knowledge & experience. We love to disseminate Scala trends, build the Baltic Scala community and promote the Baltic Region as a technical hub

WORKSHOP DAY

25.11.2016 (Friday)

14:00 - 18:00
location: Stary Maneż

Paweł Szulc:
From Zero to Hero with Apache Spark

► See workshop description
This workshop is intended for Apache Spark beginners. However the idea is to go far beyond concepts that you can read on your own at Spark's documentation. I want you to get deep understanding how Apache Spark works internally. I want you to understand not only the basic concepts and the API but also the very details of how things work in Spark. Is 4 hours enough to get from "zero to hero"? It depends on the audience, but it was proven before that it was doable! From my side I can promise knowledge & experience. I've been working on Spark project for the past 3 years now. I've seen the dragons. I'm happy to share my stories. Bring your laptops with you, with your favorite editor/IDE, Spark installed and Apache Spark sources downloaded!
14:00 - 18:00
location: Sztuka Wyboru

Mateusz Kubuszok:
Nice Scalaz (and Cats) monads you want to use: State, Free, Task as well as Validation

► See workshop description
    In this workshow we would like to show you some useful monads that many functional programmers already fell in love with:
  • State - one that allows you to simulate stateful computations inside pure functions
  • Free - one that let you decouple business logic from side effects
  • Task - an alternative to Future that doesn't break monadic laws and let you defer the decision when and how will your computations be run
  • Validation - like Either but even more suited for validating data

  • This workshop assumes at least basic understanding of Scala and functional programming. You need to have your laptop with you with your IDE/editor of choice installed as well as any browser from displaying slides. I recommend to have SBT already installed and have IDE/editor configured to do code completion and support SBT projects.

Łukasz Lenart:
Scala Basics

► See workshop description
This will be an introductory introduction into a Scala ecosystem. If you don't know Scala language it's the workshop to attend. We will be using SBT but also there will be some examples about how to use the Scala REPL - sometimes can be an useful tool.

During this workshop I want to show differences between 'val' and 'var', how to create classes and traits, why case classes are so cool. We will learn how to implement enums in Scala (without using 'Enumeration') and why 'Option' is better than throwing exceptions. Also I will try to explain why overusing tuples is a bad idea and '.flatMap' is something that you must use all the time.

    What do you need:
  • installed JDK 8
  • knowledge how to use git
  • IDE or text editor of choice
  • 'git clone git@github.com:lukaszlenart/scala-basics.git'
14:00 - 18:00
location: Sztuka Wyboru

Piotr Krzemiński:
Introduction to type-level (meta)programming with Shapeless

► See workshop description
    This workshop is dedicated for people that have no prior experience with advanced Scala type system features or Shapeless library, but want to learn new concepts and get proficiency in applying them in practice.
    During the workshop we:
  • review implicits, path-dependent types, typeclasses, aux pattern
  • introduce basic abstractions that Shapeless provides and quickly learn how to work with them
  • learn how we can take advantage of automatic typeclass derivation
  • explore some real-world examples when using metaprogramming with well defined abstractions can reduce amount of boilerplate code in your applications
  • jump into more advanced topics like singleton types, witnesses, record types, labelled generics, polymorphic functions
  • discuss how we can improve user experience with implicit macros

  • Don't worry if these concepts sound scary to you - in fact there are few principles behind every of them that you will get familiarized with during the workshop. You will get a chance to take some hands-on experience.
    Basic scala knowledge is recommended. Bring your laptops with installed SBT and your favourite IDE or text editor.
20:00
Warm up party! ATELIER CLUB
AGENDA

26.11.2016 (Saturday)

We believe in strong practical approach. That’s why Scala Wave agenda will be divided into 3 thematic modules:
  •    General Scala - tech talks
  •   Business insight - practical use cases
  •   Social impact - Scala in the service of humanity
To be as helpful as it’s possible, we put these 3 different icons in the agenda.
9:30 - 10:00
Good morning coffee
10:00 - 10:30
Opening / welcome speech - Łukasz Kuczera (CEO Scalac)
10:30 - 11:05

Roland Kuhn:
Distributed Systems and Compositionality (akka typed)

Distributed systems are becoming more and more commonplace, microservices and cloud deployments force this notion into the day to day routine of many developers. One of the great features of a strongly typed language like Scala—with its expressive type system—is that we can achieve a high level of safety and confidence by letting the compiler verify that our code behaves as specified. But can this safety be carried over into the interactions between distributed parts of an application? Can we for example safely compose Actor behaviours from different pieces? This presentation introduces some approaches to this problem, including Session Types and π-calculus, and discusses their limitations. The practical ramifications are illustrated using Akka Typed, with a preview of composable and reusable behaviors.
► See speaker info

Roland Kuhn is CTO and co-founder of Actyx, author of Reactive Design Patterns, a co-author of the Reactive Manifesto, co-teaching the Coursera course "Principles of Reactive Programming" and a passionate open-source hakker. Previously he led the Akka project at Lightbend. He also holds a PhD in particle physics and has worked in the space industry for several years.

11:05 - 11:40

Jon Pretty:
Interpolating Strings Like A Boss

Most people are familiar with the `s"Hello, $name"` syntax for composing strings, but that only touches the surface of what is possible in Scala. By combining it with other advanced Scala features such as implicits and macros, we open ourselves up to numerous powerful opportunities with applications in domain-specific languages and type-level programming.
► See speaker info

Jon has been involved in the Scala community for over a decade, having launched the first commercial and open-source Scala software back in 2005. Since then, he has successfully deployed Scala projects into small, medium and large businesses, and UK government, but is best known these days for his work on Rapture, the Scala World conference, and as chair of the Scala Center Advisory Board.

11:40 - 12:15

Paweł Szulc:
Make your programs Free (free like freedom, not beer).
Eye‑opener to the very essence of Functional Programming

For me, functional programming was never about switching paradigms just to switch. It was always about sanity. Yes, SANITY. The ability to finally do real engineering (to some extent). A safe space where you can reason about your code in isolation. Where modularity actually makes sense. Because software engineering is hard - whatever paradigm or approach you are going to choose for your next project, the complexity will not magically disappear. FP allows you to tackle the complexity in a divide-and-conquer manner. I believe that we live in era of "software alchemy" [(c) Martin Thomson], and functional programming is the first real step to bring science and true engineering to our industry. Free monad is a concept that forges that idea into practical solution. It allows you to reason about your concerns in isolation and combine them together on a higher level. Programs written with Free are very comprehensible and maintainable (once you know how Free works). For the past few months I've been working on a project that uses Free to a fair extent. I believe I gain enough experience & knowledge to share it with a bigger, demanding audience. Hope you will come to see my talk :)
► See speaker info

Paweł Szulc is primarily a programmer. Always was and always will be. Experienced professionally in JVM ecosystem, currently having tons of fun with Scala, and Haskell. By day working on (not that) BigData problems, by night hacking whatever he finds interesting at that given moment. Humble apprentice of Functional Programming.

12:15 - 12:40
Networking coffee break
12:40 - 13:15

Silvia Pina and Amr Hassan:
Beauty and/or elegance in Functional Programming

Beauty is a combination of pleasing traits, albeit subjectively perceived it still can be discussed and more or less defined. Not being exclusive to art, beauty is found in other disciplines too, such as in mathematics, and in software source code. In the software community, debates about beauty / code elegance may be implicit but they are at the heart of many concerns of modern software development.
In this talk we will explore how we are using functional programming to achieve beauty in code, and how does that translate to high quality software projects. You will leave more motivated to try out functional programming, if you’re not already doing it!
► See speaker info

Silvia Pina is a Software Engineer working primarily with Scala. She has studied Computer Science and Psychology and she's always interested in bringing up topics that intertwine the two fields.


Amr Hassan is a Software Engineer and a Functional Programming enthusiast. He writes software professionally in Scala, Python, Java and Go. Most recently he’s been having a ton of fun with typeful purely functional programs in Scala and in Haskell.

13:15 - 13:40

Konrad Malawski, Akka Team, Lightbend:
End-to-End Reactive Streams, from Socket to Business

The Reactive Streams specification, along with its TCK and various implementations such as Akka Streams, is coming closer and closer with the inclusion of the RS types in JDK 9. Using an example Twitter-like streaming service implementation, this session shows why this is a game changer in terms of how you can design reactive streaming applications by connecting pipelines of back-pressured asynchronous processing stages. The presentation looks at the example from two perspectives: a raw implementation and an implementation addressing a high-level business need.
► See speaker info

Akka hakker @ Lightbend (previously known as Typesafe), where he also participated in the Reactive Streams initiative and implemented it's Technology Compatibility Kit. Konrad is a late-night passionate dev living by the motto "Life is Study!". His favourite discussion topics range from distributed systems to capybaras. He has founded and keeps organising multiple user groups (Java, Scala, Computer Science, ...), and has is part of program committees of awesome conferences such as GeeCON and JavaOne SF. Other than that, he's a frequent speaker on distributed systems and concurrency topics, at conferences all around the world. In those rare times he's not coding, he spreads the joy of computer science, through helping local user groups and whitepaper reading clubs.

13:40 - 14:40
Lunch break
14:40 - 15:05

Viačeslav Pozdniakov, Adform:
Dealing with Flink's imperfections

Performing joins of huge datasets in database is very expensive: first of all it is slow, secondly it requires a lot of resources. It becomes even more challenging if you want to analyze results in near real time. So you need to join data streams (i.e. Kafka topics) before saving to database. We have chosen Flink for that. As it turned out, this was quite decent but not so perfect solution.
► See speaker info

I am a software engineer at Adform working in a Research Infrastructure Team -- a team which keeps researchers' algorithms running and is responsible for data plumbing. Also I teach Functional Programming in Vilnius University.

15:05 - 15:40

Lech Głowiak:
Event Sourcing small and big

Event Sourcing and Command/Query Responsibility Segregation are not new techniques in industry but still considered as not standard way of implementing software. Why is that? Is it because accidental complexity it brings to codebase? Maybe it requires some extraordinary assets?
    This talk contains my answers to questions like:
  • how big overhead does it bring to development process?
  • is it worth effort only in exceptional cases?
  • when not to use it?
  • what major problems are?
  • what is state of existing tooling in Scala?
  • after transformating simple backend system to ES + CQRS and also using this pattern to create complex platform.
► See speaker info

He professionally develops software on JVM since 2009. Most of time he has been developing non-trivial backend systems in telecom industry. Turned to full-time Scala developer in 2016. He strives for making software that is easy to develop. You can meet him running early in the morning in woods.

15:40 - 16:00
Networking coffee break
16:00 - 16:25

Andreas Köstler:
Type classes - a principled approach

Type classes were introduced into Haskell in the late 80s to provide a principled form of ad-hoc polymorphism. They have since found wide application in Scala, in applications and libraries alike. From implementing limited forms of dependent typing, to inductive proofs at the type level, to solutions to the expression problem - type classes are a valuable tool in the toolbox of the functional programming practitioner. This talk will look at their implementation in Scala, the problems they solve, and caveats to look out for when applying type classes.
► See speaker info

Andreas is a senior software engineer at Commonwealth Bank of Australia leading a team of super talented engineers building a suite of products that deliver measurable customer value. He has been in the business of developing scalable and reliable software for almost 15 years - embracing Scala's quirky idiosyncracies for the last 5 of those. When he is not humbled by his coworkers or his motorbike he is hacking on shapeless and helping to re-home ex racing Greyhounds.

16:25 - 17:00

Jan Pustelnik:
Applied reactive streaming fast data processing with Akka

In the old days of yore, even before computers were invented, "reactive streaming fast data" was already known as on-line algorithms. This "elegant weapon for a more civilized age" can now make a come-back due to the rare alignment of planets of Scala and Akka. In this talk we want to give a couple examples of how practical problems from the worlds of genome sequencing, machine learning and data mining can be solved using the tools from Akka toolbox. In particular, our focal point will be akka-streams package but we will also use akka-http and (just) Actors. We will mix obscure algorithms found in dust-covered textbooks with hottest newest features from the streams ecosystem to solve real problems from domains of bio-technology and computer security. Thanks to the reactive streaming approach and back-pressure, we won't care whether our data is big or small. And if mentioned planets bend the light in favourable way, we may even do some live-coding together.
► See speaker info

Technical Architect at GFT Poland and Lecturer at the University of Łódź by day, sporadic akka project contributor by night. Interested in how software works on low level, he does not find big frameworks appealing. This is the main reason why he loves Scala, a very expressive language that allows one to build right abstractions quickly without losing control over details. Jan is an active member of JUG Łódź and occasional conference speaker. Currently he is busy with a Big Data project for one of major investment banks. In his spare time he loves to dust-off some old issue of computer science journal only to find out that everything has already been invented before he even was born.

17:00 - 18:00
Lightning talks
  • Dónal Adams:

    SBT why won’t you listen to me?! - Handling User Input in SBT

    ► See more info

    SBT is a central tool in the Scala developer’s toolbox but it can be confusing at times. Handling user input in your custom tasks is no exception. In this talk we’ll look at how to parse user input in SBT and try to reduce this confusion!


    Dónal Adams is a Senior Platform Engineer with Nitro Ltd. where he’s working on building Nitro’s next generation Smart Document Management platform. Outside of work, he likes to spend time with his new daughter and bake bread.

  • Łukasz Indykiewicz:

    Validation with Cats and Scalaz

    ► See more info

    We write the code that is beautiful, but there are always input data … sometimes bad data. We would like the verification code to be also in a good style. Imagine that you could compose easily the validation rules, imagine that you don't have to use exceptions, imagine that it's easy to reason about it and it's super easy to unit test such rules. Imagine that you can produce nice error messages without hassle. With Cats (or Scalaz) help this dream is at your fingertips ;) Come to my talk and learn how to start with Cats and Scalaz.


    Łukasz Indykiewicz is a developer with passion for coding. Started his professional work as a Java Software Engineer, but since end of 2014 writes functional code in Scala. Co-organizer of the Chamberconf, speaker to be and regular technical meetups listener. Always keen to hear about interesting ideas.

  • Bartosz Kowalik:

    ScalaMock: Macros strike back

    ► See more info

    Testing is very important part of software development. There are plenty of testing libraries available. We can use classical JUnit, ScalaTest, Specs or property based testing form ScalaCheck. But when it goes about mocking there is less choice. We can use either libraries from Java or ScalaMock from Scala universe. ScalaMock is the powerful mocking library written purely in Scala. It uses macros to create mocks. Macros and compile-time reflection allow to create type safe code or manipulate programs. It is almost mythological tool, the Holy Grail of programming languages. Almost all modern languages have it. During presentation I will show how macros and ScalaMock work. After that I will concentrate on popular pitfalls and bugs related to ScalaMock and generally macro-generated code.


    Bartosz Kowalik is a Scala developer at VirtusLab. Passionate about functiona programming and machine learning. Likes good movies and TV series.

  • Jakub Kozłowski:

    7 sins of a Scala beginner

    ► See more info

    Scala is a powerful language, with lots of features that make day-to-day development more pleasant. Some would argue that there are actually too many. Regardless if that's true or not, there are problems that can arise from using them - e.g. in the wrong context, or just too many features at a time. In this talk, we'll go through some of these mistakes quickly, and see if there are any ways to avoid them.


    Jakub Kozłowski is a young hAkker who spends his days breaking code and running in the late evenings. Currently Scala dev at Scalac. In his free time, if he has any, Jakub explores his interests, which include functional programming, working on pet projects, playing bass and watching cool TV series.

  • Piotr Jastrzębski:

    Scylla - A NoSQL database that scales linearly and is 10x faster than Cassandra

    ► See more info

    Scylla is a Cassandra compatible NoSQL database that scales linearly. The interesting thing about it is that it's 10x faster than Cassandra. A 3 nodes cluster of Scylla can handle as much load as 30 nodes cluster of Cassandra and the latency will be lower. Scylla can be used directly from your application using Scala driver or it can be combined with Spark. Come and learn how to store big amount of data in a scalable way :).


Thank you for registering.

Registration closed.

We are powered by

Organiser:

Scalac Logo

Silver Sponsors:

Lightbend Logo Luxoft Logo

Supporting Sponsors:

Adform Logo Javeo Logo VirtusLab Logo JetBrains Logo investGDA Logo

Community Partners:

SoftwareMill Logo GFT Logo No Fluff Jobs Logo
Zielona Góra JUG Logo Trójmiasto JUG Logo Bydgoszcz JUG Logo Toruń JUG Logo Łódź JUG Logo

Media Partners:

O'Reilly Logo Helion Logo Methods & Tools Logo Programista Logo Spotkania IT Logo

Friends/Supporting:

Talkersi Logo Tonezone Logo Feel IT Logo Browar Brodacz Logo

Stary Maneż

Conference Venue
26.11.2016

We invite you to the unique and climatic place called STARY MANEŻ, where the past and the future are interwoven together and where the Black Hussars manege was located in the old times.

Today, that’s the most creative and open space in Gdańsk. We believe that it will significantly influence our Scala talks, effectiveness of workshops and networking atmosphere.

Stary Maneż

Sztuka Wyboru

Olivia Business Centre

Scala Wave Team recommend you to stay in

Smart Hotel

Smart Hotel is modern and comfortable place, close to the center & even closer to the conference venue.

It offers you special Scala Wave discount:
170 PLN / night (single or double room) + breakfast (24 PLN)

Discount password: Scala

Have questions?

Feel free to ask

monika.hinc@scalac.io +48 514 753 795