BREAKING
Thorsten Ball: The Engineer Who Made Compilers Make Sense /// Author of "Writing an Interpreter in Go" and "Writing a Compiler in Go" /// Register Spill Newsletter - Where Systems Thinking Spills Into Prose /// Currently Building AI Coding Agents at Sourcegraph Amp /// 46K+ Twitter Followers. 500+ PRs Merged at Zed. Two Books That Ship to Your Brain. /// Thorsten Ball: The Engineer Who Made Compilers Make Sense /// Author of "Writing an Interpreter in Go" and "Writing a Compiler in Go" /// Register Spill Newsletter - Where Systems Thinking Spills Into Prose /// Currently Building AI Coding Agents at Sourcegraph Amp /// 46K+ Twitter Followers. 500+ PRs Merged at Zed. Two Books That Ship to Your Brain. ///
Thorsten Ball

Thorsten Ball

Software Engineer / Author / Systems Thinker

ThorstenBall

"I want my whole computing environment to be programmable."

A German software engineer who decided the best way to understand something was to build it - and then write a book about it. Thorsten Ball turned compilers and interpreters from intimidating black boxes into teachable, writable code. Two self-published books later, thousands of developers understand how languages actually work. Now he's applying that same first-principles thinking to AI coding agents at Sourcegraph.

Engineer Author Creator Bavaria, Germany Sourcegraph Amp
2
Books Published
46K+
Twitter Followers
500+
PRs Merged at Zed
20+
Years Engineering
2023
Register Spill Launched
5
Years at Sourcegraph (1st run)

The Man Who Taught the Internet to Write a Compiler

Most people, when confronted with something they don't understand, reach for a tutorial. Thorsten Ball reached for a blank text file, typed package main, and started building. That instinct - learn by doing, then teach by writing - turned him into one of the most respected technical educators in the Go community and beyond.

Ball is a software engineer based in Großwallstadt, Bavaria, a small town in Germany with roughly 6,000 residents and at least one person who thinks deeply about register allocation. He has been writing professional software for over two decades, working his way through Ruby, JavaScript, Go, and C - not as language tourism but as the natural vocabulary of different problems. His career arc moved from early startup work at Flinc, a ride-sharing company in Darmstadt, through five years at Sourcegraph, a stint at Zed, and back to Sourcegraph again. Each stop left visible marks on open-source repositories and on the people who worked alongside him.

What separates Ball from the average prolific engineer is that he writes. Not documentation. Not internal READMEs. Real writing - the kind that makes you feel like someone is sitting across a table explaining something they genuinely find delightful. His blog has been active since 2012. His newsletter, Register Spill, launched in April 2023 and has become a weekly fixture for engineers who want more signal and less noise in their reading diet. The name is a CPU term: when a processor runs out of registers to hold values, the overflow spills into memory. It is, as metaphors go, exactly right for a man whose thoughts on systems programming reliably exceed whatever container he starts with.

"Writing a book is the best way to learn something deeply - you can't hide from the gaps in your knowledge."
- Thorsten Ball

The two books that made his name - Writing an Interpreter in Go (2016) and Writing a Compiler in Go (2018) - arrived at exactly the right moment. Go was becoming a serious production language. Developers wanted to understand it at a deeper level. And the gap between "I know how to use a language" and "I understand how a language is built" felt impossibly wide. Ball closed that gap with a fictional language called Monkey and a writing style that trusts the reader to keep up. No hand-holding. No condescension. Just: here's the code, here's why it works, here's what happens when it doesn't. The books are self-published, which means Ball controls everything - the pace, the tone, the decision to skip the parts that would add pages but remove clarity.

These are not textbooks. They are more like technical dispatches from someone who has just figured something out and cannot wait to explain it. That quality - the excitement of recent discovery preserved in prose - is what keeps developers recommending them years after publication.

From Startups to Systems, From Vim to Zed

Ball's time at Sourcegraph - his first stint, spanning roughly five years - was spent on the Batch Changes team, a product that automates large-scale code modifications across entire repositories. It is infrastructure work, the kind that companies pay for precisely because it saves engineering hours at scale. He did it well enough that it became a meaningful revenue line. Then, at the end of 2023, he left for Zed.

Zed is a code editor - fast, minimalist, and built in Rust. It was also, at the time Ball joined, trying to become the editor that serious engineers would reach for when VS Code felt too heavy and Vim felt too unforgiving. Ball merged approximately 500 pull requests during his year there, working on Predictive Edits, inline completions, and Vim mode. That last item has a particular irony: Ball is a longtime Vim devotee, one of those engineers who treats keybindings as muscle memory and configuration files as art. Working on a Vim implementation for a non-Vim editor meant he knew exactly where the sharp edges were.

In January 2025, he returned to Sourcegraph to work on Amp, an AI-powered coding agent. The timing is not accidental. The question of what AI-assisted software development actually looks like - what it can do, what it cannot, where human judgment remains irreplaceable - is precisely the kind of problem Ball gravitates toward. He has been characteristically direct about the state of AI coding tools, publishing essays that cut through the hype to ask what is actually happening under the hood.

"I basically want my whole computing environment to be programmable."
- Thorsten Ball, in a Sourcegraph interview

That statement, simple as it sounds, is the key to understanding how Ball thinks. He is not chasing novelty. He is not interested in tools for tools' sake. He wants environments that bend to his will - that can be extended, automated, and made to behave like he thinks rather than like whoever wrote the defaults thought. It is the disposition of someone who has spent 20 years noticing the gap between how software works and how it could work, and who refuses to treat that gap as someone else's problem.

Register Spill: Overflow Thoughts from a Systems Mind

The newsletter launched in April 2023 and settled into a rhythm that suits Ball's writing style - weekly, informal, dense with actual thought. A recurring feature called "Joy and Curiosity" collects links and observations the way a good editor would: with a clear point of view about what matters. Ball does not summarize the internet. He filters it through a specific sensibility - systems-first, skeptical of hype, interested in the mechanics beneath the surface of whatever everyone else is talking about.

His blog at thorstenball.com has accumulated posts since 2012, including a widely read piece on his first ten years as a professional programmer. That essay is a rare thing: a technical retrospective that is also honest about uncertainty, about the things you learn by making mistakes that could have been avoided, and about the things that can only be learned by making them. It has the quality of advice from someone who is not selling anything.

Ball has appeared on a remarkable number of podcasts: Go Time, CoRecursive, Changelog, Software Unscripted, Latent Space, Hanselminutes, The Tuple Podcast. He talks the way he writes - direct, curious, willing to say what he actually thinks rather than what the audience might want to hear. The CoRecursive episode on compilers and the Changelog interview on AI agents are particularly representative of how he approaches hard technical questions: not with false confidence, but with visible interest in getting the answer right.

He has given talks at developer conferences across Europe - ArrrrCamp in Belgium, wroc_love.rb in Poland, Elixir RheinMain, the Frankfurt Gophers meetup, and more recently the Homebrew Systems Club in Munich. The range tells you something: he is not a specialist who stays in one lane. He follows problems where they lead, whether that's Unix process magic, Elixir macros, Brainfuck virtual machines, or AI coding agents.

Achievements
  • Self-published two definitive books on interpreter and compiler construction in Go
  • 46,000+ Twitter/X followers as a leading voice in systems programming
  • Contributed ~500 pull requests during his year at Zed editor
  • Key contributor to Sourcegraph Batch Changes, a significant revenue product
  • Over 20 years of professional software engineering across Ruby, Go, C, JavaScript
  • Active speaker at developer conferences across Europe (Belgium, Poland, Germany)
Career Timeline
  • 2012 Started technical blogging at thorstenball.com
  • ~2014 Software engineer at Flinc, ride-sharing startup, Darmstadt
  • 2016 Published "Writing an Interpreter in Go"
  • 2018 Published "Writing a Compiler in Go"
  • ~2018 Joined Sourcegraph as software engineer
  • 2023 Launched Register Spill newsletter. Left Sourcegraph for Zed.
  • 2024 Merged 500+ PRs at Zed on Predictive Edits and Vim mode
  • 2025 Rejoined Sourcegraph to build Amp, AI coding agent
Topics
Compilers Interpreters Go Systems AI Coding Neovim Developer Tools Technical Writing Open Source Newsletter

Two Books. One Fictional Language. Thousands of Converted Developers.

2016

Writing an Interpreter in Go

Start with a blank Go file. End with a working interpreter for the Monkey programming language - complete with lexer, parser, AST, REPL, and evaluator. No prior compiler knowledge required. Just follow the code.

interpreterbook.com
2018

Writing a Compiler in Go

The sequel takes Monkey further: compile it to bytecode and run it on a virtual machine. Where the first book explains interpretation, this one explains compilation - the full chain from source to execution.

compilerbook.com
"The emperor has no clothes - most AI coding agents are much simpler under the hood than people think."
- Thorsten Ball, Latent Space Podcast, September 2025

Facts Worth Knowing

🏷️

His GitHub handle is mrnugget - a fun alias with no obvious connection to his work on compilers and language runtimes.

🏡

He lives in Großwallstadt, Bavaria - a town of roughly 6,000 people. Silicon Valley is not required to build things used by engineers worldwide.

⌨️

A dedicated Vim/Neovim user who briefly switched to Zed while working there, then returned to Neovim. He worked on Zed's Vim mode, so he knows exactly where it falls short.

📝

All his writing starts as plain Markdown in Vim - books, blog posts, newsletter issues. The toolchain is the message.

🧠

Register Spill is a CPU term: when there are more values than registers can hold, the overflow spills into memory. Fitting name for a newsletter about overflow thoughts from a systems mind.

🐒

The programming language in his books is called Monkey. It is fictional. It is fully functional. And now thousands of engineers have built it from scratch.