I mean at the moment I'm actually changing my code that was simple at first, but over time more and more things were added and it started to complex. The thing I'm doing right now is getting rid of the complexity to add another future. Well mostly I think a big problem is that many people actually think about the design too much, since the design of a program will eventuelly be changed anyway. What worked for me was design something that works in most cases and grow that path or throw it away if it sucks.
btw. I love what antirez did and does for the community of programmers.
I always use a redis client to teach people more about network programming in java. It's a extremly simple, but still powerful command set/protocol. I hope he can keep up his work.