I’m Nathan. I’m drawn to the place where computation and mathematics meet: compiler design, finite automata, models of computation, simulation. Working out why something holds on paper, then writing the code that makes it hold on a machine, is the part I actually enjoy - the theory is the point, and the program is how I find out whether I understood it.

I’m currently pursuing a degree in computation and mathematics.

Alongside that I’m interested in philosophy and hacking, and I keep returning to the same lineage: von Neumann and the machines he imagined, John Archibald Wheeler, and the questions around von Neumann probes, robots and self-replicating systems - what it means for a thing to build a copy of itself, and where that idea stops being a metaphor.

Some of that lands as code. A recent one is an error-correcting program built from Reed-Solomon codes over GF(2^8): finite field arithmetic, generator polynomials and encoding all work, with Berlekamp-Massey in place for the decoding side. Correction isn’t finished yet.

Most of what I know, I learned by building it. That habit is what this blog is: write-ups where I work through a problem in public, including the parts that don’t work the first time.

What you’ll find here

Elsewhere

Get in touch

For anything that benefits from being public, the best way to reach me is to open an issue on this site’s repository - it keeps questions public and helps other people find the answers too.

Nothing here yet.