Scala Days

March 16-18th, San Francisco 

  


Thanks for all those who attended Scala Days SF 2015.  If you missed your chance to attend, join us for Scala Days Amsterdam, June 8-10 2015.  

Download the Scala Days SF App

For iOS
For Android 

 

 

Keynotes

Martin Odersky, Chief Architect & Co-Founder at Typesafe

Scala - where it came from, where it's going

Monday March 16

Danese Cooper, Distinguished Member of Technical Staff-Open Source at Paypal

Tuesday Keynote

Tuesday March 17

Dianne Marsh, Director of Engineering Tools at Netflix

Technical Leadership from wherever you are

Wedneday March 18

 

 


About

Scala Days San Francisco

Scala Days, the premier Scala Conference, will be held this year at Fort Mason in San Francisco on March 16th through 18th, 2015. There will also be a Scala Days Europe at the Beurs Van Berlage in Amsterdam on June 8th through 10th, 2015. 


The conference will bring together developers from all corners of the world to share their experiences and new ideas around creating applications with Scala and related technologies, like Akka and Play Framework. Scala Days provides a unique opportunity for Scala users to interact with the contributors to the language and related technologies and connect with fellow developers.


Last year’s conference in Berlin was a sold-out event at 800 attendees, and for 2015 we have added two annual events: San Francisco and Amsterdam. Leaders from Scala User Groups and communities around the globe, students and language contributors, will gather to discuss academic research, use-cases and visionary projects for a two day, action-packed event.

Monday (16th Mar.)
16:00 Registration Open
ROOM Herbst Pavilion
TRACK
Keynote
17:00
Keynote: Scala - where it came from, where it's going
Martin Odersky
Scala Creator and Typesafe Co-Founder
Close
Keynote: Scala - where it came from, where it's going
Martin Odersky
Scala Creator and Typesafe Co-Founder

Martin Odersky created the Scala programming language and is a professor in the programming research group at EPFL, the leading technical university in Switzerland. Throughout his career, Martin's singular objective has been to make the basic job of writing programs faster, easier and more enjoyable. In the process, he has personally written more lines of Java and Scala code than almost any other individual in the world. He wrote javac, the compiler used by the majority of today's Java programmers, and scalac, the compiler used by the fast-growing Scala community. He authored "Programming in Scala," the best-selling book on Scala. Previously he has held positions at IBM Research, Yale University, University of Karlsruhe and University of South Australia, after having obtained his doctorate from ETH Zürich as a student of Niklaus Wirth, the creator of Pascal.

Twitter: @odersky

Monday (16th Mar.) 17:00

The talk will give a quick history of the design motivations behind Scala, summarize its current status, and point out future directions for the language and its ecosystem. Scala was intended from the start to be a simple and powerful language for software components. Today, we see a large number of interlinked components and open source systems that make use of it. However, extensive collaboration and re-use are sometimes hampered by binary compatibility issues. I will argue that the logical next step to overcome these issues is to make Scala a true Software platform, which can operate on a number of different host platforms. This step will also lead to a much-needed separation of concerns between stable interfaces and changing implementations.

18:30 Welcome Party
Tuesday (17th Mar.)
08:00 Registration Open
09:00
Keynote Tuesday
Danese Cooper
Distinguished Member of Technical Staff-Open Source at Paypal
Close
Keynote Tuesday
Danese Cooper
Distinguished Member of Technical Staff-Open Source at Paypal

Cooper has managed teams at Symantec and Apple Inc. and for six years served as chief open source "evangelist" for Sun Microsystems before leaving to serve as senior director for open source strategies at Intel. In 2009 she worked as "Open Source Diva" at REvolution Computing (now Revolution Analytics).She is a board member of the Drupal Association and the Open Source Hardware Association. She is a board observer at Mozilla, and serves as a member of the Apache Software Foundation. She was a board member at Open Source Initiative. In February of 2014, Cooper joined PayPal as their first Head of Open Source

Tuesday (17th Mar.) 09:00
10:00 Break
ROOM Herbst Pavilion Cowell Theater Golden Gate Room Southside Theater
TRACK
Track 1-Intermediate Tuesday
Track 2 - Intermediate Tuesday
Track 3 - Beginner Tuesday
Track 4 - Advanced Tuesday
10:25
Scala Collections Performance
Craig Motlin
Technical Lead at Goldman Sachs
Close
Scala Collections Performance
Craig Motlin
Technical Lead at Goldman Sachs

Craig Motlin is the technical lead for GS Collections, a full-featured open-source Collections library for Java, and is the author of the framework’s parallel, lazy API. He has worked at Goldman Sachs for 9 years on several teams focusing on application development before moving to the JVM Architecture team to focus on framework development. He studied Computer Science and Finance at University of Pennsylvania.

Tuesday (17th Mar.) 10:25

Java 8 has Streams, Scala has parallel collections, and GS Collections has ParallelIterables. Since we use parallelism to achieve better performance, it’s interesting to ask: how well do they perform? We’ll look at how these three APIs work with a critical eye toward performance. We'll also look at potential optimizations or additions to the Scala Collections Framework

 

  • Persistent collections vs "plain" immutable collections
  • Ctrie vs concurrent hash maps
  • @specialized collections vs primitive collections
  • open addressing vs chaining in hash maps

 

Essential Scala: Six Core Principles for Learning Scala
Noel Welsh
Partner at Underscore
Close
Essential Scala: Six Core Principles for Learning Scala
Noel Welsh
Partner at Underscore

Noel is a partner at Underscore, the leading Scala consultancy. Noel has over fifteen years experience in software architecture and development, and over a decade in machine learning and data mining. 

Tuesday (17th Mar.) 10:25

How can programmers quickly and effectively learn to write idiomatic Scala? This is a question we at Underscore had to answer when developing our own training material. We knew we wanted to go beyond teaching syntax and give developers the concepts and techniques they needed to develop Scala in a systematic and idiomatic way. In this talk I will describe these six concepts, which are: expressions, values, and types; objects and methods; algebraic data types; structural recursion; functors and monads; and type classes.  This talk should be of interest to anyone who is transitioning to, or leading a team that is transitioning to, Scala, and anyone interested in guidelines for idiomatic Scala code.

Toward a Safer Scala
Leif Wickland
Oracle
Close
Toward a Safer Scala
Leif Wickland
Oracle

Leif Wickland writes Scala to mine billions of records for Oracle's Service Cloud. In one of his first jobs, Leif wrote software for livestock auction yards. His boss also owned the town newspaper. When the only reporter fell ill, Leif played journalist for a couple days. He published pieces he's glad don't appear online. His second most noteworthy accomplishment at that job was fixing bugs in 3,000-line functions. The resulting trauma contributes to his penchant for static analysis. Leif lives in Bozeman, Montana, where he cycles, skis, and runs on various surfaces in an attempt to keep up with his neighbors.

Tuesday (17th Mar.) 10:25

Scala has many, well-known WTF LOLs that result from the language too enthusiastically attempting to help the programmer. Scala can also be written across a wide range of styles from the Typelevel to the Better Java. The Scala ecosystem has static analysis and linting tools which can help avoid confusing behavior, baffling compiler messages, and divergent coding styles. A survey of the available tools will prepare attendees to determine which can be best applied in greenfield and existing projects. A case study of a team using static analysis tools over many years will also be presented. Attendees will leave with steps to immediately improve their production builds and strategies to introduce more sweeping changes with time.

Visualize the things
Lee Mighdoll
Nest Labs
Close
Visualize the things
Lee Mighdoll
Nest Labs

Lee started the online service organization at Nest Labs, maker of the Nest thermostat. Prior to Nest, Lee has served in executive and engineering leadership roles at Apple, Twitter, General Magic, ObjectSpeed and WebTV, and has advised a variety of startups. Lee's current interests are in scalable reliable distributed systems, sensor networks, big data, and machine learning.

Tuesday (17th Mar.) 10:25

Sparkle is an open source data service written in Scala to support interactive data visualization analytics. While much of the attention in the open source data analytics community has been on tools for managing big data batch analytics, in the Sparkle project we've been exploring the possibilities enabled by a service that sits between the big data store and the web/mobile UI to support interactive analytics.  With the growth in server processing power and RAM storage, interactive analytics is becoming ever more general purpose and ever more applicable to larger data sets. As this trend continues, interactive analytics will emerge as the third stage in big data pipelines: ETL -> batch analytics -> interactive analytics. We'll discuss the opportunities this new architectural stage presents. We'll demonstrate some recent progress with Sparkle including handling large datasets with Cassandra, integrating batch calculation with Spark, low latency calculation with Reactive streams, and continued work on supporting a standard protocol for web/mobile visualization clients.

11:10 Break
11:35
Life Beyond the Illusion of Present
Jonas Bonér
Co-founder and CTO at Typesafe
Close
Life Beyond the Illusion of Present
Jonas Bonér
Co-founder and CTO at Typesafe

Jonas is the co-founder and CTO of Typesafe building a platform for Reactive Systems—implementing the principles of the Reactive Manifesto, a manifesto that Jonas initiated and co-authored.

Tuesday (17th Mar.) 11:35

The idea of the present is an illusion. Everything we see, hear and feel is just an echo from the past. But this illusion has influenced us and the way we view the world in so many ways; from Newton’s physics with a linearly progressing timeline accruing absolute knowledge along the way to the von Neumann machine with its total ordering of instructions updating mutable state with full control of the “present”. But unfortunately this is not how the world works. There is no present, all we have is facts derived from the merging of multiple pasts. The truth is closer to Einstein’s physics where everything is relative to one’s perspective.

As developers we need to wake up and break free from the perceived reality of living in a single globally consistent present. The advent of multicore and cloud computing architectures meant that most applications today are distributed systems—multiple cores separated by the memory bus or multiple nodes separated by the network—which puts a harsh end to this illusion. Facts travel at the speed of light (at best), which makes the distinction between past and perceived present even more apparent in a distributed system where latency is higher and where facts (messages) can get lost.

The only way to design truly scalable and performant systems that can construct a sufficiently consistent view of history—and thereby our local “present”—is by treating time as a first class construct in our programming model and to model the present as facts derived from the merging of multiple concurrent pasts.

In this talk we will explore what all this means to the design of our systems, how we need to view and model consistency, consensus, communication, history and behaviour, and look at some practical tools and techniques to bring it all together.

Quantifind's story: Building custom interactive data analytics infrastructure
Ryan LeCompte
Quantifind
Close
Quantifind's story: Building custom interactive data analytics infrastructure
Ryan LeCompte
Quantifind

Ryan LeCompte is the infrastructure tech lead at Quantifind. Ryan has been developing backend systems and infrastructure with Scala for the past two years at Quantifind. Interests include concurrency, distributed programming, and data structures.

Tuesday (17th Mar.) 11:35

Building interactive data analytics products on top of large volumes of data is challenging. This talk will outline Quantifind's infrastructure story for building analytics software. We will describe the infrastructure that we originally built on top of existing systems such as Spark/Hadoop. However, the bulk of this talk will focus on a new, custom distributed system that we have built in-house for our predictive analytics software. This new system includes a distributed, in-memory, real-time computing platform that supports fast interactive querying against large volumes of compacted raw data that isn't pre-aggregated. This infrastructure can be viewed as an in-memory combination of map/reduce style computation and indexed structures built from bit sets to offsets in the compacted data. Akka Cluster sits at the core of this system for distributed communication between nodes. We will discuss why we chose to build our own system as well as tips and tricks that we've learned along the way for pushing the JVM for these types of systems.

Scala applications on the cloud
Raghavan N. Srinivas
EMC
Close
Scala applications on the cloud
Raghavan N. Srinivas
EMC

Raghavan "Rags" Srinivas works as an Architect/Developer Evangelist at EMC/Pivotal goaled with helping developers build highly scalable and available systems. As an OpenStack advocate and solutions architect at Rackspace he was constantly challenged from low level infrastructure to high level application issues. His general focus area is in distributed systems, with a specialization in Cloud Computing and Big Data. 

Tuesday (17th Mar.) 11:35

Applications are evolving from a traditional model to be able to Highly Available and Scaleable. Platform as a Service in general and CloudFoundry in particular has substantial industry support and enables hosting of multiple applications. The session will start with an overview of CloudFoundry and how to push Scala/Play applications to the cloud. In addition to ease of deployment, we will also look at what the CloudFoundry has to offer in terms of HA, scaling and security which is built in to the platform and how to control those knobs. Attend this session for a technical overview of CloudFoundry and how to run Scala/Play applications on the cloud and to reap the benefits of HA, scaling, security and so on that the PaaS has to offer.

Shattering Hadoop's Large-Scale Sort Record with Spark and Scala
Reynold Xin
Databricks
Close
Shattering Hadoop's Large-Scale Sort Record with Spark and Scala
Reynold Xin
Databricks

Reynold is a committer and PMC member of Apache Spark. He is also a co-founder of Databricks. Before Databricks, he was pursuing a PhD in the UC Berkeley AMPLab.

He is a frequent speaker on the topic of Big Data and Spark in both industrial (e.g. Spark Summit, Strata Hadoop World, Hadoop Summit) and academic conferences (e.g. SIGMOD, VLDB).

Tuesday (17th Mar.) 11:35

In this talk, we present a case study on how we build high performance distributed programs using Apache Spark and Scala. Based on the case study, we discuss common performance pitfalls and principles for both high level (e.g. task scheduling) and low level (e.g. cache locality) performance optimizations in data intensive applications.

Using Spark and Scala, we recently set a new world record in 100TB distributed sorting in the Sort Benchmark [1]. Participants from all over the world often build dedicated sorting systems using C/C++ for the benchmark, while we enter using a general data processing engine (Spark) and Scala/JVM.

Our program sorted 100TB in 23 mins using 206 i2.8xlarge machines on Amazon EC2. Using only 1/10th of number of machines, our record is 3X faster than last year’s record set by Hadoop MapReduce. Sorting 100TB of data following the benchmark rules generates 500TB of disk I/O and 200TB of network I/O. Our Spark/Scala-based program saturates the bandwidth of 8 SSDs and 10Gbps links on available on these machines during sorting.

12:20 Lunch
13:20
Scala - The Real Spark of Data Science
Vitaly Gordon
Director of Data Science at Salesforce
Close
Scala - The Real Spark of Data Science
Vitaly Gordon
Director of Data Science at Salesforce

Vitaly Gordon is a director of data science at Salesforce, where he and his group develop data products from the most diverse and interesting data sets in the world. Prior to Salesforce, Vitaly was a data science lead at LinkedIn, founded the data science team at LivePerson and worked in the elite 8200 unit, leading a team of researchers in developing algorithms to fight terrorism. His contributions have been recognized through a number of awards including the “Life Source” award, an award given each year deemed most high-impact in saving lives. Vitaly holds a B.Sc in Computer Science and an MBA from the Israeli Institute of Technology.

Tuesday (17th Mar.) 13:20

The toolkit of data scientists is full of new technologies and frameworks that promise huge scale, fast execution and simplified primitives. The problem is, none of these are really important. What separates great data scientists from good, is their ability to reason about data and iterate quickly through ideas. The main tool to achieve this is the programming model they use, and no language is better at this than Scala.

Join Vitaly Gordon, a Scalding contributor, Spark aficionado and the lead of the newly formed data science group at Salesforce on this talk about how Scala is the real spark of data science.

State of the Meta
Eugene Burmako
EPFL
Close
State of the Meta
Eugene Burmako
EPFL
Programming languages enthusiast, PhD student at EPFL, member of Scala team, Scala macros guy.
Tuesday (17th Mar.) 13:20

scala.meta is the culmination of our experience with metaprogramming in Scala. Our design provides an elegant model of the language and solves the problems of compatibility across compilers and tools. Since the announcement of scala.meta at ScalaDays 2014, we've been working hard turning it into reality.

In the talk, we will demonstrate how existing metaprograms can be migrated to our new platform and highlight the benefits that scala.meta brings to macro users, library designers and tool authors. Curious to see how the unification of trees, symbols and types is working? What additional capabilities do our new quasiquotes have? And have we really managed to allow macros to be defined in the same project that uses them? Come over and see for yourself!

Apache Spark: A Large Community Project in Scala
Patrick Wendell
Databricks
Close
Apache Spark: A Large Community Project in Scala
Patrick Wendell
Databricks
Patrick Wendell is an engineer at Databricks as well as a Spark Committer and PMC member. In the Spark project, Patrick has acted as release manager for several Spark releases, including Spark 1.0 and 1.1. Patrick also maintains several subsystems of Spark's core engine. Before helping start Databricks, Patrick obtained an M.S. in Computer Science at UC Berkeley. His research focused on low latency scheduling for large scale analytics workloads. He holds a B.S.E in Computer Science from Princeton University.
Tuesday (17th Mar.) 13:20

This talk will briefly introduce Spark, but focus on various lessons learned maintaining a large code base and developer community in Scala. Some topics that will be discussed are: 1. Interacting with Scala newcomers in the Spark community and our philosophy around exposing Scala features in our public API 2. Maintaining a multi-langauge project baed on Scala. 3. Ecosystem tooling for Scala projects, such as build tools, style checkers, etc 4. Maintaining binary compatibility in a widely used Scala project. 5. Tracking down and reporting bugs in Scala itself. 6. Our overall experience with Scala, Akka, etc. The goal is to provide guidance for other Scala projects and feedback to the broader Scala community.

Leveraging Scala Macros for Better Validation
Tomer Gabel
Wix
Close
Leveraging Scala Macros for Better Validation
Tomer Gabel
Wix

A programming junkie and computer history aficionado, Tomer's been around the block a few times before settling at Wix as a system architect. In the last couple of years he's developed a major crush on Scala, promoting it within the Israeli software industry as part of Java.IL (Israeli Java user group) and Underscore (Israeli Scala user group) and organizing the annual Scalapeño conference in Tel-Aviv.

Tuesday (17th Mar.) 13:20

Data validation is a common enough problem that numerous attempts have been made to solve it elegantly. The de-facto solution in Java (JSR 303) has a number of shortcomings and fails to leverage the powerful Scala type system. The release of Scala 2.10.x introduced a couple of experimental metaprogramming features, namely reflection and macros. In this talk I'll introduce macros by way of a practical example: implementing a full-blown data validation engine, utilizing def macros and a Scala DSL to enable elegant validator definition syntax and call-site.

14:05 Break
14:30
Being Lazy with Scala
Venkat Subramaniam
Agile Developer, Inc.
Close
Being Lazy with Scala
Venkat Subramaniam
Founder
Agile Developer, Inc.

Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., and an instructional professor at the University of Houston.

He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences. Venkat helps his clients effectively apply and succeed with agile practices on their software projects.

Venkat is a (co)author of multiple books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer. His latest book is Functional Programming in Java: Harnessing the Power of Java 8 Lambda Expressions. You can reach him by email at venkats@agiledeveloper.com or on twitter at @venkat_s.

Tuesday (17th Mar.) 14:30

Conciseness, expressiveness, and fluency, among other things, are some of the core strengths of Scala. Beyond the language capabilities, the Scala library has a wealth of capabilities to make expressive and concise code quite efficient. This combination of benefits comes from the functional side of Scala where function composition and lazy evaluations are common place. In this presentation we will learn about being lazy and, by doing so, how we can make the code quite efficient both from the point of view of expression and execution.

Reactive Reference Architecture
Nilanjan Raychaudhuri
Typesafe
Markus Jura
Close
Reactive Reference Architecture
Nilanjan Raychaudhuri
Typesafe
Markus Jura
Tuesday (17th Mar.) 14:30

With the advent of the Reactive Manifesto, the constant development of Java, Scala and toolkit’s such as Akka, we now have the means by which we can create fully distributable applications on the JVM. But even when equipped with this knowledge and set of tools, we still find ourselves looking for a good set of blueprints.

This session will focus on the review of three Reactive Reference Architectures; that will give you a foundation from which you can build a wide variety of distributed software solutions.

Whirlwind tour of the Scala Ecosystem
Josh Suereth
Typesafe
Close
Whirlwind tour of the Scala Ecosystem
Josh Suereth
Typesafe

Josh Suereth is a Senior Software Engineer at Typesafe and the author of “Scala In Depth”. He started his professional career as a software developer in 2004 using programming languages like C++, Perl and Java. In 2009 he began writing the book “Scala In Depth” which provides practical support for using Scala in every day applications. Josh regularly shares his expertise in articles and talks.

Tuesday (17th Mar.) 14:30
Type-level Programming in Scala 101
Joe Barnes
Senior Software Architect at Mentor Graphics
Close
Type-level Programming in Scala 101
Joe Barnes
Senior Software Architect at Mentor Graphics
Senior software architect @ Mentor Graphics :: Web developer :: Lift committer :: NFJS speaker :: Nil
Tuesday (17th Mar.) 14:30

Scala boasts a powerful type system which assists developers in writing and maintaining bug-free software. Unfortunately, many members of the growing Scala community struggle to utilize the Scala type system due to prior experience with poor static type systems or none at all. This talk aims to narrow the gap between haves and have-nots of type-level programming by teaching some basics of type manipulation in Scala.

This presentation is the product of my journey into the Scala type system from a background in Java. I will review the familiar value-level runtime programming, and show how the same logic can be utilized at compile time via the type system. By the end of the talk you will be motivated with a new comfort level in types enabling you to take the plunge into the riches of one of Scala's greatest features.

15:15 Break
15:40
Happy Paths: Functional Constructs in the Wild
James Kionka
PayPal
Joe Walp
PayPal
Close
Happy Paths: Functional Constructs in the Wild
James Kionka
PayPal
Graduate of the University of Illinois at Urbana-Champaign. Went on to work for the university for several years on many websites and technologies, including Java, Perl, REST, Router and firewall automation, and software engineering best practices. Recently joined PayPal to work on issues at scale with Scala, NoSQL, and Akka.
Joe Walp
PayPal
Joe's previous gigs include senior engineer roles at StumbleUpon web startup, DigiCount machine vision, and Lawrence Berkeley National Lab (DOE-JGI) bioinformatics. As a systems engineer, he's wary of ecological impact of contemporary server technologies. As a software engineer, he wants to help more organizations craft a culture of quality.
Tuesday (17th Mar.) 15:40

We will cover how to keep abstractions manageable for diverse teams, while still taking advantage of the type system. This includes borrowing from Scalaz, type lambda syntax, cake pattern, and patterns with Trys, Futures, Options, and all your favorite combinations of these.

Our team at PayPal began as a startup (Stackmob) and has transitioned into an internal infrastructure team (Stingray). Along the way, we went from Java to Scala to Scalaz and back to Scala. James and Joe embody creative tension between functional programming elegance and pragmatic maintainability that guides our Scala dialect choices in a mixed Scala/Java landscape.

S3 at Scale: Async Scala Client with Play Iteratees and Composable Operations
Greg Silin
Sr. Platform Engineer at Nitro
Close
S3 at Scale: Async Scala Client with Play Iteratees and Composable Operations
Greg Silin
Sr. Platform Engineer at Nitro
Greg Silin is a Sr Platform Engineer at Nitro, building the next generation document collaboration platform on the Typesafe Reactive Stack. Greg has been using Play & Scala since 2011 and helped introduce Scala at Nitro. Greg has organized, led & presented at the interactive Nitro Tech Talk Series featuring both Nitro and guest speakers. Prior to Nitro, Greg has worked as a Platform Engineer at the Social Media startup Klout.
Tuesday (17th Mar.) 15:40
At Nitro, we needed a scalable way to perform complex work across all of the data in our S3 buckets, which has billions of keys. We implemented a fully asynchronous client on top of the Amazon Java SDK with throttled & restartable bucket enumerators and composable operations built with Scala Futures & Play Iteratees. We will go in depth on the code and the design and will be opensourcing this client around the time of the talk.
Improving Correctness With Types
Iain Hull
Software Engineer at Workday
Close
Improving Correctness With Types
Iain Hull
Software Engineer at Workday

Iain is a software engineer at Workday using Scala and Akka to deliver their next generation elastic grid. His twin passions are large scale distributed computing and applying clean code to complex problems. He is interested in good library and api design and how this can improve system design, reliability and reduce friction during development.

Tuesday (17th Mar.) 15:40

Object oriented programmers create and use types everyday, however these are usually limited to classes that group and encapsulate data. A type system is a theorem prover, and types are capable of much more. When they are used to express invariants, the type system can prove these hold and show where they do not. Tests prove your code is correct for some values, types can prove your code is correct for all values.

This talk is aimed at Scala developers with a background in object oriented programming who want to learn new ways to use types to improve the correctness of their code. It introduces the topic in a practical fashion, concentrating on the “easy wins” developers can apply to their code today.

We will look at how invariants and preconditions are traditionally expressed with assertions and the runtime errors they produce. We examine how some of these are solved with types in the standard library and elsewhere and the guarantees they provide. Then we show how common invariants can be expressed with custom data types and how these use compiler errors to prevent bugs. This will touch on tagged types, typesafe wrappers, algebraic data types and path dependent types.

Finally the talk demonstrates there is a whole world of types outside of object oriented design and hopes to encourage you to spend the time to discover these for yourself.

 

Type-safe off-heap memory for Scala
Denys Shabalin
EPFL
Close
Type-safe off-heap memory for Scala
Denys Shabalin
EPFL

Denys is the author of Scala 2.11's quasiquotes, a project aimed at making AST manipulation a pleasure. He is also an active contributor to scala/scala repository, hacking on compiler internals, reflection API and macros. At the moment he is working as a PhD student at EPFL performing research in compilers and programming languages.

Tuesday (17th Mar.) 15:40

Wide adoption of Scala has led to it being used in a vast variety of scenarios ranging from simple apps to massively concurrent distributed services handling millions of requests per second.

Scaling doesn't come for free and at certain stage one becomes limited by the underlying platform. A common scaling problem on the HotSpot JVM is performance of garbage collection on large heaps. Past certain heap sizes GC pauses become completely unacceptable for latency-critical applications.

In this talk, we are going to present an alternative approach for type-safe off-heap memory management that doesn't rely on JVM garbage collection. We believe that it can vastly simplify development of latency-critical applications which suffer from GC pauses. Our framework provides tools for allocation and automatic deterministic deallocation of off-heap memory and other system resources without performance overhead.

16:25 Break
16:50
A Skeptic's Look at scalaz' "Gateway Drugs"
Brendan McAdams
Netflix
Close
A Skeptic's Look at scalaz' "Gateway Drugs"
Brendan McAdams
Netflix

Having recently returned from several wilderness years of being an itinerant conference speaker, trainer, & consultant for such fine companies as MongoDB & Typesafe, Brendan now writes Scala code for Netflix, building beautiful APIs with Scalatra & Swagger.

Tuesday (17th Mar.) 16:50

"We've all seen them on the corner of our local software development neighborhoods: FP purists, shamelessly peddling scalaz to unsuspecting developers. Lured in by promises of Free Monoids, Semigroups, and Endofunctors these developers soon seem lost in throes of ecstatic coding. "

To the skeptical and stubbornly practical among us, the above might ring a little true – especially if read in Rob Serling's voice. Images of gibbering horrors lurking in the depths of mathematical perfection swim before our eyes.

But what if there is true value in the world of scalaz? What if it is possible to use these tools for good (and a little bit of evil – it's fun to use learning for evil!) and profit... Without getting hopelessly lost in the opium dens of FP?

In this talk we will look at some of the "gateway drugs" of scalaz: Validation, NonEmptyList, \/, OptionT, and more. How do they work from a practical standpoint? What is their value for real world applications? And just how fun is it to *really* code with these tools?

Akka in Production: Why and How
Evan Chan
Socrata Inc.
Close
Akka in Production: Why and How
Evan Chan
Socrata Inc.

Evan is Principal Engineer at Socrata, Inc. -- bringing the power of data to enhance citizens lives. He loves to design, build, and improve bleeding edge distributed data and backend systems using the latest in open source technologies. He has led the design and implementation of multiple big data platforms based on Storm, Spark, Kafka, Cassandra, and Scala/Akka, including a columnar real-time distributed query engine. He is an active contributor to the Apache Spark project and co-creator of the open-source Spark Job Server. 

Tuesday (17th Mar.) 16:50

Everyone in the Scala world is using or looking into using Akka for low-latency, scalable, distributed or concurrent systems. I'd like to share my story of developing and productionizing multiple Akka apps, including low-latency ingestion and real-time processing systems, and Spark-based applications.

  • When does one use actors vs futures?
  • Can we use Akka with, or in place of, Storm?
  • How did we set up instrumentation and monitoring in production?
  • How does one use VisualVM to debug Akka apps in production?
  • What happens if the mailbox gets full?
  • What is our Akka stack like?

I will share best practices for building Akka and Scala apps, pitfalls and things we'd like to avoid, and a vision of where we would like to go for ideal Akka monitoring, instrumentation, and debugging facilities.

Anatomy of a Modern Play Application
Marconi Lanna
Originate
Close
Anatomy of a Modern Play Application
Marconi Lanna
Originate

Marconi has been writing software for fun and profit since last century, when the Internet was still black & white and silent. He loves computers, Internet, curly braces, angle brackets, Scala, and working with great people. Marconi is Senior Software Innovator at Originate in Toronto and spends most of his free time trying to finish reading the Internet or getting his little daughter out of trouble. He has been programming in Scala since 2010 and is not afraid of knowing what is a monad anymore.

Tuesday (17th Mar.) 16:50

Have you ever wanted to take your Play application and development workflow to the next level? Make it easier, faster, more productive, and fun? In this very opinionated talk we investigate, layer by layer, how to fully explore Play's typesafe and reactive potential:Polyglot persistence with Slick and NoSQL, Future-based services architecture, Coast-to-coast JSON, Effective templates, Practical asset management pipeline, State-of-the-art internationalization, Advanced end-to-end testing and debugging, Enhanced error reporting, Leveraging Typesafe Config HOCON, Custom environments, Jumpstarting your projects with Typesafe Activator, Lessons learned: our experience with large projects.

 

Function-Passing Style, A New Model for Asynchronous and Distributed Programming
Heather Miller
EPFL
Close
Function-Passing Style, A New Model for Asynchronous and Distributed Programming
Heather Miller
EPFL

I'm a PhD student in Martin's group and regularly give talks at industrial conferences like Strange Loop, and academic conferences like OOPSLA and ECOOP.

Tuesday (17th Mar.) 16:50

In this talk, I'll present some of our ongoing work on a new programming model for asynchronous and distributed programming. For now, we call it "function-passing" or "function-passing style", and it can be thought of as an inversion of the actor model – keep your data stationary, send and apply your functionality (functions/spores) to that stationary data, and get typed communication all for free, all in a friendly collections/futures-like package!

17:35 Break
18:00
The Scalactic Way
Bill Venners
President of Artima Inc.
Close
The Scalactic Way
Bill Venners
President of Artima Inc.

Bill Venners is the lead developer and designer of ScalaTest, an open source testing tool for Scala and Java developers, and coauthor with Martin Odersky and Lex Spoon of the book, Programming in Scala.

Bill is president of Artima Inc, publisher of Scala books and co-founder of Escalate Inc, provider of Scala training and consulting.

As well as the lead of ScalaTest, he is also the lead developer of Scalactic, a library of utilities related to quallity.

Tuesday (17th Mar.) 18:00

Scala is so flexible that it can be hard to know what it wants. Its syntax will give way and let you program in many different styles. The Scalactic library, on the other hand, quite opinionated about how you should program in Scala. It is guided by a specific philosophy. In this talk you'll find out what's in Scalactic, why it is there, and how you can take advantage of it in your projects.

banana-rdf: Interacting with the Web of Data in Scala
Alexandre Bertails
Pellucid Analytics
Close
banana-rdf: Interacting with the Web of Data in Scala
Alexandre Bertails
Pellucid Analytics

Alexandre Bertails does Scala and Linked Data at Pellucid Analytics in New York, NY. He was previously a W3C Team member based at MIT.

Tuesday (17th Mar.) 18:00

banana-rdf is a Scala library for RDF and Linked Data. It makes it easy to manipulate RDF data on the JVM (abstracting the Java libraries Jena and Sesame, or using the pure Scala implementation Plantain) and in the browser thanks to scala-js. It adds type-safety and immutability without sacrificing performances.

RDF has now become ubiquitous on the Web. Thanks to schema.org (Google, Yahoo, Microsoft, Yandex) or the Open Graph Protocol (Facebook), Web authors can annotate Web pages with RDF data. More recently, the LDP Working Group at W3C (IBM, Oracle, ...) has led the development of the Linked Data Platform, providing a way to interact (read and write) with such data.

In this talk, I will show how one can leverage such a Web of Data using banana-rdf.

Easy Scalability with Akka
Michael Nash
Delivery Executive, BoldRadius Solutions
Close
Easy Scalability with Akka
Michael Nash
Delivery Executive, BoldRadius Solutions

For over thirty years, Michael has designed, developed, shipped and consulted on software development projects for clients of all shapes and sizes. As an advocate for software craftsmanship with expertise in project management and architecture, Michael was amongst the earliest of adopters of the Typesafe Stack, with over 5 years experience working with Scala, Akka and Spray.

 

Tuesday (17th Mar.) 18:00

Every enterprise developer these days needs to be an expert in building REST API systems to enable mobile applications, SOA architectures and single page javascript web apps. The challenge is that most REST API backends can’t quickly scale to the numbers of requests needed in a modern enterprise. In this talk, we will introduce enterprise developers to Akka in an engaging and simple way and give them the confidence that they could quickly and easily build an enterprise web service that scales in their own workplace. This live coding session will showcase Akka’s power by taking an existing REST API and improving its throughput drastically by introducing a distributed actor system. Starting from a simple RESTful application exposing read and write operations, we’ll introduce a series of Akka features and patterns, scaling the performance and reliability of the system progressively.

We will introduce the Actor pattern, and show how Akka brings this pattern easily and simply to the JVM. A simple actor system will separate concerns and serve as the basis of the exercise. Clustering will allow the system to grow and shrink dynamically, across one or more machines, with messages being passed transparently between nodes as needed. CQRS (Command-Query Response Separation) will decouple writes from reads and introduce non-blocking message handling, and Akka Persistence will make nodes tolerant to failure and avoid data loss.

We’ll show how simple decoupling via message-passing of the system components allows you to scale each part of your service to match changing load.

If you need more write performance, you can increase the number of nodes handling writes. Need more REST-API capability, increase the nodes binding to HTTP. Each element is independently elastic for full tuneability.

Throughout the process, we’ll use Gatling to gauge our results in the form of handled requests per second. Watch our application go from Fast to Enterprise-Level Web Scale in 45 minutes or less, with very little code.

Scala Records: Extensible records and type-indexed maps
Jan Christopher Vogt
x.ai
Close
Scala Records: Extensible records and type-indexed maps
Jan Christopher Vogt
x.ai

Software Engineer at x.ai. Scala Slick developer. Scala Records developer. Frequent speaker at Scala conferences. Ex-LAMPion (Scala Team EPFL Lausanne).

Tuesday (17th Mar.) 18:00

Scala Records is a new, easy to use library implementing extensible records and type-indexed maps (TMaps) based on intersection types. Extensible records are a more modular alternative to case classes.Type-indexed maps are type-safe maps without the need for key names.

We’ll live code to demo records and everyday use cases. We’ll implement implict-free, macro-free T-Maps live from scratch in only a few lines of code to show how records can be encoded as intersection types.

Macros on top allow nicer syntax and additional features and safety. TMaps combined with the Reader pattern are a perfect fit for functional dependency injection.

 

18:45
Community Party: St. Patricks Day sponsored by ticketfly
Close
Community Party: St. Patricks Day sponsored by ticketfly
Tuesday (17th Mar.) 18:45

St. Patricks Day themed drinks and food will be provided and this is a great chance to network with speakers and other members of the Scala Community.  Special thanks to our sponsor ticketfly!

 

 

Wednesday (18th Mar.)
08:00 Registration Open
09:00
Technical Leadership from wherever you are
Dianne Marsh
Director of Engineering Tools at Netflix
Close
Technical Leadership from wherever you are
Dianne Marsh
Director of Engineering Tools at Netflix

Dianne Marsh is a Director of Engineering for Netflix in Los Gatos, CA, where she leads  a team responsible for tools and systems used by nearly all engineers in the company for continuous integration, delivery and deployment to the AWS cloud. Her team builds software to support build tools as well as cloud deployment and management, used both internally and often released as open source tools to the broad community. In 2013, Dianne co-authored Atomic Scala, an introductory book on Scala, with Bruce  Eckel. Dianne is also active in conference organization and speaking. Dianne earned a Master of Science degree in computer science from Michigan Technological University.

Wednesday (18th Mar.) 09:00

Leadership isn’t something that you obtain with a manager role. It’s something that you *are*. Leaders exist everywhere in an organization. Leaders lead up, sideways, and down in a hierarchy. How do they do that? Why do they do that? How do they maintain their technical acumen if they relinquish their hands-on roles? You may choose to use your leadership skills to lead a project, lead an organization or simply to rally your coworkers. Or, you may just build better communication with your manager. You will leave this talk with a better understanding of what your leadership tendencies are, and how you might grow as a leader, regardless of whether or not you want to become a manager.

10:00 Break
ROOM Herbst Pavilion Cowell Theater Golden Gate Room Southside Theater
TRACK
Track 1: Intermediate Wednesday
Track 2 - Intermediate Wednesday
Track 3 - Beginner Wednesday
Track 4 - Advanced Wednesday
10:25
Scala: Power and Versatility
Shadaj Laddad
Close
Scala: Power and Versatility
Shadaj Laddad

Shadaj loves to program. He has programmed in Ruby, Python, C, Java, Javascript, and Scala—his favorite. Shadaj hosts his projects on GitHub, and has a channel on Youtube. He has presented at OSCON 2014, Scala Days (2012, 2013, 2014), and the Bay Area Scala Enthusiast group showing his Scala projects. Besides programming, he likes Math and Science. In addition, he is also an active member of his school community and has been Student Body President. Shadaj loves spreading his love of technology and started TechTalks—a program that brings guest speakers to share their knowledge and enthusiasm with students at his school. When not doing his school work or programming, he plays the sitar, and games, some of which he created.

Wednesday (18th Mar.) 10:25

Scala is an amazingly powerful tool for all sorts of applications, from web and mobile to desktop and the cloud. Monadic patterns in Scala let me express both sequential and asynchronous data flows easier than ever. I could use these patterns in an SBT plugin for submitting solutions to Google Code Jam problems where I could link together REST requests with local computations. Scala futures and Akka let me scale bioinformatics algorithms both up and out. Scala.js let me use bioinformatics algorithms in the browser—one language to rule them all! Combining Scala.js and Play helped me build web applications that are easy to use and fun to build! In this talk, I will present a variety of projects that show Scala's power and versatility.

How is Scala Made
Grzegorz Kossakowski
Typesafe
Close
How is Scala Made
Grzegorz Kossakowski
Typesafe
Wednesday (18th Mar.) 10:25

When I joined Typesafe almost three years ago the big question about Scala was: can we improve quality and stability but keep fast innovation pace? My team has been refining its answer ever since. I’ll tell you the story how we approached this dilemma. We’ve always circled around one theme: automate, automate, automate!

Very early on we’ve realized that we can improve Scala’s quality only if we change how Scala is made. In the talk I’ll dive into Scala’s contribution process and see how it has changed. We’ll watch how various infrastructure pieces evolved over time and how it enabled opening up development of Scala. We’ll see if it’s getting harder or easier to contribute to Scala.

I'll describe our preferred way of introducing new compiler features that we are using during Scala 2.11 and 2.12 development. Finally, I’ll talk about what future holds when it comes to day-to-day operation of the Scala project. We’ll see how compiling millions of lines of Scala code automatically gives people hacking on Scala superpowers they need to take Scala into new directions.

 

Some Things Never Change: Immutable Data in the Real World
Kelsey Gilmore-Innis
PagerDuty
Close
Some Things Never Change: Immutable Data in the Real World
Kelsey Gilmore-Innis
PagerDuty

Kelsey Gilmore-Innis is a back-end engineer at PagerDuty, where she uses Scala & functional programming to build powerful, scalable software systems that consistently wake you up in the middle of the night (when they’re supposed to, any way.) She cofounded the Lambda Ladies group for women in functional programming and strives, with her fellow Lambda Ladies, to write code with charisma, uniqueness, nerve and talent.

Wednesday (18th Mar.) 10:25

It’s a deceptively simple concept: programming is safer when values don’t change. There’s plenty of depth to explore when applying that concept to real world programs. We'll start by looking at the history of immutability in programming and delve into the details of how vals work in Scala. From there, we'll go beyond the truism that immutable data makes concurrency easier and examine other benefits and tradeoffs in the practice of programming with immutable values. We'll discuss some elegant and counter-intuitive outcomes of functional data structures that take advantage of immutable data. With those in mind, we’ll take a hard look at the performance of the standard library implementations of immutable collections in Scala. Finally, we'll explore frameworks in and out of Scala that do exciting things with immutable data, from the database level (append-only DBs) to data processing (Summingbird) to front-end development (Facebook’s React & Om).

The swiss army knife of generic programming: shapeless's TypeClass type class in action
Miles Sabin
Chuusai Ltd.
Close
The swiss army knife of generic programming: shapeless's TypeClass type class in action
Miles Sabin
Chuusai Ltd.

Miles has been doing stuff with Scala for the last ten years, most recently with _.underscore and Precog. His best known project, the Scala generic programming library shapeless, is the weapon of choice wherever boilerplate needs to be scrapped or arities abstracted over.

Wednesday (18th Mar.) 10:25

The TypeClass type class (yes, you read that right), introduced to shapeless 2.0.0 at the beginning of 2013 by Lars Hupel of Scalaz fame, deserves a great deal more attention than it has received up until now. Built on top of shapeless's core generic programming primitives it allows instances for a wide variety of useful type classes to be derived for Scala ADTs with no (or at most minimal) boilerplate.

But until recently the types it could derive for (families of Scala case classes sharing a common sealed trait and with fairly minimal support for recursion) was quite limited. In shapeless 2.1.0 its scope has been significantly expanded to include non-case classes (so long as they are sufficiently "case class-like") and more complex recursion patterns (eg. through types outside the immediate family). It now also allows for the provision of specialized, non-derived, instances for specific case class members of the families being derived for.

This means that TypeClass is now the tool of choice for many important generic programming problems in Scala.

In this talk I will demonstrate this with example derivations of ordering and type-safe equality type classes, serialization and deserialization and a variety of other folds, unfolds and transformations which would otherwise require huge amounts of tedious boilerplate to implement.

11:10 Break
11:35
The Unreasonable Effectiveness of Scala for Big Data
Dean Wampler
Big Data Architect at Typesafe & O'Reilly Author
Close
The Unreasonable Effectiveness of Scala for Big Data
Dean Wampler
Big Data Architect at Typesafe & O'Reilly Author

Dean Wampler is the Big Data Architect at Typesafe and specializes in the application of Functional Programming principles to “Big Data” applications, using Hadoop and alternative technologies. 

Wednesday (18th Mar.) 11:35

"Big Data" encompasses more than large data volumes. It's also about flexible approaches to ingesting, managing and leveraging data sets of any size. That flexibility demands tools that are equally flexible, tools that are built on the right abstractions. Functional programming is the source of those abstractions, because FP is based on Mathematics and working with data is essentially doing Mathematics. Because of Scala's basis in functional programming, combined with its general flexibility and JVM roots, it has emerged as the de facto standard for Big Data programming. In fact, Big Data projects are driving Scala adoption right now. This talk shows you why.

We'll examine code examples from the following tools:

  • Scalding and Summingbird - for Hadoop and Storm.
  • Spark and H2O - the Next Generation...
  • Spire and Algebird - Mathematics.

Finally, we'll discuss that natural synergy between functional programming and SQL, the venerable standard for data processing.

Delimited dependently-typed monadic checked exceptions in Scala
Jon Pretty
Propensive
Close
Delimited dependently-typed monadic checked exceptions in Scala
Jon Pretty
Propensive

Jon 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.

Wednesday (18th Mar.) 11:35

Scala does not have checked exceptions: the compiler will not consider a failure to handle exceptions as an error. This is, perhaps, the single area in which Java offers better static safety than Scala, but offers no way for this checking to be turned off when it's not wanted, which frequently leads to the compiler being a hindrance rather than a help to developers.

Jon will demonstrate how Scala's type system can be persuaded to enforce checked exceptions, with negligible syntactic burden at the call site, supporting validation-style aggregation of exceptions, and with the flexibility to be turned on and off as desired.

Scala IDE from 0 to 4.0
Iulian Dragos
Typesafe
Close
Scala IDE from 0 to 4.0
Iulian Dragos
Typesafe

Iulian Dragos has been working on Scala since 2004, when he joined Martin Odersky's research lab at EPFL. He wrote the JVM backend, the bytecode optimizer and worked on various other parts of the compiler. He also implemented type-directed specialization for Scala.

He earned his PhD degree at EPFL in 2010. He joined Typesafe from day 1, a start-up founded by the language creator, Martin Odersky, where he worked on development tools for Scala (the Eclipse plugin for Scala). Currently he is leading the Spark team at Typesafe, with a focus on making Reactive Applications with Spark a reality.

 

Wednesday (18th Mar.) 11:35

This is an experience report in building an open-source soft real-time character processing system (an IDE for Scala).

Version 4.0 has been in development for more than 2 years and came up with a slew of new features and performance improvements. But how did we get there? In this talk I'll go through the most important features in 4.0 and cast a look back at previous releases, showing how we got from a bare-bones IDE to a fully-fledged IDE for Scala. I'll touch on technical aspects, but also on the social and open-source dynamics we faced along the way.

 

Grok: an optimistic mini-library for efficient and safe parsing
Rex Kerr
University of California, San Francisco
Close
Grok: an optimistic mini-library for efficient and safe parsing
Rex Kerr
University of California, San Francisco

I am a neuroscientist who studies behavior, how neurons give rise to behavior, and how behavior and neurons change with age (all in simple model organisms). The output of experiments is typically lots of data which must be validated and input into analysis routines (hence the talk topic).

I have given several dozen scientific presentations at a variety of scientific conferences. I also talked about benchmarking at ScalaDays 2013.

Wednesday (18th Mar.) 11:35

Suppose you have some input--maybe a configuration file, maybe a log, maybe structured numeric data. Suppose you want to extract some key information--maybe a little, maybe as much as you can. You think you have a pretty good idea of the format, but the input needs validation and of course there could always be errors. If there is an error, you'd like to know something about what or where it was. What should you do?

You could try using primitives like String.split and .toInt, but they're fragile, don't pass back detailed information, and are incredibly slow in the face of numerous minor (recoverable) errors. Regex matching gives more flexibility in specifying what you want, but recursion is awkward and again, information about errors is hard to come by.

You could encode all possibilities for failure into your types, including how to pass back the relevant information about errors, but then you spend most of your effort thinking about every which way something can go wrong, and more effort handling the error cases than the successes, when you really want to think about success.

Grok provides an alternative by doing everything wrong: it is mutable, low-level, and has non-local return flow (via stackless exceptions). But it often provides just what you need: robustness to error, low-effort collection of error information, and speed, all while allowing you to optimistically focus on getting the information you need out of the input.

This talk will give a number of examples of input and validation tasks, showing the strength and weakness of various approaches, mostly but not exclusively focusing on those where Grok is compelling.

12:20 Lunch
13:20
Akka HTTP: the Reactive Web Toolkit
Roland Kuhn
Akka Tech Lead, Typesafe Inc.
Close
Akka HTTP: the Reactive Web Toolkit
Roland Kuhn
Akka Tech Lead, Typesafe Inc.

Roland Kuhn is leading the Akka project at Typesafe, a co-author of the Reactive Manifesto and of the book Reactive Design Patterns, co-teaching the Coursera course "Principles of Reactive Programming" and a passionate open-source hakker. He also holds a PhD in particle physics and has worked in the space industry for several years. See also rolandkuhn.com.

 

Wednesday (18th Mar.) 13:20

If you want to provide or consume HTTP services with your Actors then this talk is for you: Akka HTTP is the successor of spray.io and building on this excellent foundation it takes reactive web interactions to the next level. Fully asynchronous and non-blocking, a type-safe and very powerful declarative API, an immutable HTTP model without compromises, all these are perfectly fitted to the Actor world. And being based entirely on Akka Streams enables interoperation with all other Reactive Streams implementations for producing or consuming data.

This presentation details how Akka HTTP is structured, how it is used and why you will not want to use anything else after having tried it.

Under the Hood of Scala Implicits
Alexander Podkhalyuzin
JetBrains
Close
Under the Hood of Scala Implicits
Alexander Podkhalyuzin
JetBrains

Alexander graduated from Saint-Petersburg State University in 2010, department of mathematics, he has a lot of prizes from international and regional mathematical competitions. In 2008, Alexander started to work for JetBrains, where he became Scala plugin for IntelliJ IDEA team leader. From 2012 he started teaching Scala in Saint-Petersburg Academic University.

Wednesday (18th Mar.) 13:20

Implicit conversions and implicit parameters are fundamental and unique features of Scala that are powerful at the same time. To use these features to their maximum potential, and do so with confidence, you have to understand the specifics of how Scala compiler’s implicits search works. I will cover this topic in details, including ways you can optimize the implicits search algorithm in your library.

The second part of my session will focus on IntelliJ IDEA and how to leverage your IDE for working with implicits. Among other helpful IDE features, I will show how to debug implicits in IntelliJ IDEA.

As examples we’ll take a look at a few Scala libraries, including Spray with its well-known Magnet pattern.

On top of that, during my talk I’ll show you a few new tips and tricks on how to be more efficient by using IntelliJ IDEA’s hidden gems when working with Scala.

Scalable task distribution with Scala, Akka and Mesos
Dario Rexin
Mesosphere Inc.
Close
Scalable task distribution with Scala, Akka and Mesos
Dario Rexin
Mesosphere Inc.

As a Distributed Systems Engineer at Mesosphere, Dario is working on software that simplifies data center management and maximizes resource utilization and fault tolerance. Before joining Mesosphere in April 2014, Dario worked in the Data Science Team at XING, where he developed recommendation and graph analysis systems. He completed his B. Sc. in Computer Science at the University of Applied Sciences in Hamburg. His thesis was focused on building scalable and fault tolerant systems.

Wednesday (18th Mar.) 13:20

With evergrowing numbers of servers in our data centers, operating these servers has become a complex task. In addition there is a trend towards writing microservices instead of monolithic systems, because they are easier to maintain and deploy independently. Because of the fewer resources such a microservice needs, we traditionally divide our large servers into smaller pieces using VMs, which leads to even more servers that need to be operated.

Mesos takes a different approach. Instead of dividing server nodes into smaller pieces, it creates a pool of all the resources in the cluster. These resources can then be used by all applications in the cluster, very similar to a threadpool on a local machine. This makes it easy to create fault tolerant, heterogeneous systems, because tasks do not have a fixed amount of resources allocated to them. They get their resources assigned on demand.

In this talk, we will learn how the distributed init and control system Marathon (https://github.com/mesosphere/marathon) utilizes Scala and Akka to reliably deploy applications in a cluster and how it ensures that a configured number of instances is always running. In addition, we will see how Marathon coordinates rolling upgrades of hierarchical application groups with interdependencies and makes sure that a minimum number of instances is kept running to serve the incoming requests and how it prevents faulty deployments from destroying the cluster.

Project Valhalla: The good, the Bad and the Ugly
Vlad Ureche
EPFL
Close
Project Valhalla: The good, the Bad and the Ugly
Vlad Ureche
EPFL

Vlad Ureche is a PhD student in the Scala Lab at EPFL, where he's working on optimizing high-level patterns in the Scala programming language down to fast JVM bytecode. His main project, miniboxing (scala-miniboxing.org), is aimed at compiling generic classes down to very efficient bytecode. Vlad also contributed to the Scala compiler in the areas of specialization, the JVM backend and on the scaladoc tool, where you may have seen the diagrams and the implicit member listings he developed.

Wednesday (18th Mar.) 13:20

Project Valhalla promises to add virtual machine support for value classes and specialization in Java. However, the assumptions built into the low level specialization scheme are not compatible to all of the Scala programming language features, such as existentials and variance: there is a semantic gap between the Java specialization in Project Valhalla and the Scala programming language.

In this talk I will explain the inner working of the specialization in Project Valhalla, highlighting where the semantics in Java and Scala diverge. We will go through several language-level solutions to bridge this gap, each with its own trade-offs, finally converging towards a scheme that allows Scala to define new specialized classes and to interoperate with Java-defined ones.

With all facts on the table, we can look at the changes necessary in the Scala type system and the patterns that will become invalid. In doing so, we'll be able to isolate what's good about embracing Project Valhalla, what's bad and what's ugly: those patterns that will just have to go away. Expect to learn about reified types, bytecode transformations and their correspondence to high-level Scala code. 

14:05 Break
14:30
Exercise in machine learning
Jan Machacek
Cake Solutions
Close
Exercise in machine learning
Jan Machacek
Cake Solutions

Jan Machacek is a passionate technologist with hands-on experience with the practical aspects of software delivery. He shares his expertise and passion for software as the editor of the Open Source Journal, regularly contributes to open source projects and speaks at conferences in the UK and abroad. Jan is the author of many open source projects (various Typesafe Activators, Reactive Monitor, Akka Patterns, Akka Extras, Scalad, Specs2 Spring and others), books and articles.

Wednesday (18th Mar.) 14:30

Jan will build a system that collects data from a wearable fitness tracker, communicating through a mobile app to an actor system, which processes the data, looking for type of exercise, effort and checks for proper form. The core of the talk is the actor system in Akka and Scala that—with help from Spark—analyses the data, and exposes appropriate REST APIs. The rest of the codebase includes some C and C++ for the wearables, and Swift in the mobile application.

The road to sbt 1.0 is paved with server
Eugene Yokota
Typesafe
Josh Suereth
Typesafe
Close
The road to sbt 1.0 is paved with server
Eugene Yokota
Typesafe

Eugene Yokota (@eed3si9n) works on sbt at Typesafe. He has also written and maintained sbt plugins like sbt-assembly and sbt-buildinfo. When he can find time, he also works on personal projects like scalaxb, scopt, and treehugger.scala and writes blog articles on eed3si9n.com, 'learning Scalaz' series, and translates Scala documentations into Japanese.

Josh Suereth
Typesafe

Josh Suereth is a Senior Software Engineer at Typesafe and the author of “Scala In Depth”. He started his professional career as a software developer in 2004 using programming languages like C++, Perl and Java. In 2009 he began writing the book “Scala In Depth” which provides practical support for using Scala in every day applications. Josh regularly shares his expertise in articles and talks.

Wednesday (18th Mar.) 14:30
If I Only Had a Brain...In Scala
Julie Pitt
Order of Magnitude Labs
Close
If I Only Had a Brain...In Scala
Julie Pitt
Order of Magnitude Labs

Julie is an engineering leader-turned-entrepreneur building brain-inspired software capable of truly intelligent behavior. Much of her career has been spent building scalable, testable, resilient services and APIs in a variety of environments, from Netflix to government research institutions. Julie first made the switch from Java to Scala in 2012 and has never looked

 

 
Wednesday (18th Mar.) 14:30

I'm going to take you on a journey. We will go deep inside the human brain to explore some age-old questions. What does the brain do? Is it many things, or is there one algorithm to rule them all? Then we will get to the fun part. How do you build one? Together, we will explore why Scala is the ideal language in which to build brain-inspired AI algorithms in surprisingly few lines of code.

Functional Natural Language Processing with Scala
Ignacio Cases
PhD PhD student at Stanford in Computational Linguistics
David Hall
Ph.D. student in EECS at UC Berkeley
Close
Functional Natural Language Processing with Scala
Ignacio Cases
PhD PhD student at Stanford in Computational Linguistics

Ignacio Cases is a Ph.D. student in Computational Linguistics at Stanford, working with Professors Chris Manning and Dan Jurafsky, and member of the Stanford NLP group of the Artificial Intelligence Lab. He is the author of Sapanu, and has contributed to Breeze. 

David Hall
Ph.D. student in EECS at UC Berkeley
David Hall is a Ph.D. student in EECS at UC Berkeley, where he works with Professor Dan Klein. He is the creator of the Breeze, Epic, and Puck libraries. His research interests are in Natural Language Processing and Machine Learning, particularly syntactic parsing and computational historical linguistics. He has a B.S. and M.S. from Stanford University, both in Symbolic Systems. He is the recipient of the 2012 Google Ph.D. Fellowship in Natural Language Processing, the 2011 EECS Outstanding Graduate Student Instructor award, and a distinguished paper at EMNLP 2012.
Wednesday (18th Mar.) 14:30

A key aspect of the success in the research and application of Natural Language Processing (NLP) systems relies on the use of methodological approaches developed and tested in other disciplines, from Linguistics and Cognitive Sciences to Information Theory and Machine Learning. The purpose of this presentation is to show how some of these methodologies can be successfully applied to a variety of scenarios thanks to the power and versatility of Scala. We will provide details on pragmatic implementations of these methodologies using functional programming approaches, resulting in correct and performing systems that can be used in industry for a variety of NLP tasks.

After an introduction to the building blocks of NLP, we will move to a more advanced topics in statistical parsing making use of ScalaNLP, a set of Scala libraries for processing natural language. We will introduce Epic, an NLP library with models available for eight languages. We will explain how to use this library, and then will drill down into how you can extend the system to build your own models while introducing some of the theory of Machine Learning for NLP. We will also present a library that makes extensive use of the facilities that Scala provides to build external Domain Specific Languages (DSL). These external DSL can be utilized by linguists and data scientists to provide accurate transcriptions and transliterations of texts, allowing them to obtain relevant quantitative and qualitative results from the linguistic corpora. Finally, we will discuss examples of large, complex systems that combine different modules from NLP and Natural Language Understanding using the Stanford NLP libraries, including an application that identifies metaphors in the web. Along the way, we will describe the relevant parts of the Scala Breeze numerical computing library, and how Breeze and Scala make building these kinds of systems easier.

15:15 Break
15:40
Scala needs YOU!
Dick Wall
Typesafe
Close
Scala needs YOU!
Dick Wall
Typesafe

Dick Wall is co-founder and CEO of Escalate Software, LLC, provider of Scala training and consulting. He has been developing primarily in Scala since 2008, developing both commercial and open source projects. Dick contracts as a developer advocate with Typesafe, also co-hosts the Scalawags podcast and founded the Bay Area Scala Enthusiasts, one of the first Scala programming user groups in the world.

Wednesday (18th Mar.) 15:40

Enlist now!

Ask not what your Scala can do for you, but what you can do for your Scala!

Never, in the field of developing Scala, has so much been owed by so many to so few.

Yes, this is a propaganda talk. It's a talk about getting involved, what you can do to help Scala development, and how to do so. We will cover:

 

  • Documentation submissions
  • Bug fixes
  • Library contributions and Larger Scala language changes (SIPs, etc)

 

It might be propaganda, but it will not be technically light. Instead we will have practical demos and details of how to contribute each of the above, and why you should do so.

If you have ever thought about volunteering some time on the Scala compiler, Libraries, Documentation or anything else in the Scala-verse, come and find out how.

CODE, FOR VICTORY!

The JVM Backend and Optimizer in Scala 2.12
Lukas Rytz
Typesafe
Close
The JVM Backend and Optimizer in Scala 2.12
Lukas Rytz
Typesafe

Lukas started hacking in Scala and on its compiler during his studies at EPFL and he joined Martin Odersky's research lab in 2008. He received his PhD degree in 2014 for his research work on type systems for effect tracking. During his time at EPFL he implemented Scala's support for named and default arguments and worked on various parts of the Scala language and compiler.

Lukas joined the Scala team at Typesafe in 2014, where he mainly works on the new JVM backend and optimizer for Scala 2.12.

Wednesday (18th Mar.) 15:40

Scala 2.12 will target JDK 8.

In the first part of my talk I will present the technical details of how the next version of Scala takes advantage of the new features provided by the platform. At the language level, function types in Scala and Java are compatible in both directions. At the bytecode level, Scala generates function objects in the same way as Java. I will also discuss the utility of Java's default methods in interfaces for compiling Scala traits.

The second part of the talk is about the new bytecode optimizer available in Scala 2.12. A compile-time optimizer can improve performance even when running on an optimizing runtime like the JVM. I will outline the differences and advantages of the new optimizer compared to the current one in Scala 2.11. I will also show the fundamental limitations of the optimizer imposed by binary compatibility and separate compilation.

Legacy modernization from monolithic PHP to reactive SOA
Mike White
Hootsuite
Close
Legacy modernization from monolithic PHP to reactive SOA
Mike White
Hootsuite

Mike is a Senior Engineer at Hootsuite, building key pieces of the service-oriented architecture during its drive to “everything as a service”. With roots in enterprise legacy modernization (COBOL and Fortran to JavaEE), Mike has embraced Scala and SaaS and he's not looking back. When not pushing to production, Mike enjoys pushing his kids (on swings).

Wednesday (18th Mar.) 15:40

There are two types of 5 year old software startups: the ones that are embarrassed about the technical debt they accrued during rapid growth, and the ones that failed. To survive and scale towards 100M users, Hootsuite is undergoing an architectural transformation from our legacy monolithic PHP to reactive SOA with Scala, Akka, and Play. How do we pivot to a new architecture while retaining identical functionality with low risk and zero downtime? How do we interface new reactive systems with legacy systems that can’t keep up?

This talk will detail two modernization projects accomplished in 2014. The first was our user authentication and information microservice, which we developed, migrated to and deployed with zero downtime. The second is a URL shortening and image hosting service that provides both an API to our web and mobile products and a user interface.

Reasonable RPC with Remotely
Rúnar Bjarnason
Verizon OnCue
Timothy Perrett
Verizon OnCue
Close
Reasonable RPC with Remotely
Rúnar Bjarnason
Verizon OnCue

Rúnar Bjarnason is a senior software developer at Verizon OnCue. Rúnar is co-author of the book "Functional Programming in Scala", and an occasional speaker and blogger on Scala and functional programming.

Timothy Perrett
Verizon OnCue
Timothy Perrett is a software architect at Verizon OnCue. Timothy is author of "Lift in Action", and a long-time Scala enthusiast.
Wednesday (18th Mar.) 15:40

Remotely is an elegant, purely functional machine-to-machine communication library developed in Scala at Verizon. Remotely is fast, lightweight, and models network operations as a monad. It features compositional, reusable protocols and codecs, where the compatibility between client and server is enforced using Scala's type system. It has support for TCP endpoints, with combinators for encryption, circuit-breaking, and load-balancing. In this talk we describe the API of Remotely, and delve into its design and implementation.

16:25 Break
16:50
A Guided Tour of a Distributed Application
Christopher Hunt
Typesafe
Close
A Guided Tour of a Distributed Application
Christopher Hunt
Typesafe
Wednesday (18th Mar.) 16:50

In this talk we will present our discoveries having written a new, distributed application named Typesafe ConductR. We will present the application in order to set the scene, and then we will describe how we've applied akka-cluster, akka-streams, akka-http and akka-data-replication (Conflict Free Replicated Data Types). This is a talk for anyone writing a distributed application using Akka, but may also be useful if you have an operations focus within your organization.

Why Scala.js
Li Haoyi
Dropbox
Close
Why Scala.js
Li Haoyi
Dropbox

Haoyi is a software engineer at Dropbox who writes Python and Coffeescript during the day and Scala/Scala.js at night.

Wednesday (18th Mar.) 16:50

Scala.js is a Scala to Javascript compiler that lets you write Scala source code, compile it to Javascript, and run it in the browser. There are several other X to Javascript compilers, for X in {Typescript, Dart, Clojure, Ruby, Python, C#, Java, Haskell...} and dozens of other languages. So, then, what's interesting about Scala.js?  In this talk, I will cover how language features (or misfeatures!) such as: Type Erasure, Static Typing, Macros, Object-Oriented-ness, Specified-ness, An ecosystem of managed dependencies, A culture of tooling.

All contribute to make Scala.js a pretty special experience. Tiny executables, fast-turnarounds, multiple full-featured IDEs, a rich ecosystem right off the bat, together with a shallow learning curve, all for a minuscule amount of implementation effort compared to many of its alternatives.

In some of these dimensions, other Compile2JS languages can catch up, given a sufficiently large effort. In others, the advantage is basically insurmountable. I will explore how the fundamentals of the language, design decisions made years or decades ago, continue to affect the Compile2JS experience of several of these languages today. I will close with the heavy baggage weighing Scala.js down, and what the Scala language could do to improve our own Compile2JS experience.

Reactive Slick for Database Programming
Stefan Zeiger
Typesafe
Close
Reactive Slick for Database Programming
Stefan Zeiger
Typesafe

Stefan Zeiger is the tech lead for Slick. He joined Typesafe in 2011 after developing ScalaQuery, the predecessor to Slick, in order to work on the new project full-time. He has been a user of Java and the JVM platform professionally since 1996, working on a diverse range of projects from web servers to GUI frameworks and programming language design, and moving on from Java to Scala since 2008. 

Wednesday (18th Mar.) 16:50

When it comes to using relational databases in a reactive, scalable and non-blocking application design, Java's standard JDBC API and the way in which it is traditionally used has always been a sore point. Scoping database sessions correctly and configuring a connection pool in an efficient way were already non-trivial in blocking JEE-style applications, but if you try to fit the inherently blocking JDBC API into a Play or Akka app, it gets even harder. In the newest version of Slick, Typesafe's database library, we provide a different way of sequencing database actions, based on the ideas of Haskell's IO monad. This talk will show you how to use this new API to safely compose and execute database calls, returning Futures and Reactive Streams from them. Bridging the gap between the blocking JDBC API and your non-blocking applications also requires a very different threading model and connection pool configuration than in a blocking app. You will learn what Slick does behind the scenes to take care of these issues in order to give you good scalability and performance out of the box.

Scala Puzzlers: In the Matrix, anything is possible!
Andrew Phillips
XebiaLabs
Close
Scala Puzzlers: In the Matrix, anything is possible!
Andrew Phillips
XebiaLabs

A long-standing open-source developer and community member specializing in concurrency and high-performance applications, Andrew builds tools for Continuous Delivery and Devops at XebiaLabs, contributes to a number of open-source projects and co-maintains the Scala Puzzlers website.

Wednesday (18th Mar.) 16:50

The Scala roadmap may have declared war on puzzlers, but there's still plenty of head-scratching moments to be had for now. As previously, we will present a new set of seemingly innocent examples of Scala code that behave in highly surprising ways, give you a chance to guess the result, and explain what actually happens.

We will also look at common patterns underlying many puzzlers, and outline some approaches to avoiding these pitfalls. Laugh, learn and take a few steps on the fun path to deeper Scala understanding!

 

17:35 Break
18:00
Closing Panel and Thank You
Close
Closing Panel and Thank You
Wednesday (18th Mar.) 18:00

Venue

Fort Mason Center

2 Marina Blvd

San Francisco, CA 94123

Website Map

Training

Hilton San Francisco Financial District

750 Kearny Street

San Francisco California 94108

Website Map 

Hotel

Hyatt Fisherman's Wharf

555 North Point Street

San Francisco, CA 94133

Website Map

Training

Want to get the most out of Scala Days San Francisco. Register for an in-person training course following the conference on Thursday and Friday, March 19 and 20th. The courses are designed for developers of all levels of proficiency with the Typesafe Reactive Platform.

  

We have opened more training slots for Advanced Akka with Scala! You can register here if you would like to attend.

 
Apache Spark, Fast Track to Akka with Scala, Advanced Scala & Fast Track to Scala Training Workshops are SOLD OUT, sign up on the WAIT LIST FORM and we will contact you if a spot becomes available.

Advanced Akka With Scala 

Thursday March 19 & Friday March 20

This is a two-day advanced course on building distributed reactive applications using Akka and Scala. It is intended for developers who already have a strong understanding of the fundamentals of building applications using Akka and Scala on a single JVM and are looking to learn how to scale out to multiple nodes and 3rd party systems. This course has extensive hands-on work and successive exercises build upon prior lessons learned to produce a fully functional application that is both event-driven and resilient by the conclusion of the course.

Prerequisites: A basic knowledge of Akka as covered in the "Fast Track with Akka and Scala" course as well as a basic knowledge of Scala as covered in the "Fast Track to Scala" course with at least two months practical experience in developing with Akka and Scala. Students should bring their own laptop with Java 6 or higher installed. 


Instructor: Alejandro Lujan

As a Senior Software Developer & Training Lead at BoldRadius, Alex splits his time between architecting and building web-based software using the Typesafe Stack: Scala, Akka and Play, and coaching others on how to effectively use those technologies. With a rare combination of both technical and business expertise, Alex has the ability to build extraordinary software that effectively meets the core business needs of our clients. Add to that his incredible people skills, Alex not only builds usable and functional software, but excels at training others to adopt the Typesafe Stack.  

  

Instructor: Michael Nash

For over thirty years, Michael has designed, developed, shipped and consulted on software development projects for clients of all shapes and sizes. As an advocate for software craftsmanship with expertise in project management and architecture, Michael was amongst the earliest of adopters of the Typesafe Stack, with over 5 years experience working with Scala, Akka and Spray. Michael brings his wealth of knowledge, experience and unrelenting passion for software development to his training courses, as he loves to help others learn new technologies.

Fast Track To Play With Scala 

Thursday March 19 & Friday March 20  

This two-day course introduces experienced web-developers to the design-patterns and methodology essential to building reactive, scalable web applications with Play Framework and Scala. An introduction to Slick, a type-safe and modern database query and access library for Scala is also part of agenda. In this course, successive exercises build upon prior lessons learned to produce a fully functional application by the conclusion of the course.

Prerequisites: Code examples and exercises will be written in Scala, so a basic knowledge of Scala as covered in the "Fast Track to Scala" course is required, as is experience with HTML and JavaScript. Students should bring their own laptop with Java 6 or higher installed. 


Instructor: Dick Wall

Dick Wall is co-founder and CEO of Escalate Software, LLC, provider of Scala training and consulting. He has been developing primarily in Scala since 2008, developing both commercial and open source projects. Dick contracts as a developer advocate with Typesafe, also co-hosts the Scalawags podcast and founded the Bay Area Scala Enthusiasts, one of the first Scala programming user groups in the world.

SOLD OUT:  Apache Spark: An Introduction Workshop for Developers

Sign up on the WAIT LIST FORM and we will contact you if a spot becomes available

Thursday March 19

This one-day workshop is designed to teach developers how to implement data analytics using for Reactive applications. Apache Spark is a distributed computing system written in Scala and developed initially as a UC Berkeley research project for distributed data programming. It has grown in capabilities and it recently became a top-level Apache project. In this workshop, developers will use hands-on exercises to learn the principles of Spark programming and idioms for specific problems, such as event stream processing, SQL-based analysis on structured data in files, integration with Reactive frameworks like Akka, as well as Hadoop and related tools, and advanced analytics, such as machine learning and graph algorithms.


Instructor: Andy Petrella

Andy is generally coined as Distributed Data Scientist. He has a long experience in data processing and modeling since his grades in Mathematics and CS (ULg, Belgium) to his later participation to the Virdata project (Belgium, certified on Apache Spark). Hence, Andy's is hacking on distributed data, applying machine learning and and leading data scientist teams. For this purpose, he maintains the spark-notebook, a Scala, Akka and RX powered tool for data scientist on Spark. He's also the founder of NextLab , co-founder of Wajug, author of the book Learning Play! Framework 2 and Scala/Spark trainer. Last but most important, he's an happy husband and a proud father of two great boyz.


SOLD OUT: Advanced Scala

Sign up on the WAIT LIST FORM and we will contact you if a spot becomes available

Thursday March 19 & Friday March 20

If you already have programming experience with Scala and want to understand its advanced features, this two-day course is for you. It is designed to help developers fully understand topics such as advanced object-functional programming, the power of Scala's type system, implicits, etc. The course also covers how to leverage these features to create well-designed libraries or DSL's utilizing proven best practices.

Prerequisites: A basic knowledge of Scala as covered in the "Fast Track to Scala" course with at least two months practical experience in developing with Scala. Students should bring their own laptop with Java 6 or higher installed. 


Instructor: Brendan McAdams

Having recently returned from several wilderness years of being an itinerant conference speaker, trainer, & consultant for such fine companies as MongoDB & Typesafe, Brendan now writes Scala code for Netflix, building beautiful APIs with Scalatra & Swagger. 

SOLD OUT: Fast Track To Akka With Scala

Sign up on the WAIT LIST FORM and we will contact you if a spot becomes available

Thursday March 19 & Friday March 20

This two-day course introduces experienced application developers to the reactive Akka toolkit and runtime and the methodologies that enable the creation of real-world actor-based systems in Scala on a single JVM. This course has extensive hands-on work and successive exercises build upon prior lessons learned to produce a fully functional application that is both event-driven and resilient by the conclusion of the course.

Prerequisites: Code examples and exercises will be written in Scala, so a basic knowledge of Scala as covered in the "Fast Track to Scala" course is required. Students should bring their own laptop with Java 6 or higher installed.


Instructors: Wade Waldron & Michael Nash

As a Senior Software Developer and Trainer at BoldRadius, Wade works directly with clients to provide his knowledge and expertise on the Typesafe Reactive Platform to help them achieve their business goals. With extensive skills in Scala, Akka and Spray, Wade's passion for software craftsmanship and his commitment to code readability and maintainability shines though in both his programming and his training sessions.


For over thirty years, Michael has designed, developed, shipped and consulted on software development projects for clients of all shapes and sizes. As an advocate for software craftsmanship with expertise in project management and architecture, Michael was amongst the earliest of adopters of the Typesafe Stack, with over 5 years experience working with Scala, Akka and Spray. Michael brings his wealth of knowledge, experience and unrelenting passion for software development to his training courses, as he loves to help others learn new technologies. 

SOLD OUT: Fast Track to Scala

Sign up on the WAIT LIST FORM and we will contact you if a spot becomes available

 

Thursday March 19 & Friday March 20

This two-day course is designed to give experienced developers proficient in Java, C++, C# or Ruby the know-how to confidently start programming in Scala. The course ensures you will have a solid understanding of the fundamentals of the language, the tooling and the development process as well as a good appreciation of the more advanced features. If you already have Scala programming experience, then this course could be a useful refresher, yet no previous knowledge of Scala is assumed.

Prerequisites: Students should bring their own laptop with Java 6 or higher installed. 


Instructors: Michael Pigg

Michael is a Typesafe certified instructor for Fast Track to Scala, and has been developing web applications using Scala and related technologies such as Akka and Spray for the past three years. Prior to that he built web applications using Java technology for a number of years. Michael has given talks at ApacheCon and Open Source Bridge conferences. He is currently interested in developing applications using principles of the Reactive Manifesto as well as continuous delivery. 

Tickets

Conference (2.5 days)

Before Jan 5 Before Feb 2 After Feb 2
$850 $950 $1050

Conference Academic rate (2.5 days)

Before Jan 5 Before Feb 2 After Feb 2
$500 $500 $500

Conference + 2 training days (4.5 days)

Before Jan 5 Before Feb 2 After Feb 2
$2,000 $2,350 $2,450

2 Training days only

Before Jan 5 Before Feb 2 After Feb 2
$1,150 $1,400 $1,400

Sponsors

Interested in being a sponsor at Scala Days SF? Contact us at info@scaladays.org.


Platinum

Gold

Silver

 

Media Sponsor

Hosted by

Code of Conduct

Our Code of Conduct is inspired by the kind folks at NE Scala, who adopted theirs from PNW Scala. We think they both nailed it.


Nobody likes a jerk, so please show respect for those around you. This applies to both in-person and online behavior.


Scala Days 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, or religion (or lack thereof). We do not tolerate harassment of participants in any form.


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.


Participants violating these rules may be asked to leave without a refund at the sole discretion of the organizers.

Crew Volunteers

Volunteer as a Crew Volunteer and receive a FREE pass to Scala Days 2015.  

All crew volunteers will be required to work on Monday March 16th from 12:00 PM - 5:00 PM as well as another shift on Tuesday March 17th and/or Wednesday March 18th (in total about 15 hours). In return for helping with the conference, crew volunteers will have free access to the conference and all social events. Register to be crew by entering "crew" in the promotion code field on the registration form.