We have a special night planned with two talks being presented by engineers from a Toronto Scala heavyweight: PagerDuty.
Ken Rose will give us a sneak peek of a talk he's presenting at the next Scala Days: End to end functional testing at PagerDuty and Jesse Haber-Kucharsky will present an easy to understand definition of monads, and why you should be using them in your Scala codebase!
6:30 Doors Open
7:00 Introduction and a message from our sponsors
7:10 Ken Rose, PagerDuty: WatchDog: How PagerDuty uses Scala for end-to-end functional testing
7:50 Jesse Haber-Kucharsky, PagerDuty: Monads in Practice: An unpretentious introduction, with Scala
8:25 Raffle for IntelliJ license
WatchDog: How PagerDuty uses Scala for end-to-end functional testing by Ken Rose
PagerDuty loves Scala. We use it for all of our services
PagerDuty recently completed a continuously run, end-to-end functional testing suite that externally verifies all aspects of PagerDuty's functional definition. From the outset, a major requirement for this suite was developer user experience. Good library design dictates that the client's experience with your library is paramount, so we needed a mechanism that would allow for tests that were short, easy to write, and easy to understand. Additionally, given that the suite is continuously run against our live production servers, we needed to ensure that it did not introduce significant additional load that could affect our customers.
• This talk will review how we used ScalaTest, sbt, and various Scala design patterns to implement this system and achieve our goals. In particular:
• How we made defining resources with dependencies, like Schedules and Escalation Policies, quick and painless
• How we hacked the builder pattern to prevent melting our servers with millions of new entities
• How account provisioning was made super simple for test authors
• Our DSL for succinctly expressing expected outcomes from tests
• New Scala bindings for our REST API
• How we isolated tests so that smaller, faster tests could run more often than larger, slower tests
Monads in Practice: An unpretentious introduction, with Scala by Jesse Haber-Kucharsky
The word "monad" has a lot of scary connotations. Hundreds of tutorials attempt to teach them, ranging from cute analogies about pipes and burritos to references to category theory. The monad abstraction actually arises very naturally when programming in a functional style. This talk will motivate the use of monads in practice by extrapolating from simple examples that arise in every-day programming. We'll look at error handling, state, and configuration.