Like most professional programmers, I often develop various computer utilities and programs in my spare time (for two reasons: to solve a problem at hand, and to experiment with new languages, tools, and paradigms that I don't use in my day job) and if any of those programs might be of use to other people, I publish them for the world to use.