About

I'm Armando Zarate. I build software with the discipline of a craft and the precision of a formal language. I don't consider myself an architect who draws blueprints from afar — I prefer the term software craftsman: someone who works the material up close, who understands that every design decision is, at its core, a decision about meaning.

My work revolves around Domain-Driven Design, event-driven architectures, and financial systems where ambiguity has real consequences. But what runs through all of it is a conviction: the genuinely hard problems of software are not technology problems — they are problems of human communication. When a system fails in ways no one anticipated, the root cause is almost always a misunderstanding that was encoded without anyone noticing. Language does not describe the domain — it constitutes it.

That perspective has deep roots. I read software through the philosophy of language — Frege, Wittgenstein, Kripke — because their questions about reference, meaning, and identity are the same questions we face every time we model a domain. This is not a decorative metaphor. It is the lens through which I work.

In this blog you will find essays where those two traditions converge: the rigor of domain modeling and the clarity that comes from thinking seriously about language. There are no recipes or packaged solutions — only questions worth asking before writing the first line of code.

If you'd like to discuss these topics, you can find me onX/Twitter,LinkedIn, or reach out directly.