Always code as if the guy who ends up maintaining it will be a violent psychopath who knows where you live
Good code is an art form, and like any good art, it's worth sharing. I have been developing software professionally for close to two decades now, and have always been striving to help others with guidance, advice and good open source code. Not to say that everything in my public repo is "good", but at least I can hope that it might be useful in some fashion. If nothing else, it's always been a hobby that has allowed me to step outside the corporate-imposed boundaries of software development; sometimes, you have to go and play with the new toys.
In both my personal and professional life, I tend to be a generalist, dabbling in a little of everything, but here are some of the key areas that I like to spend time on:
I spend a lot of my work and free time coding on my Java and Groovy programming projects while learning and exploring new technologies, programming languages and frameworks.
My wife is an important part of my life. We cook together, play together and generally explore life together whenever we can. I also enjoy reading and watching science fiction.
Many of my projects start out as an experiment or proof-of-concept and never really progress much farther than that. I often call my GitHub repository, "the place where my projects go to die", but that's not entirely accurate since there are a handful that I continue to spend a lot of time on. Some people have a beat up old car in their garage that they work on from time to time - these are mine:
My version of the ever-present "common" library, that is a place where you put code that doesn't seem to fit in anywhere else, but you find yourself using quite often.
An effort with a buddy of mine to renovate and modernize an older project for simplifying HTTP client code - a modern Groovy DSL for making http requests.
A "mock" HTTP server library for testing HTTP clients allowing for server-side request/response expectations to be configured so that your client library can mak real HTTP calls and get back real pre-configured responses rather than fake stubs.
Gradle plugin to help preview site documentation or other web content locally by starting an embedded web server with the configured content.
Gradle plugin to aid in managing native libraries associated with Java-based projects. I developed this while playing with game programming in Java, and it seems to have picked up a few users so I try to at least keep it working.
A Gradle plugin that adds some useful tasks for better managing project dependencies, especially in an enterprise environment.
Gradle plugin which provides tasks and conventions to help with creating a project web site and other documentation.
An abandoned Groovy library used to create compile-time generated JDBC row mappers. It was a bit of a failure, but an interesting experiment and some good Groovy AST code examples.