I’ve always wanted to create things. Since childhood, the urge to build and understand systems has motivated me. As my technical knowledge grew, I began exploring how programs and abstractions are constructed at a fundamental level.
This drive led me to Automa, a language centered on graph-based computation. The idea came while writing code to match regular expressions using state machines. I realized that constructing and running automata should be more intuitive, and that most general-purpose languages are not well suited for expressing such systems directly.
At its core, a Turing machine—or any automaton—is just a set of states and transitions. Why not create a language that makes the structure of these machines explicit and programmable, with graphs as a first-class model?
The distinction between deterministic and non-deterministic computation became central to my thinking. Non-deterministic simulations can explore many paths; adding memory yields more powerful machines like pushdown automata and Turing machines. In a programming context, this allows for modeling computation where state, memory, and logic are fully explicit.
My goal for Automa is to provide a unified way to express computations as state machines, supporting features like non-deterministic execution, memory, and clear guarantees on program behavior. The ambition is to make automata not just a theoretical tool, but a practical programming model.
The project is ongoing and ambitious, but I’m committed to developing it further. This is both a technical and personal challenge: building a system from the ground up, rooted in the principles that first inspired me.