The Linux Kernel has a concept called "Janitors". They are people that do 'thankless' work, much as Janitors in real life do. Things like fixing trivial warnings, cleaning up formatting, fixing layout, etc.
Anytime I want to have a really good time coding, I pick up a janitor project. Its a lot of work, and its usually repetitive, so its an ambitious undertaking. It improves the overall quality of the code, while usually having minimal impact on the app itself, so it doesn't require substantial testing. Best of all, since it doesn't have user-impact, the only people likely to complain would be other devs - and they LOVE code that has been cleaned up.
I know, it sounds very OCD, and perhaps thats where I channel my OCD-ness (cause man, it aint anywhere else in my life!). But for me, thats my idea of a great time. As an example, I recently had to manually convert over 1,000 SQL statements in Blacknova Traders to use bind variables - adding more security to the game.
I also enjoy adding new features that people really want that I have a unique solution to. Unique solutions mean you get to describe them, and explain them, and thats fun.
