Big pay packet. Great pension plan. Stack of benefits. Interesting problems. An office (with door and windows), or at least an office shared with only a couple of other people. Multiple monitors, decent hardware, company practices that meet expectations (source control, code reviews, etc etc). I'm not obsessed with any of the coding religions (XP, agile, waterfall, pair-programming and all the rest - you know who you are, and no, of course I don't mean _your_ particular religion, reader, you've got the one true faith so there's no need to argue) but reasonable management with an understanding that estimates will only ever be estimates and that coding is not at all like building a bridge.