Using traits as precise boundaries in Scala
Traits can define capabilities, share behaviour and close a domain hierarchy; those are different jobs with different design trade-offs.
Read articleInsights
Technical articles on languages, databases, serverless platforms and the awkward realities of keeping systems moving.
Showing 19–27 of 28 Scala articles
Traits can define capabilities, share behaviour and close a domain hierarchy; those are different jobs with different design trade-offs.
Read articleHow a typeclass separates behaviour from data, how Scala 2 implicits and Scala 3 given instances supply evidence, and when the pattern is worth using.
Read articleModel expected failures with sealed types and Either, keep unexpected failures distinct, and translate both deliberately at HTTP and asynchronous boundaries.
Read articleHow Option, Either, collections, Future and IO represent different computational contexts, and how map, flatMap and for-comprehensions compose them.
Read articleA type-led guide to transforming and sequencing Option, Either, collections, Future and IO, including for-comprehension translation and common nesting mistakes.
Read articleWhy returning JsValue from a service and hiding data shapes behind aliases can weaken a Scala application, and how to keep Play HTTP, domain and persistence contracts explicit.
Read articleA technical guide to Scala’s type system, execution models, common use cases and the libraries that turn the language into a production stack.
Read articleA technical decision guide to compatibility, macros, dependencies, compiler migration modes, cross-building and a staged route from Scala 2.13 to Scala 3.
Read articleThe Play version gets the blame, but the real trouble is often hiding elsewhere.
Read articleStart a conversation
A feature that needs shipping, an ageing service that needs attention, or a deployment that has become harder than the code. Talk to us about your problems.