Macros are powerful tools that help reduce boilerplate, but they can sometimes lead to code that's hard to understand, debug and maintain.
In this talk we'll explore how to write macros in the Crystal programming language and what they can do, paying special attention to keeping their usage simple.