My satisfaction as a programmer comes and goes with the project and the team. While I love building programs and working through the logic, the thing that I am building matters more to me than solving the problem. So as long as I and the people I'm working with personally care about the project, I'm happy. If I'm not interested in the project, I'll do the work (work ethic is always important) while finding another job.