From the Preface
Who This Book Is For
This book is for anyone who wants to learn how to build real software from scratch with a cutting-edge language. Maybe you learned Scala or Clojure on the job, but want to learn more about how to work "close to the metal" in a functional language. Maybe you're an enthusiast and want to write smaller, lightweight Scala programs that perform on tiny, near-embedded Linux sys- tems. Or maybe you're a devops engineer with a strong Java background, who is just learning Scala, and you want to write strongly typed, testable code that doesn't impose the runtime penalties of the JVM. In other words, this book is for the folks who are my peers and colleagues in the Scala and greater JVM-language community.
I've tried my hardest to make this book accessible to folks with no prior sys- tems programming experience you'll learn about arrays, pointers, and the rest, as we go along.
All the code is in Scala, but we won't be using the advanced Scala techniques you might find in a functional programming text. When we do use intermedi- ate-level techniques like implicits, I'll call them out.
That said, a few days worth of experience with Scala is highly recommended. If you're totally new to Scala, there are a lot of great resources online.
What's In This Book
This book is designed as a series of projects that introduce the fundamental and powerful techniques of systems programming, one by one. Each chapter discusses an important topic in systems programming, and in the spirit of adventure, we may not always take the most direct route to our destination. Sometimes its best to make a few mistakes, or do things by hand a few times before we skip ahead to the right answer.
The work will all pay off, though. As you progress and master more and more techniques, you will gradually put the pieces together into something greater than the sum of its parts. And by the end, not only will you have the code for a lightweight, asynchronous microservice framework, you'll also be able to write one yourself if you don't like the way I did it.
About the Author
Richard is a data engineering consultant at Spantree Technology Group in Chicago, where he designs large data pipelines using Scala-based technologies like Spark and Akka. He's made open-source contributions to Scala Native and Apache Kafka, and he blogs and speaks frequently about Scala and other functional programming topics.