No, really, sometimes it's "hard-work-discouraging-hard".  I don't know anyone who thinks it's fun to pour through strace or tcpdump output trying to figure out obscure bugs at the OS or network layers.  I've known a couple people who liked looking at generated assembly to debug compiler issues, but they are a rare breed.  Race conditions or 1 in a million bugs really suck.  Trying to debug any of these things while your company hemorrhages money or the phones are ringing off the hook with pissed-off customers; any "fun" you're having is just the adrenalin trying to keep you from being eaten by a tiger.<p>Working on hard problems, of your choosing, on your own schedule, can be fun and rewarding.  But the reality is, you're not always going to get that.