Scala is a recent “object-functional” programming language that has been growing in popularity over the last few years. It runs on the JVM and integrates well with the JVM ecosystem, which makes it a good option in the enterprise world. It can be written as “Java without as much boilerplate”, or as “Haskell that somehow compiles to Java”. This presentation will go over the basics of Scala syntax, the type system, and then some more advanced type system tricks. The main focus will be on type classes, though some of what makes Scala a good language for embedded domain specific languages will also be covered. No prerequisite knowledge of Scala is required.