Alternatively, are there good ways to get more satisfaction out of my job, possibly by leveraging my participation in SO?
Because the community is engaging, gives you new and different problems to solve, your help is appreciated and no one can force you to do something that you don't want to (as long as you don't want to troll or set thing on fire) and you don't have the stress of having to answer correctly or you'll lose your food (being fired). Lack of having to answer to a clueless PHB is just a plus.
In short: You are here for intellectual leisure/engagement/fun, you are at work to get money so you can eat every day and sleep comfortably (consumerism aside).
Short answer? Because many (if not most) programming jobs turn into a soul-sucking slow torture of meetings, overbearing process, second-rate solutions in the name of compromise and dealing with clueless and/or unreasonable people who often view what you do as an unfortunate cost centre.
Whereas on SO you're generally talking to a better class of programmers. I say this because those who bother to read and post on SO are generally more interested in self-development than perhaps the average Joe (Programmer). To such people learning something and teaching something to someone who is generally interested is more rewarding.
May I add to Voyager's answer that we shouldn't underestimate the reputation effect?
I don't answer questions BECAUSE of reputation - I do it out of a genuine interest in helping out others and myself (by learning while I answer them).
But there is an incredible satisfying effect - at least to me - in seeing my contribution being valued right away in a quantifiable manner. By my peers no less, not by a person that might understand very little of what we do.
How often at work can we say that we had an impact of 2 out of 10 on anything we do?
Now, sure, there are people that are hunting reputation - even gaming for it. And that detracts from the spirit of SO. But it is undeniable that reputation plays a role...
Or is it just me?
Edit: I didn't realize there was a sub-question. How to leverage your SO participation?
Again, I think reputation plays a role. The more reputable you are on a site by developers, for developers; the more likely you are to be invited/contacted/considered for a better job.
Yeah - I believe it may help you land a better job.
I recommended to the HR of the company that currently rents my brain that they ask candidates if they participate in SO (or to just look if they can find the guy/gal here).
I can't be the one that had that idea... :-)
Can I suggest careers.stackoverflow.com?
Get a job where the work environment is good and you interact with interesting colleagues.
I think it's because you enjoy an intellectual challenge that you're maybe not getting from your day job. I love my job, but I have a root around Stack Overflow for interesting questions during the day because it allows my brain to take a break from the problem or task at hand in work.
I also like problem solving and in my day job I'm not problem solving 100% of the time. For example, you may have a task to complete where system X needs to talk to system Y and there isn't a documented mechanism to do this. So you solve the problem which may have taken 20%-30% of your time, that's the interesting bit. The rest is turning that communication mechanism into robust production code and getting it tested thoroughly and deployed, that's less fun. Hence you turn to Stack Overflow for interesting problems to solve whilst completing the less interesting part of your project or task.
Because SO makes learning new things fun: you learn by helping others, and you learn by being helped. Also, there are no restrictions regarding the time you spend here: stay as much or as little as you want, and your only deadlines are the ones that you impose to yourself (let's see if I can gather 1000 rep. in a week, or stuff like that).
The reason we enjoy Stack Overflow is because we can be successful very easily and quickly. There are enough questions here that we can find one that we are able to answer - this is a win. Then people up vote or accept the answer, and we feel very successful.
At most jobs you probably don't have a project that can be completed to success in the same amount of time. And if you did then you probably wouldn't have someone come put a big gold star on your computer monitor, or some other instant recognition of your success. Most likely you just get another change request in your queue.
With Stack Overflow there is no feature backlog or deadlines, which makes it significantly less stressful and more enjoyable.
Because the positives/negatives ratio isn't the same. At work, if you do well, there can be great positives, but if you don't, there can be severe negatives. On SO, if you do well, there are moderate positives, but if you don't, there are negligible negatives.
So what happens if you're not good at SO? You lose some rep, which is only marginally meaningful in the first place. And on top of that, you can delete your bad posts and request rep recalcs, so you don't really even have to suffer that already-minimal pain. On the other hand, if you do well, you get respect from your fellow programmers, a lot more knowledge and the option to participate more fully in the running of the site via unlocked abilities, particularly the 2k, 3k and 10k tools. Again, in a nutshell, SO participation is almost all good stuff.
On the other hand, at work, there's plenty of potential bad. There can be a lot of stress caused by not wanting to be jobless, hungry and cold. And when you have to think about that all the time, it can be easy to lose sight of what you like about your job, even if you have a lot to like.