Let's immerse ourselves into Scala Dev Tools

March 2-3, 2017 | Kraków, Poland Get tickets

About the conference

This is a unique event devoted to important topic for every Scala Software Developer - Dev Tools.

Our aim is to show how they can facilitate effective development of Scala-based systems, how they are written, and to discuss what could still be improved.

Sister event <span>ReactSphere</span>

Sister event ReactSphere

ReactSphere is a conference focused on Reactive Programming and Reactive System Design. It will be on the same dates at the same venue. You can reserve your entry for both conferences. Check details.

Our Agenda

Day 1

Day 2

Download full programme as .PDF

Registration


8:00 to 8:55

Welcome


8:55 to 9:00

Check embedded DSLs at compile time with Contextual!



Interpolated strings, like the familiar `s””`, provide a convenient way to embed external DSLs in Scala source, allowing you to construct a new value at runtime from a string literal, with Scala expressions substituted within it. But unless you are prepared to implement the interpolator using a macro, the compiler provides no checks on the correctness or well-formedness of the embedded DSL. Contextual is a small open-source library which does the heavy lifting work to make it trivial to write string interpolators which run at compile time, without requiring any macro code. A string interpolator which parses and checks a DSL at compile-time — with its own custom error-messages — can be written using contextual in just a few lines of ordinary „userspace” code, calling upon parsers, regular expressions or any other means to check the interpolated string. This opens up a smorgasbord of possibilities for adding more compile-time safety to Scala code, not least the ability to introduce your own literal-like types, ranging from checked email addresses or URLs to compile-time-parsed YAML, CSS or even Haskell.
Jon Pretty Propensive
9:00 to 9:45

Tea & Coffee Break


9:45 to 10:00

Choose your target – JVM, Node, Native



Scala used to target the JVM only. Today you can implement javascript and native apps with Scala. sbt-native-packager claims to to build once deploy anywhere, which is no longer true if you want to run a scalajs application on node. In this talk we will implement one or two sbt-native-packager archetypes for non-jvm target platforms. While doing so we cover some of the basics and design principles of sbt-native-packager so you can implement your own plugins on top.

About Nepomuk: He is a Scala / Java developer for a few years and likes developing for web companies. He is one of the sbt-native-packager maintainers, which is responsible for packaging play and a one-stop-job for all package formats you can thing of.
Nepomuk Seiler gutefrage.net
10:00 to 10:45

Tea & Coffee Break


10:45 to 11:00

The Scala Refactoring Library: The Good, the Bad and the Ugly



The Scala Refactoring Library is used by both ENSIME and Scala-IDE to implement refactorings. Although still containing quite some bugs, significant improvements have been made since my last talk at ScalaSphere. This presentation gives an overview of the changes that are responsible for these improvements, as well as the challenges we are still facing. I also want to talk a little about the future of the library, and hopefully inspire a fruitful discussion.
Matthias Langer Scala Refactoring, Irian GmbH
11:00 to 11:45

Tea & Coffee Break


11:45 to 12:00

Scala.meta semantic API



A few years ago, we set out on a journey to build scala.meta – a platform-independent metaprogramming library that would finally obviate the need to learn compiler internals to program developer tools. Our take on syntactic API worked really well, becoming the foundation of several novel tools: scalafmt, scalafix and a new macro system for Scala. In this talk, we’ll present a long-awaited development in this area – semantic API – that provides ways to resolve names, infer types and more.
Eugene Burmako Scala Meta, Twitter
12:00 to 12:45

Lunch Break


12:45 to 14:00

Kentucky Mule or Kamikaze – Attacking Scala compiler performance



Pick your poison, optimise ScalaC, wait for Dotty, start from scratch? Scala compiler performance is an issue on large projects. Whilst Dotty is faster, it is also a significant amount of time away. Should we just wait, can we and should we improve ScalaC? Can we do better if we rewrite the compiler? We have learned a lot from the performance of DotC, from the optimisation work going on right now and from the exploratory work in Kentucky Mule. This talk show the current attacks on performance, the potential paths and explores both how we are doing and how far we can go.
Rory Graves Ensime
14:00 to 14:45

Tea & Coffee Break


14:45 to 15:00

Triplequote Hydra Compiler: a bigger hammer



*Given by Iulian Dragos and Mirco Dotta. We all love Scala, but the one aspect we have a hard time accepting are long compile times. It’s not uncommon for a project to experience compilation times of a handful of minutes, if not worse. On top of that, compilation times are unpredictable, depending on a combination of language features, external libraries, and type annotations. A single line change may increase compilation times ten fold. What can we do? It’s paramount we gain greater insight into the tools and libraries we use. There are also established (anti-)patterns that you should know about, if you fancy to keep compilation times to a minimum. And why not utilizing all cores when compiling? The stock Scala compiler can’t do it, but Triplequote Hydra is here to change that. Sit tight and let’s cut down on compilation time!

Iulian Dragos & Mirco Dotta
15:00 to 15:45

Tea & Coffee Break


15:45 to 16:00

Graphpocalypse: indexing scala projects in ENSIME



Ever wondered what your IDE is doing when it says „Indexing” and eats up all your CPU? I’ll explain the role and implementation of the ENSIME binary indexer, and introduce you to the Graphpocalypse – our 2016 Google Summer of Code project. Although Scala IDE and Intellij use a different indexing implementation (tied into their framework), many of the principles are the same. This talk will give you an appreciation of the work your IDE is doing to enable various features that you may take for granted.
Sam Halliday Ensime
16:00 to 16:45

Lightweight data ops and seamless app distribution with coursier



Last year, I demoed what coursier, at the time a new library to manage dependencies, can do. Now that it's approaching its 1.0 final version, it's time to build new applications with it! In this talk, I'd like to illustrate how its ability to quickly gather classpaths can be put to profit to launch clustered applications with little to no overhead, and how it can help to distribute applications with a single command line, replacing cumbersome archive generation / distribution.
Alexandre Archambault Cousier
16:00 to 16:45

Tea & Coffee Break


16:45 to 17:00

Refactoring with scalafix and scala.meta



Move fast and automatically refactor things. That's my dream at least. Scalafix is a new tool to create "rewrites" that refactor Scala code. Rewrites are composed of "patches", which is a small algebra of operations that can be assembled to run as a single refactoring step. The long-term goal of scalafix is to help automate the migration of Scala 2.x features to Dotty. In this talk, we'll learn how scalafix is implemented on top of scala.meta and how to write custom rewrites for ad-hoc library and application migrations. We'll also compare scalafix with the current landscape of Scala tooling.
Ólafur Páll Geirsson ScalaCenter
17:00 to 17:45

Semantic Search – A New Foundation for Our Tools?



The goal of all tools is to make the lives of developers easier in one way or another. The Scala ecosystem moved a long way to make its tools helpful but there are still many people who are not happy with using these tools – me included. Because of this I went on a journey to find out where the unhappiness comes from and how it can be resolved. I came to the conclusion that we need to put our tools into a new coat if we want to address major limitations that make users unhappy. While my journey is still not finished, I found at least a new coat, which appeared to me in shape of a semantic search engine. This talk aims to explain what I understand by great UX that results in happy users and why this is so hard to achieve. Furthermore I propose a concept of a tool that can provide great UX – the so called semantic search engine. Once the concept is settled we can continue to look into concrete technical details that not only allow us to understand how a semantic search engine can give us answers to questions that no other tool can answer but also how these answers can be used to enrich the functionality of existing tools. The talk is concluded with a vision that depicts a world where we can explore and visualize our data in ways that we can’t yet imagine.
Simon Schäfer Scala IDE, VirtusLab
17:00 to 17:45

AFTER PARTY at Stara Zajezdnia


18:00 to 00:00

ViewSphere Teaser: From Spark ML model creation to production application in 15 minutes with IBM Watson Machine Learning



From model creation to running application in production is a huge step. Moving excellent model to production very often fails because of the complexity and maintainability issues. Is it possible to have web application consuming machine learning model up&running in production within 15 minutes? Within this presentation we would like to show how it can be achieved by answering data scientist and developer needs within Watson Machine Learning offering.
Alexandre Quemy IBM
9:00 to 9:45

Tea & Coffee Break


9:45 to 10:00

Debugging in Scala – API, Tooling, and More



Debugging is a powerful technique to aid in software development; so, why is Scala support still stuck in the dark ages? Traditional Java debuggers struggle with Scala’s structure and current Scala tooling lacks the advancements in debugging found in other languages! In this talk, we will venture into the Scala Debugger project. Specifically, we will dive into the core API and its design as well as how it is leveraged in Ensime and other standalone tools. From there, we will discuss a variety of „power features” found in other debug tooling and how they could be adapted for use with Scala. Additionally, we will cover several topics of exploration in the JVM debug space. Finally, we will close with the current state and roadmap for the Scala Debugger project.
Chip Senkbeil IBM
10:00 to 10:45

Tea & Coffee Break


10:45 to 11:00

Scala.meta support in IntelliJ IDEA



Scala.meta as well as practically any other metaprogramming framework introduces an extensive amount of quirks into an ordinary workflow of any code analysis and manipulation tool and particularly in IntelliJ IDEA. In this talk I’ll cover the challenges that have had to be overcome as well as the issues yet to be addressed.
Mikhail Mutcianko Scala.meta, JetBrains
11:00 to 11:45

Tea & Coffee Break


11:45 to 12:00

Using Chaos Engineering to Build Resilient Distributed Applications



Distributed systems are hard to build and complex to adequately test. Often end-to-end testing assumes ideal conditions with networks that are stable and with machines that never fail. Real-world distributed systems however have to contend with issues such as variable latencies, unreliable networks, disks that fail, etc., all of which can lead to difficult to detect bugs that typically surface during crisis scenarios. Chaos Engineering solves these problems by injecting faults into real-world systems (e.g. by killing containers or changing networking behaviour), and then monitoring the distributed system for deviations from pre-defined steady-state behaviours. By performing such experiments against production-like systems, Chaos Engineering allows code to be proved resilient and operations staff to be trained and drilled in handling crisis scenarios. This talk introduces and motivates the need for docker-compose-testkit – an open source library written in Scala to support the runtime verification of distributed applications and Chaos Engineering. Under the hood, the library interfaces with instrumented real-world systems using extensible effects and Monix observables. This enables both the functional reuse of Chaos experiments and the ability to generate these experiments by analysing abstract models of our real-world systems. Using real-world examples and live coding, this talk will demonstrate how docker-compose-toolkit may use its extensive fault injection capabilities (a la Chaos Engineering) to prove the resiliency of distributed applications.
Carl Pulley Cake Solutions Limited
12:00 to 12:45

Lunch Break


12:45 to 14:00

DRY compiling!



How much time do you spend compiling your code after the change of a branch? Did you ever set up multiple copies of same the repository just to not trigger the full compilation? It’s time to change this! Let’s reuse incremental compilation and save lots of time!
Krzysztof Romanowski VirtusLab
14:00 to 14:45

Tea & Coffee Break


14:45 to 15:00

The state of sbt 1.0 and sbt server



*Given by the sbt team at Lightbend: Eugene Yokota and Dale Wijnand. In this talk we’ll cover: * What goals we want to achieve with sbt 1.0 * A summary of the modularization split * What is sbt-datatype and why we created it and use it * An in depth introduction of sbt server * A demo of sbt server”

Eugene Yokota & Dale Wijnand
15:00 to 15:45

Tea & Coffee Break


15:45 to 16:00

DISCUSSION PANEL - The biggest holes in Scala tooling and how we can plug them up


16:00 to 16:45

HACKATHONS - Chamber C,D,E

Chamber 2

17:00 to 21:00

The speakers

Alexandre Archambault
Alexandre Archambault Cousier View bio & abstract
Eugene Burmako
Eugene Burmako Scala Meta, Twitter View bio & abstract
Mirco Dotta
Mirco Dotta Triplequote View bio & abstract
Iulian Dragos
Iulian Dragos Triplequote View bio & abstract
Ólafur Páll Geirsson
Ólafur Páll Geirsson ScalaCenter View bio & abstract
Rory Graves
Rory Graves Ensime View bio & abstract
Sam Halliday
Sam Halliday Ensime View bio & abstract
Matthias Langer
Matthias Langer Scala Refactoring, Irian GmbH View bio & abstract
Mikhail Mutcianko
Mikhail Mutcianko Scala.meta, JetBrains View bio & abstract
Jon Pretty
Jon Pretty Propensive View bio & abstract
Carl Pulley
Carl Pulley Cake Solutions Limited View bio & abstract
Alexandre Quemy
Alexandre Quemy IBM View bio & abstract
Krzysztof Romanowski
Krzysztof Romanowski VirtusLab View bio & abstract
Simon Schäfer
Simon Schäfer Scala IDE, VirtusLab View bio & abstract
Nepomuk Seiler
Nepomuk Seiler gutefrage.net View bio & abstract
Dale Wijnand
Dale Wijnand SBT, Lightbend View bio & abstract
Eugene Yokota
Eugene Yokota SBT, Lightbend View bio & abstract

Alexandre Archambault

About Alexandre: He is a software / data engineer, currently based in Paris. He contributed to shapeless and authored various projects around it, and he’s the original author of coursier (get-coursier.io) and jupyter-scala (jupyter-scala.org).

Topic: Lightweight data ops and seamless app distribution with coursier


Last year, I demoed what coursier, at the time a new library to manage dependencies, can do. Now that it’s approaching its 1.0 final version, it’s time to build new applications with it! In this talk, I’d like to illustrate how its ability to quickly gather classpaths can be put to profit to launch clustered applications with little to no overhead, and how it can help to distribute applications with a single command line, replacing cumbersome archive generation / distribution.

Alexandre Archambault Cousier

Eugene Burmako

About Eugene: Programming languages enthusiast, PhD student at EPFL, member of the Scala team, Scala macros guy

Topic: Scala.meta semantic API


A few years ago, we set out on a journey to build scala.meta – a platform-independent metaprogramming library that would finally obviate the need to learn compiler internals to program developer tools. Our take on syntactic API worked really well, becoming the foundation of several novel tools: scalafmt, scalafix and a new macro system for Scala. In this talk, we’ll present a long-awaited development in this area – semantic API – that provides ways to resolve names, infer types and more.

Eugene Burmako Scala Meta, Twitter

Mirco Dotta

About Mirco: Co-founder of Triplequote LLC, a company aiming at boosting Scala teams’ productivity. Mirco has 10+ year experience with Scala, and he has contributed to several open source projects such as Lagom, Playframework, Scala IDE for Eclipse, and the Scala language. Before founding his own company, he worked at Lightbend (formerly known as Typesafe), where he wore different hats: from engineering, to consulting, and, fun fact, even sales! He is a certified Lightbend trainer for Akka, Playframework, and Scala. He loves meeting people and sharing experiences. In his freetime, he plays chess and studies wine – both theory and practice! 🙂 You can find him on twitter at @mircodotta.

Topic: Triplequote Hydra Compiler: a bigger hammer



*Given by Iulian Dragos and Mirco Dotta.

We all love Scala, but the one aspect we have a hard time accepting are long compile times. It’s not uncommon for a project to experience compilation times of a handful of minutes, if not worse. On top of that, compilation times are unpredictable, depending on a combination of language features, external libraries, and type annotations. A single line change may increase compilation times ten fold.
What can we do? It’s paramount we gain greater insight into the tools and libraries we use. There are also established (anti-)patterns that you should know about, if you fancy to keep compilation times to a minimum. And why not utilizing all cores when compiling? The stock Scala compiler can’t do it, but Triplequote Hydra is here to change that. Sit tight and let’s cut down on compilation time!

Mirco Dotta Triplequote

Iulian Dragos

About Iulian: He dreams about a world where the Scala programming language is the default choice in the enterprise. He learned Scala by writing the compiler backend for it during his PhD at EPFL, back in 2004, and he was the first employee of Lightbend (formerly Typesafe). In nov. 2016 he co-founded Triplequote, with the mission to empower Scala teams through great development tools, starting with a parallel compiler. Iulian is a frequent speaker at conferences and actively contributing to several open-source projects.

Topic: Triplequote Hydra Compiler: a bigger hammer


*Given by Iulian Dragos and Mirco Dotta.

We all love Scala, but the one aspect we have a hard time accepting are long compile times. It’s not uncommon for a project to experience compilation times of a handful of minutes, if not worse. On top of that, compilation times are unpredictable, depending on a combination of language features, external libraries, and type annotations. A single line change may increase compilation times ten fold.
What can we do? It’s paramount we gain greater insight into the tools and libraries we use. There are also established (anti-)patterns that you should know about, if you fancy to keep compilation times to a minimum. And why not utilizing all cores when compiling? The stock Scala compiler can’t do it, but Triplequote Hydra is here to change that. Sit tight and let’s cut down on compilation time!

Iulian Dragos Triplequote

Ólafur Páll Geirsson

About Ólafur He is an engineer at the Scala Center working on devtools.
Ólafur is the author of scalafmt and a scala.meta maintainer.

Topic: Refactoring with scalafix and scala.meta



Move fast and automatically refactor things. That’s my dream at least. Scalafix is a new tool to create „rewrites” that refactor Scala code. Rewrites are composed of „patches”, which is a small algebra of operations that can be assembled to run as a single refactoring step. The long-term goal of scalafix is to help automate the migration of Scala 2.x features to Dotty.

In this talk, we’ll learn how scalafix is implemented on top of scala.meta and how to write custom rewrites for ad-hoc library and application migrations. We’ll also compare scalafix with the current landscape of Scala tooling.

Ólafur Páll Geirsson ScalaCenter

Rory Graves

About Rory: He has recently founded Scalanator.io working to build a better Scala learning platform. Previous to that is Rory has earned a PhD in Distributed Systems and has spent too long fixing other peoples software in large corporate environments.

Rory is passionate about creating better software through tooling and education, he is involved in a number of open source projects, but mainly focused on Ensime.

Topic: Kentucky Mule or Kamikaze – Attacking Scala compiler performance



Pick your poison, optimise ScalaC, wait for Dotty, start from scratch? Scala compiler performance is an issue on large projects. Whilst Dotty is faster, it is also a significant amount of time away. Should we just wait, can we and should we improve ScalaC? Can we do better if we rewrite the compiler? We have learned a lot from the performance of DotC, from the optimisation work going on right now and from the exploratory work in Kentucky Mule. This talk show the current attacks on performance, the potential paths and explores both how we are doing and how far we can go.

Rory Graves Ensime

Sam Halliday

About Sam: He is a chartered mathematician and software engineer with a love for technology innovation and libre software (ENSIME, spark/netlib-java, etc).

Topic: Graphpocalypse: indexing scala projects in ENSIME



Ever wondered what your IDE is doing when it says „Indexing” and eats up all your CPU?

I’ll explain the role and implementation of the ENSIME binary indexer, and introduce you to the Graphpocalypse – our 2016 Google Summer of Code project.

Although Scala IDE and Intellij use a different indexing implementation (tied into their framework), many of the principles are the same. This talk will give you an appreciation of the work your IDE is doing to enable various features that you may take for granted.

Sam Halliday Ensime

Matthias Langer

About Matthias: He is an experienced software developer with a focus on Scala and Java. Proud member of Scala IDE team. He had studied Mathematics at the University of Vienna. Devoted fan of FOSS.

Topic: The Scala Refactoring Library: The Good, the Bad and the Ugly


The Scala Refactoring Library is used by both ENSIME and Scala-IDE to implement refactorings. Although still containing quite some bugs, significant improvements have been made since my last talk at ScalaSphere.
This presentation gives an overview of the changes that are responsible for these improvements, as well as the challenges we are still facing. I also want to talk a little about the future of the library, and hopefully inspire a fruitful discussion.

Matthias Langer Scala Refactoring, Irian GmbH

Mikhail Mutcianko

About Mikhail: I’m a developer at JetBrains, primarily focused on supporting scala.meta API in IntelliJ IDEA

Topic: Scala.meta support in IntelliJ IDEA


Scala.meta as well as practically any other metaprogramming framework introduces an extensive amount of quirks into an ordinary workflow of any code analysis and manipulation tool and particularly in IntelliJ IDEA. In this talk I’ll cover the challenges that have had to be overcome as well as the issues yet to be addressed.

Mikhail Mutcianko Scala.meta, JetBrains

Jon Pretty

About Jon: He is a longstanding contributor to the Scala community, having launched the first commercial applications written in Scala over ten years ago. He is best known for his work on Rapture, and his contributions to Typelevel Scala.

Topic: Check embedded DSLs at compile time with Contextual!


Interpolated strings, like the familiar `s””`, provide a convenient way to embed external DSLs in Scala source, allowing you to construct a new value at runtime from a string literal, with Scala expressions substituted within it. But unless you are prepared to implement the interpolator using a macro, the compiler provides no checks on the correctness or well-formedness of the embedded DSL.

Contextual is a small open-source library which does the heavy lifting work to make it trivial to write string interpolators which run at compile time, without requiring any macro code. A string interpolator which parses and checks a DSL at compile-time — with its own custom error-messages — can be written using contextual in just a few lines of ordinary „userspace” code, calling upon parsers, regular expressions or any other means to check the interpolated string.

This opens up a smorgasbord of possibilities for adding more compile-time safety to Scala code, not least the ability to introduce your own literal-like types, ranging from checked email addresses or URLs to compile-time-parsed YAML, CSS or even Haskell.

Jon Pretty Propensive

Carl Pulley

About Carl: Specialist in program analysis, distributed programming and machine learning. Extensive experience in implementing large scale reactive applications (including the volume, variety and velocity of „big” data) targeting microservice architectures.

Topic: Using Chaos Engineering to Build Resilient Distributed Applications


Distributed systems are hard to build and complex to adequately test. Often end-to-end testing assumes ideal conditions with networks that are stable and with machines that never fail. Real-world distributed systems however have to contend with issues such as variable latencies, unreliable networks, disks that fail, etc., all of which can lead to difficult to detect bugs that typically surface during crisis scenarios.

Chaos Engineering solves these problems by injecting faults into real-world systems (e.g. by killing containers or changing networking behaviour), and then monitoring the distributed system for deviations from pre-defined steady-state behaviours. By performing such experiments against production-like systems, Chaos Engineering allows code to be proved resilient and operations staff to be trained and drilled in handling crisis scenarios.

This talk introduces and motivates the need for docker-compose-testkit – an open source library written in Scala to support the runtime verification of distributed applications and Chaos Engineering.

Under the hood, the library interfaces with instrumented real-world systems using extensible effects and Monix observables. This enables both the functional reuse of Chaos experiments and the ability to generate these experiments by analysing abstract models of our real-world systems.

Using real-world examples and live coding, this talk will demonstrate how docker-compose-toolkit may use its extensive fault injection capabilities (a la Chaos Engineering) to prove the resiliency of distributed applications.

Carl Pulley Cake Solutions Limited

Alexandre Quemy

Topic: From Spark ML model creation to production application in 15 minutes with IBM Watson Machine Learning.



From model creation to running application in production is a huge step. Moving excellent model to production very often fails because of the complexity and maintainability issues.
Is it possible to have web application consuming machine learning model up&running in production within 15 minutes?

Within this presentation we would like to show how it can be achieved by answering data scientist and developer needs within Watson Machine Learning offering.

Alexandre Quemy IBM

Krzysztof Romanowski

About Krzysztof: He is Scala specialist @Virtuslab where he has spent endless hours debugging Scala IDE, SBT, IntelliJ or even Scala compiler itself. Author of expression evaluator engine for Scala IDE and zinc contributor.

Topic: DRY compiling!



How much time do you spend compiling your code after the change of a branch?
Did you ever set up multiple copies of same the repository just to not trigger the full compilation?
It’s time to change this! Let’s reuse incremental compilation and save lots of time!

Krzysztof Romanowski VirtusLab

Simon Schäfer

About Simon: He works at VirtusLab and is one of the main developers behind the Scala IDE for Eclipse. He is enthusiastic about improving tools and optimizing developers productivity – especially, but not exclusively, his own.

Topic: Semantic Search – A New Foundation for Our Tools?



The goal of all tools is to make the lives of developers easier in one way or another. The Scala ecosystem moved a long way to make its tools helpful but there are still many people who are not happy with using these tools – me included. Because of this I went on a journey to find out where the unhappiness comes from and how it can be resolved. I came to the conclusion that we need to put our tools into a new coat if we want to address major limitations that make users unhappy. While my journey is still not finished, I found at least a new coat, which appeared to me in shape of a semantic search engine.

This talk aims to explain what I understand by great UX that results in happy users and why this is so hard to achieve. Furthermore I propose a concept of a tool that can provide great UX – the so called semantic search engine. Once the concept is settled we can continue to look into concrete technical details that not only allow us to understand how a semantic search engine can give us answers to questions that no other tool can answer but also how these answers can be used to enrich the functionality of existing tools. The talk is concluded with a vision that depicts a world where we can explore and visualize our data in ways that we can’t yet imagine.

Simon Schäfer Scala IDE, VirtusLab

Nepomuk Seiler

About Muki: He is a Scala / Java developer for a few years and likes developing for web companies. He is one of the sbt-native-packager maintainers, which is responsible for packaging play and a one-stop-job for all package formats you can thing of.

Topic: Choose your target – JVM, Node, Native.


Scala used to target the JVM only. Today you can implement javascript and native apps with Scala. sbt-native-packager claims to to build once deploy anywhere, which is no longer true if you want to run a scalajs application on node.
In this talk we will implement one or two sbt-native-packager archetypes for non-jvm target platforms. While doing so we cover some of the basics and design principles of sbt-native-packager so you can implement your own plugins on top.

Nepomuk Seiler gutefrage.net

Chip Senkbeil

About Chip: IBM software engineer by trade, I enjoy dabbling in my spare time with various aspects of tooling to improve the development experience. My most recent venture has been with the Scala Debugger project, a personal project that moved under Ensime. I have also worked on projects including Apache Toree as a PPMC to bring interactive applications to Apache Spark.

On the side, I am pursuing a Master’s in Artificial Intelligence at Georgia Tech, which I hope to use to explore additional possibilities in assisted programming using AI agents.

Topic: Debugging in Scala – API, Tooling, and More



Debugging is a powerful technique to aid in software development; so, why is Scala support still stuck in the dark ages? Traditional Java debuggers struggle with Scala’s structure and current Scala tooling lacks the advancements in debugging found in other languages!

In this talk, we will venture into the Scala Debugger project. Specifically, we will dive into the core API and its design as well as how it is leveraged in Ensime and other standalone tools. From there, we will discuss a variety of „power features” found in other debug tooling and how they could be adapted for use with Scala. Additionally, we will cover several topics of exploration in the JVM debug space. Finally, we will close with the current state and roadmap for the Scala Debugger project.

Chip Senkbeil IBM

Dale Wijnand

About Dale: I’m an active OSS contributor, typically in Scala, and an sbt maintainer. Interested in FP, software tooling, and API and library design.

Topic: The state of sbt 1.0 and sbt server



*Given by the sbt team at Lightbend: Eugene Yokota and Dale Wijnand.

In this talk we’ll cover:

* What goals we want to achieve with sbt 1.0
* A summary of the modularization split
* What is sbt-datatype and why we created it and use it
* An in depth introduction of sbt server
* A demo of sbt server”

Dale Wijnand SBT, Lightbend

Eugene Yokota

About Eugene: He is tech lead of Reactive Platform team at Lightbend that’s responsible for tooling such as sbt, Zinc, and Dbuild among other things. His passions are diners in NJ, pancakes in Western Massachusetts, Döner kebab in Berlin, history of JSON libraries, and functional programming.

Topic: The state of sbt 1.0 and sbt server



*Given by the sbt team at Lightbend: Eugene Yokota and Dale Wijnand.

In this talk we’ll cover:

* What goals we want to achieve with sbt 1.0
* A summary of the modularization split
* What is sbt-datatype and why we created it and use it
* An in depth introduction of sbt server
* A demo of sbt server

Eugene Yokota SBT, Lightbend
Already <b>decided?</b>

Already decided?

Leave us your email address & we will keep you informed

Sumbit

Practical info

Contact us

email: events@virtuslab.com

t: +48 660 539 657
fb: facebook.com/virtuslab

Event App Huntly

Get all event information in one place!
Read more

Main venue

Qubus Hotel
Nadwiślańska 6,
30-527 Kraków

The afterparty

Stara Zajezdnia Kraków
Świętego Wawrzyńca 12,
31-060 Kraków

We are powered by

Organizer

Virtus Lab

Gold Sponsors

ScalaC GrandParade Comarch

Silver Sponsors

IBM Lightband JetBrains

Conference Partner

SoftwareMill

Supporters

Irian Gutefrage CodiLime

Community Friends

SUG Lyon Space Virtusity ScalaCamp KSUG

Code of Conduct

The following Code of Conduct is inspired by that from other prominent conferences such as ScalaDays or Scala eXchange.

ScalaSphere is dedicated to providing a harassment-free experience for everyone, regardless of gender, gender identity and expression, sexual orientation, disability, physical appearance, body size, race, nationality, age or religion. We do not tolerate harassment of participants in any form. Please show respect for those around you. This applies to both in-person and online behavior.

All communication should be appropriate for a technical audience,

including people of many different backgrounds. Sexual language, innuendo, and imagery is not appropriate for any conference venue, including talks.

If you are being harassed, notice that someone else is being harassed, or have any other concerns, please contact a member of staff immediately. If an individual engages in harassing behaviour, the ScalaSphere staff may take any action they deem appropriate, including warning the offender or expulsion from the event.
We expect all attendees to follow above rules during our ScalaSphere DevTools Summit.