I'm editing this post over time - it's in chronological order - latest last.
20110921: I'm looking for work. Here's what I'm thinking would be ideal (this changes because I learn something new on every project - I'll keep this post up to date):
A long term (contract or perm) engagement with a team working on legacy apps. That's where the real challenge is - greenfield is easy. I'm dead serious about this. I know: every developer wants to get in on the ground floor of the next big cloud/social/multiplatform/HTML5/your-hot-language-here killer app. Not me. I do that at home. At work I want a challenge of a particular type: the combination of technology and social interaction that is Agile and the jungle of legacy code.
Notice I say "team". Ideally this would be a functioning XP team (if you think I'm talking about an old but still kicking OS, our relationship is already in trouble). Or - better: a newly formed team in an organization that sincerely wants to go Agile and understands that Scrum is about management, not development: XP is a Agile methodology for developers.
I recently had a disastrous stint with a company that did not understand Agile. I was actually told not to talk to other developers about what I was working on, because they were "busy". Right. These folks misrepresented themselves as open to Agile. They weren't - or more charitably, maybe they just didn't know. Oh sure, they had daily standups. But in terms of development process they were mostly in the Cowboy/Hero mode.
As a matter of fact, I'm a terrific team member and mentor. I always work Test-Driven (TDD and BDD) even if nobody else is, but I'm glad to show teammates how productive it can be - I gained some converts on the project I'm now rolling off. (If you have a problem with TDD/BDD - again, our relationship is already in trouble.)
I am absolutely not interested in being an architect, QA tester, business analyst, DBA, Websphere administrator, etc., etc. I'm a software developer: J2EE, DotNET or Rails, frontend, middle or backend - ready willing to learn new OO or functional languages and frameworks and work in new domains. (Of course, as an XP developer I have done all of the jobs above - as part of my normal development duties.)
Yes - I need to put food on the table and in bad times I take bad jobs. Fortunately this is not a bad time. But you'll have to be honest with me: if you think Agile - XP in particular - is a bad idea, or it's being forced down your throat by Corporate and you'll show them!, better you don't even phonescreen me.
20110922: Did I mention that I live and work in Chicago and will not travel or relocate?
20111011: Kent Beck recently said a lot of what I'm thinking in
My Ideal Job Description.
20120609: After a year as the primary developer on Northern Trust's highest profile application (Goals Driven Investing), I've learned a lot about teams, code quality, process, etc. in a corporate environment struggling to become Agile. One lesson: how quickly a greenfield app becomes a legacy app when ACPs (Alien Cowboy Programmers) are involved. Will be posting more on this soon.
20121201: Not much to add except: TDD is non-negotiable. I will not work in an environment that does not allow developers to work this way. It's a matter of safety, both for the software and its developers.