Nim is a statically typed language with a comprehensive meta-programming system. This makes it a really nice fit for micro-controllers, or otherwise hardware constrained environments (or to just use less resources in general). Based on my experiences with Nim and micro-controllers I'll dive into how meta-programming, DSLs, and Nims rich type system can be used to make nice readable code for micro-controllers without any added overhead compared to C. Both in terms of code-size, but also in terms of speed, in fact the code executed on the controller is pretty much the exact same thing, but with vastly improved ergonomics.