For me, and at this exact point in my career, a good job is a combination of 5 factors :
It's very important to enjoy your job and love what you do. A lot of people say you should find a job that you would do regardless of the money, but I don't believe that many people would get up early in the morning and go to an office for free, I do enjoy my job but the fundamental reason why I got a job is to earn money it's an important factor.
I want to be learning new stuff every day, I want to develop new competencies and sharpen the skills I already have. The technical skills, that would be the programming languages, the techniques, the concepts, and the tools. The other part of learning would be personal development, for example working better as a team or being more productive.
3. Good work-life balance
I agree that the responsibility of keeping the balance is on me of course but the job shouldn’t get on the way. I like the expression that Matthew Jones said in his blog post: “Show up, kick ass, and go home”
This factor englobes many points, the team, the projects, how challenged I am, the company's culture and don't wanna be bored at work
5. Making a difference
I don't want to feel that my work is pointless, I want to feel that it's worthwhile.
I am aware that not all jobs out there have those factors 100% covered and even the ones that do they might be for now but as I progress in my career and gather more expertise the job will become unfulfilling at some point.