What's Your Perfect Job? Perfect Employer?

I was thinking about this the other day and decided to write it down. I threw in some explanatory comments in case anyone wants to try and understand it, but mostly this one is intended for me.

I'm 41 years old (physically, that is - mentally, I might be 14 on a good day), so I've got roughly 20 years worth of experience in various positions at several different types of employers. I've worked for a college (and also a university), a manufacturing company, a consulting company, a tech support provider, and a major retailer. I've worked on level 1, 2, and 3 support at a help desk, been a network administrator, a Notes administrator and developer (many times), a technology-agnostic developer, an architect, a tech lead, and a department manager. Oh, and I've flipped burgers, too, but not since I was 18...

So when I look at jobs and employers, either the one I have now (at the legendary Acme, Inc) or potential ones I see posted or am asked to consider, do I use all of that experience to make sure I've found a good match? Well, not really. At least, not in any formal, structured way. Like most people, I ask questions and try to find out if the job is a good fit, but ultimately I tend to go with my gut reaction. And I think I should stop doing that, because sometimes it misleads me. So that's why I'm writing this down now, because I want to be able to refer back to it. It will change over time, of course - there are things on this list that I wouldn't have thought of 10 or even 5 years ago. 

In no particular order, here are some of the factors that make a job a good or bad fit for me. There's not a job in the world that meets all of these requirements (well, I suppose I could start my own company and make all the rules myself), but if there are too many places where a job doesn't line up that should send up a warning flag.

The most important thing I want out of a job? In a word, it has to be challenging

What do I want to do at work? I like Notes and Domino and various web technologies best, but I'm a geek - I like technology in general. I like solving problems and troubleshooting. I like designing systems from the ground up. I like writing. I don't necessarily *like* speaking in public, but I like the challenge of facing down one of my bigger fears, and I like the fact that I am (reportedly) pretty good at it. I like making decisions, in part because I don't like it when other people make bad decisions and leave me to deal with the consequences. I like helping people. I like finding ways to make people, processes, and systems more efficient. I like working with smart people, the smarter the better (I don't need to be the Alpha Geek on a team, though I often am).

What don't I want to do while I'm at work? I don't ever want to work phone support again (*shudder*). I don't want to be in pure maintenance/support mode as a developer, where I'm not allowed to build new things and spend all my time keeping old ones patched together. I don't like to be bored. I really don't like repetitive manual tasks (I do love to automate them, though), and I also don't like red tape and administrivia - which I consider to be a particularly pernicious form of repetitive manual task. 

Technical Issues:
  • I want the ability to install tools on my computer without getting 23 approvals and having an official company representative install it for me...
  • Employees should be allowed, nay encouraged, to use open source software and freeware, not barred from it (grrrrrrr, recent pet peeve here).
  • Speaking of open source software, when I write something interesting that doesn't give the company a competitive advantage (or can't be sold), I should be able to release it as open source. It's good PR for the company, it gives us free testing and bug reports, and other developers will often improve on it and donate their improvements. Participation in the OSS community is *not* a bad thing...
  • I'd like control over what is and is not running on my computer (I know, what are the odds of THAT, right?)
  • The company should recognize that good hardware does make you more productive - multiple monitors, lots of RAM, fast processors and drives, etc.
  • It would be nice to have the ability to use Mac/Linux on my work computer (yes, Greyhawk, I am totally jealous that you convinced your boss to let you use a Mac! You rock, man!).
  • I need 24x7x365 access to email, whether Craicberry or iPhone or whatever device is more appropriate.
  • Everyone should have access to community tools (external Sametime servers and blogs and forums and newsgroups and ...).

Career Development:
  • Speaking at conferences and writing articles should not only be permitted, it should be strongly encouraged.
  • Blogging should be a given, not a violation of the rules or a "don't ask, don't tell" proposition.
  • Participation in IBM/Lotus partner programs - Business Partner or Design Partner or Global Customer Partnership Council - should be considered part of the job. Insert other primary vendor/partner relationships as appropriate.

Company Style/Work Environment:
  • People should be valued for who they are and what they do, rather than how they look or how well they play political games.
  • Dress codes are From Hell - and neckties are Evil (don't get me wrong, I have no issue with looking professional - I just firmly believe that I can do that without strangling myself); business casual is fine, but truly casual is preferred when not in "impress the client" mode, which really should be most of the time.
  • Offices are vastly preferred over cube farms, but that's almost impossible to find - the minimally acceptable alternative is a relatively quiet work area (I worked above a manufacturing floor once, and that'll never happen again).

Process and Controls:
  • I don't like working on systems that are subject to FDA regulation - been there, done that, was really annoyed by it.
  • I don't like SOX compliance - am there, doing that, pretty irritated about it (and yes, I realize that wouldn't leave many companies to choose from, but then this is a wish list, after all).
  • I don't like PCI compliance - am there, doing that, moderately irritated about it.
  • On the other hand, (and I'm on record as saying so, forcefully) I absolutely do not approve of people who let their developers loose on production servers - I *like* controls, I just want them to be appropriate to the risk and not one-size-fits-all.

Benefits/Compensation:
  • Look, we all like to get paid, but it's not the only thing that matters. Salary goes together with atmosphere, commute/travel, flexibility, and family-friendliness to me. It's the whole work/life balance issue, and money can't buy you sanity. Enough money can compensate for issues in other areas (though eventually that wears out, I've found); great situations in other areas make smaller salaries more reasonable. 
  • Three weeks vacation should be the minimum starting point, preferably four for experienced professionals.
  • Attendance at Lotusphere is mandatory, whether I'm speaking at the conference or not. If there is no budget to pay for it, I can do that myself (and have done so, 3 or 4 times), but under no circumstances should it be considered vacation time.


Now that I've written all of that down and posted it here, I'm curious how other people would answer the same question. If you got this far, what describes or defines your perfect job/employer? Are you in that job right now? If not, do you look for it actively or do you wait until you're forced into action (could be reaching a particular level of frustration, could be economics, could be major life changes)? 

Oh, and especially for those who know me particularly well, what did I forget to include?