What's with all the hate on my generation? It started when somebody quit Jason Calacanis's industrial web spam startup, Mahalo, for a higher paying position at a competitor. Invariably, Calacanis went apeshit on the poor guy in a very public way, and this started a cascade of blogosphere butthurt about people in software under thirty: that we're unreliable, that we're lazy, that we're entitled.

Well I'm as unreliable, lazy, and entitled as the next guy, but that's not why I've hopped jobs in the past. People in my generation have a very low tolerance for bullshit, and software engineering, in general, is a very high bullshit career. If you couple that with the standard load of bullshit you would get from a non-technical Harvard MBA type boss — like many CEOs that you find trying to get rich in Silicon Valley by hiring some engineers to "code up this idea real quick" — it's no wonder that a good engineer will walk off the job after his one year cliff vesting.

As an engineer, you are told that you're "lucky to have a job", because there are "a hundred people lined up outside, ready to take it". (As chance would have it, there are at least a thousand lined up to take the job of rich prick who tells people what to do). This backlash is the product of diseased thinking. A CEO who makes an engineer work 80 hours a week is a driven entrepreneur, but an engineer asking for a comfy chair is a prima donna. So, when we are up to our knees in golf-course, martini-lunch bullshit, don't be surprised when we jump ship for a higher salary.

I recognize the value of business people and management. Somebody has to sell the code that I write, which in turn puts food on my table. Since I am an engineer, I like iterative optimization. Every time I have left a job, I have further refined the requirements that a person must fill before I agree to work for him. After every job, I add one or two requirements to the list, and I have found that my happiness at work improves dramatically with every step.

This is my current list:

  • The organization must need me at least as much as I need it.
  • My direct manager must have a technical background — enough to understand why programming is hard.
  • My direct manager must have enough experience or raw intelligence such that I can trust him/her to make decisions, even though I may not understand the reasoning.
  • I must have absolute faith in the business plan.
  • I must have absolute faith in "the business side" to execute that plan.

So, Jason, when that fellow quit Mahalo, he didn't just leave you in the lurch. He added something to his list. Maybe you should find out what that is.