I've been thinking lately about what my ideal, realistic job might be, and what concessions I might make to get close to that job. I'm going to just spew those ideas here, in no particular order.
My ideal job would have a corporate office close to home, and have the ability to work from home on days when it would be preferable to have focused solitude away from the office or necessary to participate in home activities, like A/C installation or other home maintenance. "The office" would be in a building that is not a soulless corporate center building filled with sterile cubicles and Ikea-Lego desks, but would have some character all its own -- something you would enjoy showing off to family and other people in the industry, who would envy your daily environs. It would be a place you would look forward to going. And yet, the company would be flexible enough to let you work completely remotely for months at a time, for whatever reason. As opposed to the sentiment I hear a lot where people who work remotely come into the office and learn to like coming into the office, I'd like the sentiment to be more one where the office is just one of many potential tools that builds team cohesion.
The team would be a diverse but allied crew of developers, designers, marketers, and managers. No position would be valued more than any other, because they would all be essential to the operation of the business day-to-day. The environment would be casual, perhaps with optional "dress-up Fridays" (note the contrast to "dress-down Fridays"), emphasizing that the work product is more important than dressing for a role. Employees would not be encouraged to bring their pets to work, but a co-worker's love of a dog or cat or bird or marmot would be respected by his/her peers.
It's important to me that the team gels socially. There has always been that separation for me from people who really like sports, which I can take or leave, but don't really get excited about at all. I'm not looking for everyone to want to hang out all the time, but it would be nice if the people I worked with were mostly people that I would want to spend or enjoy spending time with outside of work. Ideally, there would simultaneously be enough diversity in interests to keep things interesting, but enough similarity in interests to prevent alienation.
I don't really want to put in my time at work and then go home. I'd like to believe in the work that I do. That certainly does not mean that I'd want to "do good works" all the time. There's a time and place for philanthropy and charity, and while I recognize that there are companies that focus on doing good works, that's not precisely what I'm interested in. I'd be interested in any type of work where I could go home at the end of the day and feel good about the work I had done. That could be contributing to a video game, or making it easier for business people to collaborate, or even enabling the transfer of large sums of money between companies. I suppose there is the care in the back of my mind that I would prefer the companies with which I do business to be "good", but I wouldn't rule out anything but obviously sleazy partners. I want to do "good work" not necessarily "good works".
As to the work itself -- Maybe it seems strange, but I'm not really picky about that. I'm actually more interested in the technology stack that gets me there, and the ability to have something new and advancing to work with often enough that I don't get bored by drudgery. The web, desktop, mobile... It doesn't matter to me. The product itself - as crazy as it may sound - isn't too important to me, as long as it's interesting enough to hold my attention and ultimately make money for the company. In fact, the more interesting-sounding projects from a "hey friend, guess what I work on!" perspective tend to also have the characteristic of being the least exciting to actually work on. While working on a fancy project ("I make the special effects software that they used to make the latest Hollywood blockbuster!") might be fun to tell friends, it might also be less rewarding from my "good work" perspective ("Oh great, more matrix math in the CPU...") than something that seems more mundane to an outsider. It needs a good balance.
In terms of technology, where I am right now is working in a lot of PHP. What I'd like though, is a company that understood a need to transition from PHP (maybe not immediately) to something more modern and/or upcoming as a team. Have everyone on the team learn Ruby or Python or node.js all at once and get good at implementing it together, as a team. More mobile would be good. Yes, some employer should teach me to write native mobile. But really, periodically evaluating what technology the company uses introspectively and encouraging employees to contribute to any decision for change is something very attractive to me.
The company would emphasize doing things well over doing things quickly. The marketing and sales people would understand development at least enough to do their jobs well and respect both the customers and the developers, which has been a problem at places I've worked in the past. Development itself wouldn't live and die by best-practices (there's a handy and quick way to kill innovation), but discover a reasonable process that they'd be proud to introduce to new hires who are familiar with more traditional methodology. This is not to say that some emphasis wouldn't remain on speed, just that it would be pragmatic and tempered by process, to adequately address things like technical debt and scalability.
While I appreciate the rigor of a positive work-life balance, the 9-to-5 workday does not resonate with me as a way to produce the best work for work I love to do. Development, as much as it is a rigorous and meticulous practice, is actually incredibly creative. It is sometimes difficult to convince people that staring blankly at a monitor for a couple of hours to sort out a problem in my head truly is hard work. Sometimes, staring blankly isn't the best use of time, and it's rather better to shake the cobwebs out with some completely other distraction. This is where the Foosball tables come from. This is why there are coin-op consoles in some good development studios. But the hours that you work can make a big difference, too. I know I'm more "business-productive" at certain times of the day. I know that I'm worthless to put in front of the computer at other times of day. If I have to worry about putting the kids on the bus and then rushing in to the office, that's stress that work should not cause in me. These ranges of time shift throughout the year. Having flexible and yet reliable work time is really important, not just for my happiness but for company productivity.
What about compensation and benefits? It would be nice to have a health plan available, even though Berta's does well for us. A retirement plan, even a simple one, would be useful. Vacation is a big deal for me, since working from home has gotten me into a habit of never feeling like I can take or deserve one even though, after two years on my own without one, I think I desperately need one. Pay is important, when it comes down to brass tacks. I've looked at what a developer of my experience makes in my area, and I think I'm worth that salary -- I'm currently billing out hourly at well beyond that rate. I think of equal importance to all that is the ability to improve the situation. At many previous positions there have been no reviews and no raises even for general inflation. It would be nice if that was just part of the deal - no questions 3%/inflation per year, within the company's ability to do so, with opportunity for bonuses based on performance - without having to beg for it.
A lot of these concerns seem like places where a worker could take advantage. I think when I present these ideas to prospective employers, that's how they hear them. But it's not about trying to pull one over or get something for nothing. When it really comes down to it, I want to provide my best work. These conditions are what produce that best work.
So. Given that my "dream job" doesn't exist, where am I likely to trade off and what would I trade for?
I could probably live with a longer commute. Most people commute longer than I do (since I work from home, currently). Maybe it seems strange, but I scoff at the idea of having to drive 30 minutes to get to work. It seems excessive to me. Plus there's gas and car maintenance to think about, especially if I'm driving every day. There's also the issue of a commute becoming dangerous in inclement weather, which has been a perplexing problem for employers to understand in the past. ("I'm in the office. Why aren't you in the office?" "Maybe because I'm not as willing to stupidly risk my life as you to get to your cube farm?")
I could probably live with regular hours. It's tough because right now I have to get the kids on the bus in the morning. Riley's too young yet to be responsible for this himself, alone. I don't really have any reliable recourse for the kids if I don't do it myself. If my commute for a new job would require me to leave the house before 8:30, then that pretty much rules that job out.
I suppose I could live with having to replace my entire wardrobe. Berta would probably approve. I'm a jeans and t-shirt guy. Not "ratty t-shirt", but "humorous print t-shirt". (See also: Woot!) In most cases where I must impress someone with my clothes, I'm not going to do any justice to the interaction with what I say, either. But hey, if everyone else is doing it, sure, I'll blow a thou' on some new khakis.
I'd easily give up the charismatic office for a good, friendly, competent team to work with. I'd give up Foosball (really? Foosball?) and the like for a manager that understands the creativity that is sometimes required to do this work. I'd allow for even a non-existent development process as long as the desire and intent to develop and apply one existed.
Remote work is hard to give up after nine years. Companies should really consider not whether they'd allow remote work, but how they will eventually accommodate remote workers. The price of gas is an issue. Getting the best workers is an issue. I see the benefits of face-time, but even for teams that are always completely on-site, the tools used for disparate teams are an advantage. Why not get started early? Be lithe. Anyway, I suppose I could always work in an office, depending on how far away it is (read: how much of my life/free time is drained by commuting to your remote location).
The trade-offs for these things are few. More pay? More vacation? Is an employer willing to pay me for a full 10-hour day on a 8-hour day job with a 1-hour one-way commute? Someone should compensate me for that time, no? Maybe that's built into the salary. It seems... unequal somehow, to trade being willfully strapped into a moving prison for cash.
I also wonder if I'm missing or overlooking anything. Some of the perks here have the potential to be pretty great. And realistically, I know plenty of people who aren't in a position to demand the conditions that I'm even considering as "standard", so I feel plenty privileged. I mean, I never forget when I was living in Johnstown above the barber shop, working at Little Caesar's and ditching the landlord because I wasn't making enough to cover rent. I've been there. I am appreciative. Perhaps even some of these things I consider negatives are actually positives in disguise. I could certainly stand to dress better.
I suppose now that I've gotten into words what I'd love to work at, I should determine what each of my concessions is worth to me, in terms of time or other compensation. Then maybe I can use that to figure out what I want to do with myself, overall.