I'm Ari Victor. I work in security engineering at a large Australian superannuation fund, and before that spent years across cloud, software, and blockchain teams. I write Go and Python, and most of what I believe about architecture comes from changes that took weeks when they should have taken one.

I built this site because the pattern references I found showed the code but skipped the decision making. Why should I use this pattern, and not that one? When should I reach for a pattern, and when should I just write code? What are the tradeoffs of each choice? My goal with Intentional Code is to share the philosphy I have come up with over the years for making those decisions. They are inspired by existing patterns, existing works, and my own experience, but they are not a copy of any of those. They are my take on the question of how to write intentional code in Go. Every page here takes a position on that. Some of those positions will be wrong.

If you disagree with one, say so with a reason (that's tenet #10). The whole site is open source: github.com/arivictor/intentional-code.