I like writing software and computers. I've also always been fascinated by the theory of programming languages and computation itself.
This is an important premise to make, since not everyone is coding with the same objectives as I do.
For instance I cherish safety and correctness before performance or development time, and what I cherish the most is the ability to reason about complex system via elegant abstractions, just like a mathematician loves a short but deep formula.
We should never forget that, up until now, the abstractions we developed were meant for humans to understand chasing some idea of "elegance".