May 2025
Some weekends you fix a leaky sink and order groceries. Other weekends you wonder, “How hard could it be to write a tiny math interpreter?”
That second question is what got me into learning how parsers are built, even though I never expected to use it in production.
Every now and then I copy-paste a quick calculation into the macOS Spotlight bar, hit Enter, and feel a little guilty. Spotlight hides the details; it never shows how it got the answer. I wanted a tool that was mine, whose guts I understood, and that I could throw behind an HTTP endpoint if I ever felt like it.
Language: Go for simple tooling, static binary, cheap goroutines.
Design: classic shunting-yard -> postfix -> evaluate.
Minimal dependencies: Own logger, queue, stack, and parser.
Ridiculously over-engineered for something nobody had asked me to build. Perfect.
Because projects are not real until you can send someone a link:
Here you go: https://numero.vivekn.dev
Almost certainly not. But I did, not for the functionality, but for the joy of programming. In my head, fun is a perfectly legitimate product requirement.
If you ever need a lightweight way to evaluate sin(pi/2) + ln(e) from Go or curl, steal it. If you just want to browse the source and mutter “huh, neat”, that’s fine too.
Happy hacking.
Vivek
<- back to home