Thorsten Ball

Home Books Posts Podcasts Talks Contact
Thorsten Ball's profile picture

Hi there! My name is Thorsten Ball. I'm a software engineer and writer, living in Aschaffenburg, Germany, a small city near Frankfurt am Main.

I work as a software engineer at Sourcegraph and self-published two books.

I like to develop, optimize and take care of sophisticated systems. Or put another way: I like to program where the rubber hits the road -- wherever that may be.

In the early morning hours I love to deep dive into topics that interest me: programming languages, interpreters, compilers, web servers, systems programming, Unix, databases.

I'm a big fan of digging deep and peeling away at abstraction layers to get a better sense of what I'm working with and more leverage higher up. In short: I love learning new things.


Writing An Interpreter In Go

Self-published in November 2016

In the book we build a programming language from scratch. We start with 0 lines of code and end up with a fully working interpreter for the Monkey programming language. We build the lexer, the parser, the AST, the object system, and the evaluator — written with tests first and without 3rd-party libraries. This book is not about theory, its focus is runnable, working code.

Find out more and buy it at

Writing A Compiler In Go — Available now!

Self-published in July 2018

This is the sequel to Writing An Interpreter In Go and contains the next step in the evolution of the Monkey programming language: we're switching out the tree-walking evaluator for a bytecode compiler and virtual machine. It starts where the first book ends, uses the same codebase and follows the same approach: working code front and center, written from the ground up, tested and runnable.

Find out more and buy it at


You can subscribe to post updates via the Atom feed.




Never hesitate to send me an email at I love getting email from you.

You can also find me on Twitter, GitHub, LinkedIn, XING and Facebook.

I also maintain a mailing list, on which I sent out occasional updates about my book or this blog. I won't spam you and you can unsubscribe at any time.

Keep me updated!