These end up for the most part being some multiplayer HTML5 Tech Demos (where I can play with all the fancy new Web Tech I can't use at my day job) or really old-school stuff like doing Z80 Assembly for my very own old-school Nintendo GameBoy Jump & Run (along side with a custom assembler / compiler and toolchain) and digging in dissamblies of commercial games.
I can't imaging just doing "work" code, because that can be very exhausting at times. But I certainly have no problem staying up all night and getting that game up and running around 5AM in the morning just to scribble down some more ideas before I finally head off to bed.
Now my side project is based on the database I have built at work (as an in house project). It makes it so much easier, as the hard non-coding problems are usually well understood, as I have thought about them before. I can pick it up and leave it without forgetting anywhere near as much. And it gets rid of the frustration I have at work, because the quality of the code is always ignored in favor of new feature that were needed yesterday. Same thing but with nicely written code.
I would expand this to say (just on personal experience) also have varied hobbies. They then challenge you in completely different ways allowing the exercise of one activity to be downtime from the others.
At my last job (which I burnt out on pretty badly), I was a platform-level programmer and DevOps person for a robotics startup.
When I went home, I wrote instruction set simulators for 8-bit architectures. Why? Because why the hell not?