Here's a theory — an ideal job is a job that fulfills your desire to code to a level in which you don't want to do any coding after work hours. There's so much challenging tasks and new things you learn right away by doing things you are paid for that you don't need to search for something new after work.
I'm fortunate enough to work in such a job, but keep in mind that it's those "holy crap I didn't know you could do it that way" moments that get you excited and can't wait to tinker with in on your own.
There's a difference between being a bored conveyor belt developer who feels unfulfilled at the end of the day and someone whose been given a new set of "lego" and cannot contain their curiosity.