You're seeing by Daniel Westheide from to in
  • Advanced Scala

    Podcast Daniel Westheide, Stefan Tilkov

    In dieser Folge unterhalten sich Daniel Westheide und Stefan Tilkov über einige fortgeschrittene Konzepte der Programmiersprache Scala. Was sollte man bei der Verwendung von Case Classes beachten? Welche Fallstricke gibt es beim Pattern Matching? Und was sind eigentlich Type Classes? Read more
  • Kontextfrei: A new approach to testable Spark applications

    Talk Daniel Westheide Scalar 2017 Slides available

    Apache Spark has become the de-facto standard for writing big data processing pipelines. While the business logic of Spark applications is often at least as complex as what we have been dealing with in a pre-big data world, enabling developers to write comprehensive, fast unit test suites has not been a priority in the design of Spark. The main problem is that you cannot test your code without at least running a local SparkContext. These tests are not really unit tests, and they are too slow for pursuing a test-driven development approach. In this talk, I will introduce thekontextfrei library, which aims to liberate you from the chains of the SparkContext. I will show how it helps restoring the fast feedback loop we are taking for granted. In addition, I will explain how kontextfrei is implemented and discuss some of the design decisions made and look at alternative approaches and current limitations.

    Read more
  • The Empathic Programmer

    Link Daniel Westheide

    In an article published on his personal blog, Daniel Westheide shares his take on empathy, and lack thereof, in the tech community and at the workplace, and how it relates to inclusion and diversity.

  • Don’t Fear the Implicits

    Talk Daniel Westheide Scala Mini Meetup Berlin

    Developers who are new to Scala often shy away from coming into contact with implicits, and by extension, understanding typeclasses. In big organizations that have been adopting Scala at scale, you sometimes even come across hard rules that put a ban on the use of implicits because that language feature is considered to be too advanced and not understood by a lot of developers. On the other hand, implicits and typeclasses are used heavily not only by a lot of the most important Scala frameworks and libraries, but also in the standard library. Given the fact that it is so hard to evade them when writing real world Scala code, I would like to encourage developers adopting Scala to overcome their fear of implicits and instead embrace the typeclass pattern.

    In this talk, as an intermediate Scala developer, you will learn everything you really need to know about typeclasses: What they are good for and how they compare to what you are familiar with from object-oriented languages, when you should and should not use them, how the pattern can be encoded in Scala and how to write your own typeclasses, how to provide instances of typeclasses for your own or existing types, and how to do all of this with minimal boilerplate. Throughout the talk, you will see numerous examples of typeclasses used in the Scala ecosystem and the standard library, and you’ll see that you don’t need to know anything about category theory to benefit from embracing typeclasses.

    Read more
  • The perils of shared code

    Blog Post Daniel Westheide

    In this blog article, I want to examine why using a sharing code between microservices may sound attractive in the first place and why it can cause bigger problems than the ones you try to solve.

    Read more
  • Typeclasses from the ground up

    Talk Daniel Westheide Honeypot Tech Meetup: Staying functional with Scala

    When it comes to typeclasses and implicits – the mechanism used for implementing this pattern in Scala – there appears to be a big gulf: They are widely used not only in many popular Scala libraries, but also in the standard library. On the other hand, many Scala developers are not familiar with them or find them too daunting.

    Since it is difficult to evade them when writing real world Scala code, I would like to encourage developers adopting Scala to overcome their fear of implicits and instead embrace the typeclass pattern. At the same time, I want to raise awareness of the problems that can arise when you do so too eagerly.

    In this talk, as an intermediate Scala developer, you will learn typeclasses from the ground up: What they are good for and how they compare to what you are familiar with from object-oriented languages, when you should and should not use them, how the pattern can be encoded in Scala and how to write your own typeclasses, how to provide instances of typeclasses for your own or existing types, and how to do all of this with minimal boilerplate. Throughout the talk, you will see numerous examples of typeclasses used in the Scala ecosystem and the standard library, and you’ll see that you don’t need to know anything about category theory to benefit from embracing type classes.

    Read more
  • Don’t Fear the Implicits: Everything You Need to Know About Typeclasses

    Talk Daniel Westheide Scala Days Berlin 2016

    Developers who are new to Scala often shy away from coming into contact with implicits, and by extension, understanding typeclasses. In big organizations that have been adopting Scala at scale, you sometimes even come across hard rules that put a ban on the use of implicits because that language feature is considered to be too advanced and not understood by a lot of developers. On the other hand, implicits and typeclasses are used heavily not only by a lot of the most important Scala frameworks and libraries, but also in the standard library. Given the fact that it is so hard to evade them when writing real world Scala code, I would like to encourage developers adopting Scala to overcome their fear of implicits and instead embrace the typeclass pattern.

    In this talk, as an intermediate Scala developer, you will learn everything you really need to know about typeclasses: What they are good for and how they compare to what you are familiar with from object-oriented languages, when you should and should not use them, how the pattern can be encoded in Scala and how to write your own typeclasses, how to provide instances of typeclasses for your own or existing types, and how to do all of this with minimal boilerplate. Throughout the talk, you will see numerous examples of typeclasses used in the Scala ecosystem and the standard library, and you’ll see that you don’t need to know anything about category theory to benefit from embracing typeclasses.

    You can find a video of this talk here.

    Read more
  • Solving the wrong problems

    Blog Post Daniel Westheide

    Instead of rushing to an engineering solution to a problem, we would often be better off by lying back and determining the root cause of our engineering problem, which is often an architectural one.

    Read more
  • When Option is not good enough

    Link Daniel Westheide

    In an article published on his personal blog, Daniel Westheide explains why overloading the semantics of Scala’s Option type can lead to confusion and why introducing custom algebraic data types leads to code that is easier to read, less error-prone and closer to the language of the domain.

  • Why RESTful communication between microservices can be perfectly fine

    Blog Post Daniel Westheide

    Recent debates about REST versus message passing in microservice communication have led to some confusion. What is meant with asynchronous communication in this context and why is REST a perfectly valid choice?

    Read more
  • Put your writes where your master is

    Link Daniel Westheide

    In an article published on his personal blog, Daniel Westheide explains how to verify at compile time that write operations are targeting the master database using Slick 3 and phantom types in Scala.

  • Playing Nice: Designing and implementing well-behaved web APIs

    Talk Daniel Westheide Play Framework User Group Berlin Brandenburg

    Providing a great web API means being a well-behaved citizen of the web, and hence, to play nicely with all the other citizens out there: Browsers, caches, proxies, crawlers and so on.

    Unfortunately, the Play Framework, like many other web frameworks, does not offer a lot of help in implementing such a well-behaved web API. However, it turns out to be quite flexible and modular, so we can easily extend it or replace parts of it that stand in our way.

    In this talk, you will learn about principles for designing well-behaved web APIs and how to implement them with Play. Daniel will discuss where Play gets in the way, show how we can overcome those obstacles and introduce a few libraries to ease the development of REST APIs with Play.

    Read more
  • Building well-behaved web APIs with Play: The obstacles and how to overcome them

    Talk Daniel Westheide Amsterdam.scala Talks & Drinks

    Building applications that follow the REST architectural style can be quite cumbersome. Like most other web frameworks out there, the Play Framework does not support you a lot in building well-behaved web APIs. On the other hand, it makes implementing not-so-restful HTTP APIs super easy. As a consequence, developers choose the path of least resistance.

    However, the Play Framework is actually quite flexible and modular, so we can replace parts that hinder us and add abstractions that help building RESTful web APIs.

    After a motivational introduction to the nature of truly RESTful web APIs, Daniel will explain where Play gets in the way of building them and show how we can overcome these obstacles. I will introduce libraries for supporting common hypermedia formats and show how to implement Play-based web APIs in a resource-oriented manner.

    Read more
  • Understanding SBT: Towards a typesafe and programmable build

    Talk Daniel Westheide Scala User Group Berlin-Brandenburg

    Every developer hates build tools, and because of that, we tend to configure our build by copying snippets from the intarweb instead of trying to understand our build tool. This is no different or even more so the case with SBT, which in some ways is fundamentally different from other build tools.

    However, by doing so, you miss out a lot of what SBT can do for you.

    In this talk, you will learn about the most important concepts underlying SBT, how it helps you to program your build in a typesafe way, and how to extract re-usable parts of your build configuration into an SBT plugin. You’ll also see how using SBT as an interactive development environment can make your daily development work much more fun and productive.

    Read more
  • Learn you an SBT for fun and profit!

    Talk Daniel Westheide ScalaDays Slides available

    SBT has been the subject of quite a bit of controversy among Scala developers. It’s different enough from other build tools that not everyone has the patience of really getting into it. As a natural consequence, they tend to either go back to the build tools they know or employ SBT in a way that is similar to what they are used to and doesn’t require them to fully understand it.

    While it is possible to build your projects with only a minimal comprehension of SBT, there is a lot to gain from really understanding how it works. If you are one of the people who have never gone a lot further than “sbt test”, this talk is for you.

    You will learn how it can make your daily Scala development workflow more productive. We’ll dive into the concepts behind SBT and see how we can embrace its interactive shell, how to customise our build to our needs, and what the SBT ecosystem of plugins has to offer to improve our development workflow.

    This talk will involve a lot of live SBT interaction, and also some coding. At the end of the talk, we will have seen not only what SBT and the existing ecosystem has to offer, but also built our own little SBT plugin.

    Read more