Loading…
Scalæ By the Bay has ended
Reactive Systems [clear filter]
Friday, November 11
 

9:00am PST

Keynote: Typelevel in 2016
There has been a huge amount of activity around the Typelevel family of projects this year. The arrival of Cats on the scene marked the beginning an exciting period of collaboration among the Typelevel projects and reaching out to the wider Scala community that hadn't been possible before. Now, at the end of 2016, we have had two Typelevel conferences, and numerous other workshops and hack days. Things are going from strength to strength. This talk will give a flavour of what has been going on: the collaborations between Algebra, Spire and Cats; between Cats and shapeless; between shapeless and scodec, doobie, ScalaCheck and Circe; and how all of this is feeding into the rebooted Typelevel Scala. It's also an open invitation to people right across the Scala spectrum to get involved in these projects and see what they can do for them in their own work.

Friday November 11, 2016 9:00am - 9:40am PST
Caching

9:50am PST

Finagle as a proxy: resilient, Twitter-style microservices for polyglot environments
Finagle is an open-source, high-volume RPC client library which powers the application infrastructure of companies like Twitter, Pinterest and Soundcloud. In this talk, we introduce "linkerd", an open source RPC proxy built on Finagle and specifically designed for microservices. We describe how linkerd can be used to “wrap” polyglot multi-service applications in Finagle’s operational model, adding connection pooling, load balancing, failure detection, and failover mechanisms to existing applications with little to no code change. We demonstrate how this model allows polyglot applications to take advantage Finagle’s production-tested capabilities around scalability, reliability, and fault-tolerance, even in the presence of unpredictable traffic volumes and unreliable hardware. We describe how Finagle was used and extended in the creation of linkerd, and walk through the roadmap of upcoming features.

Speakers
avatar for Oliver Gould

Oliver Gould

CTO, Buoyant
Oliver Gould is a core maintainer of Linkerd, and is the co-founder and CTO of Buoyant, where he leads open source development efforts. Prior to Buoyant, he was a staff infrastructure engineer at Twitter, where he was the tech lead of Observability, Traffic, and Configuration & Coordination... Read More →


Friday November 11, 2016 9:50am - 10:30am PST
Caching

10:40am PST

GraphQL: IoC makes its way to HTTP ... and it's great!
GraphQL is spec out of Facebook describing a new way to write HTTP APIs. Unlike REST, it gives control to the client. Clients query for the data they want, and servers respond by returning exactly -- and only -- the requested data. This has the advantage of letting clients imagine new ways to use data without the need for additional server side development. GraphQL APIs are described by constructing a strongly typed schema against which queries can be both constructed and validated. This strongly typed schema maps quite well to Scala's type system, and there is a fantastic Scala implementation of the GraphQL spec in Scala called Sangria. In this talk, I'll show some real life examples from our startup justifying why you might want to use GraphQL instead of standard REST. I'll execute some queries against our own API, which ought to illuminate how it works and why it's great. I'll discuss the eco-system around GraphQL, and finally walk through, and do a quick tutorial on how to turn your Scala case classes and functions into a full-blown schema and API.

Speakers
avatar for Dustin Whitney

Dustin Whitney

CTO, Project September
Co-Founder and CTO, Project September


Friday November 11, 2016 10:40am - 11:00am PST
Caching

11:10am PST

Serving images at Criteo
At Criteo, we serve billions of images every day, and every day this number increases. Our legacy C/C++ solution was not scaling anymore, so we decided to give Finagle try for a first public facing service. In this talk we will present how we did, using Finagle not only to serve these images to our users, but also to fetch them from our partners as well, all at quite a large scale.

Speakers
avatar for Vincent Guerci

Vincent Guerci

Software Engineer, Criteo
Previously a Mobile Developer, now working as Software Engineer on various technologies for applications @criteo which requires scalability...


Friday November 11, 2016 11:10am - 11:30am PST
Caching

11:40am PST

Finagle Your Own Codec
Many users of Finagle use the HTTP or Thrift protocols. We have built a protocol which uses Google Protobuf on the wire. We'll talk about why you might build your own protocol, how to go about building one, and some of the gotchas we encountered along the way. Attendees will come away with information they need to help decide whether to build their own protocols or use existing ones.

Speakers
avatar for Chris Phelps

Chris Phelps

Principal Software Engineer, Splunk
I've been coding in Java since the early days of the language, and in Scala for the last 4 years. My main areas of focus are in microservices and reactive approaches. As our organization is a polyglot development environment, I'd also love to talk to you about adopting and evangelizing... Read More →


Friday November 11, 2016 11:40am - 12:20pm PST
Caching

1:10pm PST

Streams for (Co)Free!
There are many popular stream libraries for Scala developers, including Akka Streams, scalaz-stream, fs2, plus others in the Java ecosystem. While all excellent choices for building reactive Scala applications, their reliance on effects makes them particularly difficult to test and reason about. In this talk, long-time Scala functional programmer John A. De Goes takes to the stage to demonstrate a new approach to modeling streams that requires less machinery and has more reasoning power, composability, flexibility, and testability than many other approaches. By attending the talk, you'll learn how the best stream library may be the one you get for (co)free!

Speakers
avatar for John A. De Goes

John A. De Goes

Solution Architect, De Goes Consulting
John A. De Goes has been writing Scala software for more than eight years at multiple companies, and has assembled world-renowned Scala engineering teams, trained new developers in Scala, and developed several successful open source Scala projects.Known for his ability to take very... Read More →


Friday November 11, 2016 1:10pm - 1:30pm PST
Caching

1:40pm PST

So, You Want To Be Functional and Reactive? Here is how...
You are a Scala champion, but how about the rest of your organization? Learn from our experience in migrating developers from Java or node.js to the promised land of Scala, Functional Programming and Reactive Architectures. There are many ways to get there, but we were always passionate about finding the path with the least friction and greatest productivity. Come and see what works in building productive Scala developers and teams and what treacherous paths to avoid. Special coverage of Big Data and Spark!

Speakers
avatar for Vladimir Bacvanski

Vladimir Bacvanski

Principal Architect, Strategic Architecture, PayPal
Dr. Vladimir Bacvanski's interest is in better and more productive ways to develop highly scalable and reliable software systems. Before joining PayPal, he was the CTO and founder of SciSpike, a company doing custom development and consulting. His recent projects include Big Data... Read More →


Friday November 11, 2016 1:40pm - 2:00pm PST
Caching

2:10pm PST

Concurrent Join Calculus in Scala
Join Calculus is a little-known programming paradigm for purely functional concurrency. Join Calculus develops upon the Actor model to make concurrent programming less imperative, type-safe, deadlock-free, and even more intuitive. I give an introduction to Join Calculus and present examples such as the "dining philosophers" problem and a concurrent merge sort. I present a prototype implementation of Join Calculus as an embedded Scala DSL, based on previous work of Philipp Haller and Jiansen He.

Speakers
avatar for Sergei Winitzki

Sergei Winitzki

Senior Software Engineer, Workday Inc.
Theoretical physicist turned software engineer, passionate for functional programming, functional type theory, and declarative domain-specific languages.


Friday November 11, 2016 2:10pm - 2:50pm PST
Caching

3:00pm PST

The Future of Services
Microservices has become a difficult term to pinpoint as more people use it to describe various approaches to building service-based applications. Many of these approaches have become anti-patterns to scale, such as sharing code between services and traditional monolithic CRUD data storage strategies. This talk will focus on how to build elastic, resilient service-based applications that can handle tremendous amounts of data in real time, and discuss how to identify and decompose individual microservices.

Speakers
avatar for Jamie Allen

Jamie Allen

Director of Engineering, Starbucks
Jamie is Director of Engineering at Starbucks for the Unified Commerce Platform initiative, a project using Scala, Akka, pure FP and a microservice-based architecture to provide high-availability experiences for Starbucks customers. He previously spent over 4 years working at Typesafe/Lightbend... Read More →


Friday November 11, 2016 3:00pm - 3:40pm PST
Caching

4:00pm PST

Akka Streams for Large Scale Data Processing
"With over 50 million members, Credit Karma is the most utilized and trusted personal finance platform in the U.S. To handle tens of millions of Americans’ credit information, we use Akka Streams for high throughput data transfer. We will discuss how we quickly built services using Akka Actors to help us parallelize, parse and send data to our data ingestion service. We then dive into problems we faced and why we chose to move those services to Akka Streams, what we learned, and the tradeoffs along the way. In this panel, Credit Karma shares best practices on how to implement Akka Streams at scale."

Speakers
avatar for Zack Loebel-Begelman

Zack Loebel-Begelman

Senior Software Engineer, Creditkarma
As a senior software engineer on the data and analytics pipeline, Zack’s work allows Credit Karma to provide tailored recommendations for each individual member’s specific financial situation. Zack joined Credit Karma after two years designing and launching data engines to support... Read More →
avatar for Dustin Lyons

Dustin Lyons

Engineering Manager, Credit Karma
I work on Big Data supporting over 60M members at Credit Karma.


Friday November 11, 2016 4:00pm - 5:00pm PST
Caching

5:00pm PST

Scaling Scala Teams
This panel will present the state of software engineering teams in industry, using Functional Programming. Such teams can achieve tremendous success when aligned with company architectures and lead by managers fully appreciative of technology. We'll see whether various myths about recruiting and complexity are true, and show ways to hire, train, and retain the best talent and leadership required to build the best startups and modern enterprises with thoughtful software engineering principles.

Speakers
avatar for Tihomir Bajić

Tihomir Bajić

VP Engineering
VP Engineering, LTSE.com
avatar for Vitaly Gordon

Vitaly Gordon

CEO, Faros AI
avatar for Ity Kaul

Ity Kaul

Tech Lead, Twitter, Inc.
avatar for Tim Perrett

Tim Perrett

Head of Infrastructure Engineering, Verizon
Avid functional programmer, experienced distributed systems engineer and published author. Primarily interested in schedulers, datacenter design, low-latency data access and the application of functional paradigms in large enterprise applications.
avatar for Roy Rapoport

Roy Rapoport

Senior DevOps Engineer, Monitoring, Netflix, Inc
Manager, Insights


Friday November 11, 2016 5:00pm - 6:00pm PST
Caching
 
Saturday, November 12
 

9:00am PST

Keynote: Exploring the Unknown With Scala

Whatever your experience level, I'm willing to bet that you want to become a better engineer and problem-solver. You have probably already noticed that exploring unfamiliar technologies, patterns, algorithms and approaches helps you become better at your job, and sometimes even identify what job you want to be in. At this point you probably have a voice in your head saying that exploring, while fun and exciting, takes time. Perhaps you often tell yourself that you're too busy getting things done to indulge your curiosity.

I'm going to tell you the story of my personal confrontation with a dilemma facing every human being on earth: exploration vs. exploitation. I'll share with you the lessons I've learned about becoming a better explorer. I'll discuss how my usage of Scala and engineering mindset have changed as I have gone from developing large-scale production applications to conducting a series of experiments that test hypotheses. I hope you walk out of this talk with a renewed enthusiasm for exploration and a framework that you can use to decide when to explore and when to exploit.




Speakers
avatar for Julie Pitt

Julie Pitt

Director, Machine Learning Infrastructure, Netflix
Julie leads the Machine Learning Infrastructure at Netflix, with the goal of scaling Data Science while increasing innovation. She previously built streaming infrastructure behind the "play" button while Netflix was transitioning from domestic DVD-by-mail service to international... Read More →


Saturday November 12, 2016 9:00am - 9:40am PST
Caching

9:50am PST

Developing microservices with aggregates
The Domain Model pattern is a great way to develop complex business logic. Unfortunately, a typical domain model is a tangled, birds nest of classes. It can’t be decomposed into microservices. Moreover, business logic often relies on ACID transactions to maintain consistency. Fortunately, there is a solution to this problem: aggregates. An aggregate is an often overlooked modeling concept from the must read book Domain Driven Design. In this talk you will learn how aggregates enable you to develop business logic for the modern world of microservices and NoSQL. We will describe how to use aggregates to design modular business logic that can be partitioned into microservices. You will learn how aggregates enable you to use eventual consistency instead of ACID. We will describe the design of a Scala microservice that is built using functional aggregates.

Speakers
avatar for Chris Richardson

Chris Richardson

Founder, Eventuate
Chris Richardson is a developer and architect. He is a Java Champion, a JavaOne rock star and the author of POJOs in Action, which describes how to build enterprise Java applications with frameworks such as Spring and Hibernate. Chris was also the founder of the original CloudFoundry.com... Read More →


Saturday November 12, 2016 9:50am - 10:30am PST
Caching

10:40am PST

Top Mistakes When Writing Reactive Applications
Reactive applications are becoming a de-facto industry standard and, if employed correctly, toolkits like Lightbend Reactive Platform make the implementation easier than ever. But design of these systems might be challenging as it requires particular mindset shift to tackle problems we might not be used to. In this talk we’re going to discuss the most common things I’ve seen in the field that prevented applications to work as expected. I’d like to talk about typical pitfalls that might cause troubles, about trade-offs that might not be fully understood or important choices that might be overlooked including persistent actors pitfalls, tackling of network partitions, proper implementations of graceful shutdown or distributed transactions, trade-offs of micro-services or actors and more. This talk should be interesting for anyone who is thinking about, implementing, or have already deployed reactive application. My goal is to provide is to provide comprehensive explanation of common problems to be sure they won’t be repeated by fellow developers. The talk is a little bit more focused on Lightbend platform but understanding of the concepts we are going to talk about should be beneficial for everyone interested in this field.

Speakers
avatar for Petr Zapletal

Petr Zapletal

Lead Consultant, Cake Solutions
Petr is a Software Engineer who specialises in the design and implementation of highly scaleable, reactive and resilient distributed systems. He is a functional programming and open source enthusiast and has expertise in the area of big data and machine classification techniques. Petr... Read More →


Saturday November 12, 2016 10:40am - 11:00am PST
Caching

11:10am PST

I built an actor system in Rust. Then I built a company on Akka.
From the shear volume of data that the systems we are building at Datalogue need to process there's a couple of things that are constantly on our minds. 1) how do we write correct, distributable programs while maintaining a level of development productivity that allows us to innovate? 2) how do we leverage existing data infrastructures to keep our costs manageable by only storing the data we need to create delightful user experiences? For a while, I thought that would mean squeezing every ounce of performance low level performance and having the ability to write correct distributed programs. This first hypothesis is why I went from actor system in Rust to building a company on Akka. My talk will focus on the transition from building an actor system using a new highly, hyped, low level language like Rust to leveraging the power of an existing framework like Akka and the beauty of Scala.

Speakers
avatar for Tim Delisle

Tim Delisle

Co-founder and CEO, Datalogue
Deep learning geek with a passion for Scala and Rust.


Saturday November 12, 2016 11:10am - 11:30am PST
Caching

11:40am PST

Building High Performance Microservices with Colossus
Colossus is a Scala I/O and microservice framework that has been built from the ground up with a strong focus on performance and simplicity. While primarily aimed at building low-latency services, it can serve as a fully generalized I/O layer for virtually any application. Whether you're doing low-level bit-pushing or making high-level distributed services, Colossus is here to help. In this talk I'll cover the basics of what Colossus can do, how we made it fast, and how we use it at Tumblr to power some of our platform's most popular features.

Speakers
avatar for Dan Simon

Dan Simon

Staff Engineer, Tumblr
Dan Simon is a Staff Engineer at Tumblr, specializing in distributed systems and platform services. Over the last 5 years Dan has worked on a wide variety of projects across Tumblr's infrastructure and is the lead developer of Colossus, a lightweight service framework that powers... Read More →


Saturday November 12, 2016 11:40am - 12:20pm PST
Caching

1:10pm PST

Scaling out a Rails app with Finagle
A lot of startups use Ruby on Rails for fast development, which makes sense -- it’s great for building CRUD apps quickly and cheaply. But building your app with Rails has it’s own drawbacks: it can get huge and messy, runtime is slow, and concurrency is an afterthought. While that shouldn’t stop you from using the framework, it’s important to think about longterm scalability during development. At Brigade, we have been developing a social network for politics using Rails. However, with time and more users, we decided to migrate more complex and modular realtime computations to Finagle micro-services. This talk will discuss the technolgies we selected (Scala, Finagle, Thrift) and how we addressed issues of debuggability, data-access, and integrating in various environments.

Speakers
SB

Stephanie Bian

Software Engineer, Brigade
Stephanie is a data engineer at Brigade, where she works on data infrastructure, analytics, and search & relevance using Scala, Finagle, Spark, Kafka, and Elasticsearch. Previously, she worked on the Trends team at Twitter, where she was initiated into the Scala community.


Saturday November 12, 2016 1:10pm - 1:30pm PST
Caching

1:40pm PST

Functional API for defining type safe, reliable Akka actors
Akka Typed is a fairly new module of Akka, providing a statically type safe way to define actors, and interact with them. However, still being an experimental module, its integration with various other components of Akka is not yet complete. For example, it provides no support for defining event sourced (persistent) actors. This talk will present a functional API we built on top of Akka Typed. This API makes it easy to define type safe event sourced actors, and it is also integrated with Akka cluster sharding. The talk will describe how various functional programming techniques allow us to provide a convenient and flexible API offering static type safety. For example, free monads allow us to define a DSL for event sourcing (using an "actor algebra"), and type classes make the system extensible by end users. A sketch of the implementation will also be presented, demonstrating some practical aspects of these techniques. We will also discuss the advantages of our typed, monadic persistence API over the untyped one provided by Akka Persistence, and even look at some possibilities for further improvements.

Saturday November 12, 2016 1:40pm - 2:00pm PST
Caching

2:10pm PST

Implement a scalable statistical aggregation system using akka
At Symantec email security group, a common problem we face is to aggregate multiple metrics with different time granularity in real-time from hundreds of millions emails per day. Various existing solutions try to address the problem by using batch and/or streaming algorithms. Often such approach requires the use of many different technologies and are expensive to run. Another approach is to use statistical data structures such as Count Min Sketch that can greatly reduce the overheads of storage and processing at the cost of accuracy. However, implement such algorithms at large scale poses several problems. In this talk, we introduce Algegate (algebra + aggregate) a pure statistical, distributed platform implemented using Akka. It is designed to be fault-tolerant, back-pressure compliant and easily to scale out to multiple nodes.

Speakers
avatar for Stanley Nguyen, Vu Ho

Stanley Nguyen, Vu Ho

Software Engineer, Symantec
Stanley Nguyen is a software developer in Email Security group at Symantec where he helps to build a high availability big data platform, write high performance backend services and develop interactive visualisation interfaces. He writes a majority of code in Scala, Go and NodeJS. Vu... Read More →


Saturday November 12, 2016 2:10pm - 2:50pm PST
Caching

3:00pm PST

One-Click Deploy Spark ML + TensorFlow AI Models
In this completely 100% Open Source demo-based talk, Chris will be addressing an area of machine learning and artificial intelligence that is often overlooked:  the real-time, end-user-facing "serving” layer in a hybrid-cloud and on-premise deployment environment using Jupyter, NetflixOSS, Docker, and Kubernetes.
Serving models to end-users in real-time in a highly-scalable, fault-tolerant manner requires not only an understanding of machine learning fundamentals, but also an understanding of distributed systems and scalable microservices. 
Chris will combine his work experience from both Databricks and Netflix to present a 100% open source, real-world, hybrid-cloud, on-premise, and NetflixOSS-based production-ready environment to serve your notebook-based Spark ML and TensorFlow AI models with highly-scalable and highly-available robustness.

Speakers
avatar for Chris Fregly

Chris Fregly

Solution Architect, AI and machine learning, AWS


Saturday November 12, 2016 3:00pm - 3:20pm PST
Caching

3:30pm PST

Reactive Resumes
We are developing a resumes processing pipeline enabling real-time, high scale resume parsing and HR intelligence: we analyze resume files (doc/pdf) in bulk identifying key relevant data points and metrics (candidate code, portfolio, abilities, education, experience) and employ this context to provide rich market insights and actionables in the HR process (identifying the most qualified candidates for given job descriptions, providing salary forecasts for each resume, identifying candidates similar to each other, exposing latent candidate insights). Our mission is speeding up and improving the hiring/capacity planning/contingency work force management processes by helping recruitment-focused entities to identify the relevant and fresh talent in the market, an insights-driven noise filter in HR.

Speakers
avatar for Adrian Mihai

Adrian Mihai

co-founder / cto, opening.io
Automation, Reactive systems, AI, HR, Partnerships & Investment


Saturday November 12, 2016 3:30pm - 4:00pm PST
Caching

4:00pm PST

Finagle/Finatra QnA
Twitter's Core System Libraries team will be hosting a QnA session/round table on Finagle/Finatra and the rest of Twitter's RPC stack. Join us to discuss the past, the present, and the future of the OSS RPC layer powering the infrastructure of companies like Twitter, SoundCloud, Pinterest, and many more.

Moderators
avatar for Vladimir Kostyukov

Vladimir Kostyukov

Software Egineer, Twitter, Inc
Finagle contributor. Finch maintainer.

Speakers
avatar for Bryce Anderson

Bryce Anderson

Software Engineer, Twitter
Since 2016 Bryce has been with Twitter's Core System Libraries team working predominantly on the Finagle RPC library. Bryce enjoys long walks through RFC's and analyzing the potential for graph-wide meltdowns in service-mesh load balancers.
avatar for Christopher Coco

Christopher Coco

Staff Software Engineer, Twitter, Inc.
Co-creator and maintainer of the Finatra Scala services framework.
avatar for Jillian Crossley

Jillian Crossley

Software Engineer, Twitter
I work on Finagle @Twitter
avatar for Moses Nakamura

Moses Nakamura

Software Engineer, Twitter
avatar for Ryan O'Neill

Ryan O'Neill

Senior Software Engineer, Twitter
avatar for Kevin Oliver

Kevin Oliver

Twitter Inc


Saturday November 12, 2016 4:00pm - 5:00pm PST
Caching

5:00pm PST

Modern Software Architectures and Data Pipelines
Throughout our four-year history, Scala and Scale By the Bay is leading the way on evangelizing and understansing modern software architectures. We have the best set of them here, including Akka, Kafka, Spark, Finagle, Lagom, and so on. How do they come together in a SMACK / MIND Stack? What are the best practices to follow and pitfalls to avoid? This panels of experienced practitioners will discuss and illuminate it all.

Speakers
avatar for Helena Edelson

Helena Edelson

CEO, The Axis Initiative
Helena is using AI and complex adaptive systems to study and help endangered species under climate change, biodiversity loss, human-wildlife conflict and illegal wildlife trade. Bridging academia and industry, she is a member of the Environmental Intelligence team of the Interagency... Read More →
avatar for Chris Fregly

Chris Fregly

Solution Architect, AI and machine learning, AWS
avatar for Calvin Jia

Calvin Jia

Software Engineer, Alluxio
Calvin Jia is the top contributor of the Alluxio project. He has been involved as a core maintainer and release manager since the early days when the project was known as Tachyon. Calvin has a B.S. from the University of California, Berkeley.
avatar for Rajesh Muppalla

Rajesh Muppalla

Co-Founder and Director of Engineering, Indix
Rajesh leads the data platform team at Indix thats building the world's largest source of structured product information. Over the last 5 years, his team has built several data pipelines using Akka, Scalding, Kafka and more recently Akka-Streams and Spark. He has also blogged and... Read More →
avatar for Nikita Shamgunov

Nikita Shamgunov

Chief Technology Officer and Co-Founder, MemSQL
Nikita Shamgunov co-founded MemSQL and has served as CTO since inception. Prior to co-founding the company, Nikita worked on core infrastructure systems at Facebook. He served as a senior database engineer at Microsoft SQL Server for more than half a decade. Nikita holds a bachelor’s... Read More →
avatar for Reynold Xin

Reynold Xin

Chief Architect, Databricks
Reynold Xin is a co-founder and Chief Architect at Databricks, where he oversees the company's Spark development. He was the release manager for Spark's 2.0 release, and the driver behind most of the major recent changes in Spark, e.g. DataFrame API, Project Tungsten. Prior to Databricks... Read More →


Saturday November 12, 2016 5:00pm - 6:00pm PST
Caching
 
Sunday, November 13
 

9:00am PST

Keynote: Apache Kafka, Stream Processing, and Microservices
Abstract: Microservices are rightfully associated with REST, but a lot of what a company does isn't easily modeled by a blocking request and response. What is the right way to build this type of asynchronous service? This talk will make the case for Apache Kafka as a platform for event-drive apps. It will show the relationship between this type of service and the emerging paradigm of stream processing, and will introduce Kafka Streams, a powerful distributed stream processing client that is part of Apache Kafka.

Speakers
avatar for Jay Kreps

Jay Kreps

Jay (@jaykreps) is co-founder and CEO at Confluent. Prior to Confluent, Jay Kreps was the initial developer on several open source projects, including Apache Kafka, Apache Samza, Voldemort. He was the lead architect for data infrastructure at LinkedIn.


Sunday November 13, 2016 9:00am - 9:40am PST
Caching

9:50am PST

Compositional Streaming with FS2
In recent years, a number of open source Scala libraries have appeared that support working with data streams. In this talk, we’ll look at Functional Streams for Scala (FS2), the library formerly known as Scalaz Stream, and explore its unique take on stream processing. We’ll look at working with impure data sources in a pure world, data transformations, and patterns for stream based program design.

Speakers
avatar for Michael Pilquist

Michael Pilquist

Distinguished Engineer, Comcast
Michael Pilquist is the author of Scodec, a suite of open source Scala libraries for working with binary data, and Simulacrum, a library that simplifies working with type classes. He is a committer/maintainer on a number of other projects in the Scala ecosystem, including Cats and... Read More →


Sunday November 13, 2016 9:50am - 10:30am PST
Caching

10:40am PST

Finding the Free Way
Free Monads are quickly being adopted as the best technique for developing in a pure functional style. Unfortunately, the details for how to best apply them is often left as "an exercise for the reader." Recently my team began using Free Monads to build Web Services within the Play Framework. We wanted to use Free Monads in an easy to follow way with minimum boilerplate, while still slotting naturally into the Play Framework. In this talk I'll outline how we took some wrong turns, hit a few potholes, but ultimately found a way to use Free that works for us.

Speakers
avatar for David Cleaver

David Cleaver

Senior Principal Engineer, Comcast
Dave Cleaver is a Senior Principal Engineer at Comcast designing and implementing scalable Web Services and Platforms. He has spent the last two years developing and championing solutions in Scala. His interests include AI planning, distributed systems, programming languages, and... Read More →


Sunday November 13, 2016 10:40am - 11:00am PST
Caching

11:10am PST

Deep Learning Around Us
We are going to investigate 4-5 real life examples of ordinary companies achieving extraordinary results by deploying deep learning technologies. We are going to look at the their initial motivation, what worked well, what was challenging and the results achieved. This talk is designed for people without deep learning experience.

Speakers
avatar for Alex Ermolaev

Alex Ermolaev

Strategic Alliances, Nvidia
I work with visionary engineers building future artificial intelligence applications and platforms.


Sunday November 13, 2016 11:10am - 11:30am PST
Caching

11:40am PST

Numbers every Scala Programmer should know
Writing highly performant code has always been a challenge for programmers. The correct techniques to create the best performance change and evolve in response to changes in the underlying hardware. Before the late 90s, creating faster code was often about crafting more efficient CPU instructions. For instance, it was faster to XOR a register with itself than to set a register to 0. Now, this is no longer the case and instead creating fast code is mostly about improving L2 and L3 cache hit rates, aligning data in memory and allowing hardware attached to the I/O bus to move data to main memory concurrently with the CPU. With the advent of Scala, use of immutable data has been touted as the "best practice" for how to write concurrent code. However, to systems programmers, this guideline seems strange. This talk is about why using immutablity might be the right choice for some programming teams and the wrong choice for others. When you should to follow the easier models of systems that rely on immutability verses when you might need to brave the difficulities of using synchronization and locks. And finally, when *gasp* blocking is the right thing to do, even inside of an actor.

Benchmarking code used to produce numbers referenced in this talk: https://github.com/creditkarma/scala-performance-benchmarks 

Speakers
avatar for Hunter Payne

Hunter Payne

Staff Software Engineer, Credit Karma
Hunter is a staff software engineer focused on data engineering and AI at Credit Karma. He specializes in natural language processing systems, systems engineering and distributed systems. Before joining Credit Karma, Hunter developed knowledge management frameworks, JDBC drivers... Read More →


Sunday November 13, 2016 11:40am - 12:20pm PST
Caching

1:10pm PST

A non-typical introduction to Akka remote actors with the Raspberry PI
Have some fun with with some Raspberry PI’s and Akka remote actors. In a pure software world it can be beneficial to take a step back and introduce a physical aspect to the work you do. This light and sound filled talk covers the fundamentals of remote actors with some exciting hardware interactions. Remote AKKA actors will be our first stop. We will discuss the configuration and setup of this valuable tool. Once our configuration is complete, we continue by setting up a small cluster of raspberry pi’s to use for our experiment. With our small cluster, we will look at creating and receiving messages. Then react to external stimuli and produce our own responses. With these tools, our creation will slowly come to life. Failure is always an option, so we look finally at handling failure and reacting to it. What happens when our machine breaks, and how can we best handle that event? This introduction should inspire you to think about the possibilities of Akka and give you the tools to get started on your own Akka projects.

Speakers
avatar for James Townley

James Townley

Developer, YoppWorks
Scala, Microservices, Agile, Event Driven, CQRS, DDD, D4


Sunday November 13, 2016 1:10pm - 1:30pm PST
Caching

1:40pm PST

Scaling Reliability
We choose microservice architectures for many different reasons, including, often, improving reliability. However, there is a dark side. Modular systems have many benefits, but as you add more components, each of which can fail, it makes the overall system more fragile, because there are new ways in which it can fail that previously didn't exist. From its inception, Finagle was designed as a toolkit for reliable systems. We'll discuss understanding the reliability of your system (monitoring! load tests! service level objectives!), how to recover when your system fails (alerts! rollbacks! rolling restarts! failovers!), how to make a system reliable (retries! backpressure! circuit breakers!), and how to debug a reliability problem (tracing! logs! persistence!).

Speakers
avatar for Moses Nakamura

Moses Nakamura

Software Engineer, Twitter


Sunday November 13, 2016 1:40pm - 2:00pm PST
Caching

2:10pm PST

Pure Functional Database Programming with Fixpoint Types
Recursive structures (file systems, family trees, and so on) abound in programming and are especially easy to express and manipulate in functional languages. But some operations, like decorating a tree with arbitrary values or folding/unfolding in an effectful context end up being tricky. As is often the case, it turns out that there are some very powerful abstractions that emerge from examining such problems in detail.
In this talk I will motivate the use of fixpoint types by showing how Fix and Cofree pop out naturally if you push on recursive data a little bit, and will relate these types to the better-known Free monad. The motivating example is serialization of a tree structure to and from Postgres using doobie, a pure functional database layer for Scala. Along the way we will review covariant and traversable functors, and will use equational reasoning and "follow the types" to manipulate database programs in the same way we work with everyday data.
The takeaway is a more general way of thinking about recursive types and recursive programs with effects, and renewed confidence in the power and ease of pure functional programming. This is an intermediate talk that assumes some familiarity with functional programming in Scala.

Speakers
avatar for Rob Norris

Rob Norris

Programmer, Gemini Observatory
Software Engineer


Sunday November 13, 2016 2:10pm - 2:50pm PST
Caching

3:00pm PST

Dualistic Quotations in Quill
This talk will present the mechanism used by Quill to support compile-time query generation. The quotations produced by the QDSL (Quoted Domain Specific Language) are both compile-time and runtime values. This is a powerful concept that supports even compile-time high-order functions.

Speakers
avatar for Flavio W. Brasil

Flavio W. Brasil

Software Engineer, Twitter
Flavio W. Brasil is a software engineer at Twitter, working on the team responsible for maintaining the high-performance tweet backend service. He is an experienced developer that has specialized in Scala development and performance analysis on the JVM over the five last years. He... Read More →


Sunday November 13, 2016 3:00pm - 3:40pm PST
Caching

4:00pm PST

Doubt Truth to be a Liar: Non Triviality of Type Safety for Machine Learning
Feature vectors – sequences of heterogenous types – are the basic unit of any machine learning algorithm. Further, feature engineering involves manipulations of these feature vectors and is a fundamental step in optimizing the accuracy of machine learning models. These manipulations may take the form of regular Scala sequence operations that can also be distributed using frameworks such as Spark or Flink. When building a general purpose machine learning framework, the types of engineered features is not known in advance, which is a problem for statically typed languages. In this talk, I will walk through possible solutions for designing type-safe feature vectors in Scala that provide compile-time type safety for feature engineering and other machine learning use cases. The solutions will demonstrate applications of Shapeless, Scala Macros, and Quasiquotes.

Speakers
avatar for Matthew Tovbin

Matthew Tovbin

Principal Engineer, Salesforce Einstein, Salesforce
Matthew Tovbin is a Principal Member of Technical Staff at Salesforce, engineering Salesforce Einstein AI platform, which powers the world’s smartest CRM. Before joining Salesforce, he acted as a Director of Engineering at Badgeville, implementing scalable and highly available real-time... Read More →


Sunday November 13, 2016 4:00pm - 5:00pm PST
Caching

5:00pm PST

The Future of Functional Programming
This panel will discuss the best practices and key challenges for propagating FP in the industry. This is where the beauty meets the beast, and we'll see how they can have the most fun possible, while being at their nicest and most helpful to each other.

Speakers
avatar for Oscar Boykin

Oscar Boykin

Machine Learning Infrastructure, Stripe
Oscar is the creating of Scalding, Summingbird, and Algebird, and is an overall professor and mathematician turned software magician.
avatar for Jillian Crossley

Jillian Crossley

Software Engineer, Twitter
I work on Finagle @Twitter
avatar for John A. De Goes

John A. De Goes

Solution Architect, De Goes Consulting
John A. De Goes has been writing Scala software for more than eight years at multiple companies, and has assembled world-renowned Scala engineering teams, trained new developers in Scala, and developed several successful open source Scala projects.Known for his ability to take very... Read More →
avatar for Stu Hood

Stu Hood

Build Team Tech Lead, Twitter
avatar for Paul Snively

Paul Snively

Sr. Software Engineer, Formation
I've been a language nut my whole life. Common Lisp, Scheme, Oz, OCaml, Haskell, and Scala all have a home in my heart for different reasons. I've been fortunate enough to have worked with Apple, AOL, Virgin, VMware, Intel, Verizon, and Formation, among others. I've spoken at Strange... Read More →


Sunday November 13, 2016 5:00pm - 6:00pm PST
Caching
 
Filter sessions
Apply filters to sessions.