Software Engineer • Photographer* • Nice Guy**
I’ve been writing code for as long as I can remember. I started with C, Pascal, and x86 assembly, moved on to C# and Java, and these days I mostly reach for Rust and Go—though I still come back to Java and Python when they’re the right tool. I like learning new languages. Each one makes you look at the same problems a little differently, and I find that genuinely fun.
Most of my career has gone into designing and building systems, including large distributed ones—data pipelines, cloud microservices, event-driven architectures. I’ve built text message processors and routing systems where correctness and reliability mattered far more than elegance, and I’ve led teams through the slow, unglamorous work of turning legacy systems into something modern and maintainable.
I’ve worked as an engineer, team lead, engineering manager, and CTO. Managing and leading taught me that the hard part of a long-lived system usually isn’t the code—it’s getting people to agree on how it works and why. Good diagrams help, but shared understanding is what keeps a system alive.
After all that, I still love small, hands-on projects. I write parsers, build Lisp interpreters, and mess around with language design—small problems, stripped down to the fundamentals, that remind me why I got into this in the first place. I don’t mind reinventing the wheel. Honestly, I love doing it.
I’m as interested in old systems as new ones—there’s a lot to learn from how people solved problems decades ago, back when the constraints were tighter. I’m still curious, still learning, and still looking for work that keeps me on my toes.
* I am not a real photographer, but I like to take photos and sometimes they turn out not bad.
** I am not sure about this one, but I try to be nice.