← back to blog

February 2026

Building Rey — why I wrote a programming language

3 minute read

I started building Rey because I wanted to understand compilers properly.

Not theoretically. Not through tutorials. Actually build one.

The first version took two weeks. The version I'm proud of took months.

Rey is a type-safe compiled programming language written in Rust. Eventually, the goal is for Rey to compile itself. Right now the compiler is still evolving, but even building the early versions changed how I think about programming completely.

You stop seeing code as magic after building a language.

You start thinking about: types, memory, evaluation, scope, parsing, ownership, runtime behavior.

Everything becomes more concrete.

I also realized programming languages have personality. Tiny syntax decisions shape how a language feels emotionally.

Some deliberate choices I made: func instead of fn int instead of i32 no trailing commas in struct literals main.rey as the entry point

These seem small, but they influence readability and developer experience heavily.

The biggest lesson from Rey is that difficult projects force deep understanding. You can't fake your way through compiler work. Eventually the abstractions collapse and you have to understand what's actually happening underneath.

I think everyone serious about software should try building a programming language once.

Even a bad one teaches you a ridiculous amount.