The rt2x00 driver in the Linux kernel could also use some refactoring - some code files have grown way too big and most of the support for more recent chips looks very wacky, because the driver framework hasn't been updated to match with the requirements of those recent platforms. Hence people have been botching up things to somehow work, but it's far from a clean design or anything like that... Yet working to improve things on that edge is still fun and I do somehow enjoy looking for needles in haystacks.
The most exciting part of all that work on rt2x00 are the people who have contacted me from all over the world, sent hardware, carried out testing and suggested improvements. In some cases we don't share a common language and thus have to communicate through machine translation, but yet sometimes I can read between the lines that we do share common goals and maybe even ideals.