I built a programming language from scratch. It's called Phoenix.
Why? Not because the world needed another language. But because building one teaches you things nothing else can.
When you build a lexer, you understand how computers read code. When you build a parser, you see how syntax becomes structure. When you implement an AST, you grasp how machines transform human intent into executable logic.
The experience changed how I think about every tool I use. Python, JavaScript, Rust — they're all making design tradeoffs. Once you've made those tradeoffs yourself, you see programming differently.
What building Phoenix taught me: simplicity is harder than complexity (cutting features is harder than adding them), documentation matters as much as code (nobody uses what they can't understand), and building tools is often more impactful than using them.
You don't have to build a programming language. But understanding HOW languages work — lexical analysis, parsing, type systems, evaluation — makes you a fundamentally better engineer.
Some of the most interesting innovations come from building things nobody asked for. Phoenix was my "thing nobody asked for." And it taught me more than any project I was paid to build.
Sometimes, the best education is the side quest.