Tuesday, May 22, 2007

Geek Marketing: The Key To Making Money As A Programmer

Absurdly good blogger Raganwald points to a Reddit comment on a Bruce Schneier post everyone should read which finally explains a big mystery: everybody "knows" that a good programmer is worth 10 to 1000 times what an average programmer is worth, yet the only way for a programmer to get paid 10 to 1000 times more than average is to start their own business.

Here's the long-story-short of the Schneier article, which explains the economics of the used car market:

[An economist] illustrated his ideas with a used car market. A used car market includes both good cars and lousy ones (lemons). The seller knows which is which, but the buyer can't tell the difference - at least until he's made his purchase. I'll spare you the math, but what ends up happening is that the buyer bases his purchase price on the value of a used car of average quality.

This means that the best cars don't get sold; their prices are too high. Which means that the owners of these best cars don't put their cars on the market. And then this starts spiraling. The removal of the good cars from the market reduces the average price buyers are willing to pay, and then the very good cars no longer sell, and disappear from the market. And then the good cars, and so on until only the lemons are left.

And Reddit user steveblgh says:

This is a great essay, and I just realized that it applies to the IT job market. Here the seller (the applicant) has all the info about himself, while the employer knows nothing. So what happens is that companies expect the average, and pay accordingly. That's why people who are smarter than average shouldn't go on job interviews, because they'll likely to get below what they are worth.

In terms of the economics, steve is dead-on. But I disagree with the normative component - the should - because the cure for this is obvious: blogging and open source. The problem is an information problem. You won't get a price below your value if you've got a reputation. If Jamis Buck goes to a job interview, he'll probably be looking at a good offer. But if a programmer whose code is just as good as Jamis's - or even better - goes into a job interview without any reputation to establish his skill, then yes, that programmer gets priced at the average level, which is to say, below their value.

As I've said before, geeks need marketing.

Unfortunately, you should take my advice with a grain of salt, or in fact a freakishly gigantic saline boulder, because I go on job interviews all the time. I can't stand doing the same thing over and over again - I've lived in seven different places in the last three years - so I never stay at the same company for very long, and I'm happiest when learning something entirely new. In the past the best solution for this has seemed to be working from home in my own consulting business, but constantly looking for the next client takes up a lot of time, so I frequently take short-term contracts, and many short-term contracts I go on result in long-term offers I turn down. (Conversely, every time I take on a long-term job, I end up leaving.)

Anyway, my point here is that I'm kind of unusual. I value variety over security, kind of the same way I value a Lamborghini over a golf kart. Adventure wins over safety every time in my book. I've even walked through gang neighborhoods in gang colors just to see what would happen. I got in a car accident that had me sliding downhill backwards at 80mph, pointed directly at five lanes of oncoming traffic, and I remember it as the most fun I've had in years. Please understand that my methods are not for everybody.

The more common value hierarchy puts security above excitement, and it's pretty obvious to me what I would do if I had more conventional values. The path to success as a programmer is very clear: in addition to studying programming and excelling at it, study marketing and excel at that too. Make sure people know your code, or your ideas, or ideally both. And stay off the job market; only ever even consider job offers if they come from friends.

The reality is, there are great programmers who are underrated, and there are good programmers who are overrated. It's not the code that makes you the money; when it comes time for salary negotiations, it's the rating that matters, whether over-, under-, or accurate. I'm pretty sure no programmer worth the grain of salt with which they take my words would like to hear that, but it's true. Consider: nine times out of ten, a programmer's implementing strategic decisions made above his or her head by some management type who doesn't know a thing about code. Popularity is the only metric by which an uninformed businessperson can evaluate competing technologies, which explains a lot of the bad technology decisons that businesspeople make.

(Although we shouldn't let them off the hook for not finding better metrics.)

As for me, I'll keep going on job interviews, keep blogging like crazy, keep studying acting, keep writing screenplays, keep releasing white label DJ records, and maybe, if I get lucky, I'll start a side business in motion design and release a few Rails plugins. (Don't quote me on that, though.)


  1. I just finished commenting on your last piece. I had to comment on this one.

    I was thinking the exact same thoughts these past couple days and I allude to it in my previous post.

    That the difference between a mastermind and the average 'dude' is night and day. But explaining it to your boss or worse yet the board why your paying the new guy 50 percent above 'market value' is a daunting task.

    On the other point you made , about the only way programmers can REALLY make money is start they're own business I 100 percent agree.

    Some people argue we're the ones doing all the REAL work in most technology companies.

    Which raises another interesting trend. That you also hit spot on, the 'popular programmer' with the right connections in other industries whether it be media, chemistry , biotechnology, whatever , are the ones that are making the elite pay.

    It's somewhat analogous to lawyers.

    Law like programming is a way of thinking , it has its own syntax dialects etc. etc.

    Much like programming all lawyers have a certain baseline that 99.9 percent of them meet.

    Much like programmers society has become inundated with lawyers and the profession while still prestigious has also gained negative or commodity connotations in various parts of the world.

    The thing we can take from Law. Is that the lawyers who make the most money , who are seen as the most powerful are only so because they are most popular, the strongest relationships with people in industries outside law, and have a reputation of success.

    Those lawyers establish firms and bring in new talent that only their trained eye can properly identify.

    The same thing is happening in cutting edge software development albeit there is a long way to go before I would say that model has 'arrived' for us.

  2. All very good points. There's a good book about this called The Winner-Take-All Society, which studies how pretty much every field is becoming dominated by superstars who do much, much better than the average member of the field. The book is pretty fatalistic, and definitely wanders off into the realm of unprovable opinion more than once, but it's interesting all the same.

  3. Apparently our parent's didn't know what they were talking about the told us not worry what others thought of us. :)

    Seriously though, you are absolutely right that having a great reputation in the various development circles is a huge asset to have in your back pocket. Actually, this reminds me of Scott Hanselman's recent post about Explaining CyperGeek Fame to his wife.

    While being a big name in a geek community probably doesn't mean much to the average Joe, it sure does matter to those that... err, matter.

  4. Indeed, I agree that if money is what you're after, you need to make money fast! And no, that isn't spam, although the title is supposed to sound like it :-)

    Something to consider is that money does offer a certain amount of freedom, which leads to adventure in its own right.

    In the vernacular, this is called having "Fuck you money."

    You have to be careful when pursuing money on that basis: it is easy to wind up with a Faustian bargain wherein the pursuit of money takes away the freedom you are after in the first place.

    In the end, Eric beck said it best:

    "At either end of the social spectrum, there lies a leisure class."

  5. "I've even walked through gang neighborhoods in gang colors just to see what would happen."

    And ... what happened?

  6. Interesting ideas here. I can especially relate to preferring variety over security. In the past I've tried to choose jobs that I feel I can grow into, where I won't be doing boring, repetitive stuff all the time, and I'll be learning new things. The state that I hate being in is when I've mastered something, and I end up doing it over and over again. There's no challenge in it anymore.

    In your post about the "4-hour work week" you said that you've taken some "mini-retirements". You're the first person I've "met" who's done that. I've done it too. I also go on interviews when I'm looking for work, but my experience has been that I usually find work through contacts of various kinds. I've found I'm not that good at the "corporate game". When it comes to going through Dice (or equivalent), or going through a recruiter, meeting a company interviewer "cold" with no prior background to go on, I haven't found a job yet that way. One of the things that always "irritates" that process are these "mini-retirements" I go on. As the saying goes, "It's easier to find work if you already have a job." The interviewers usually want me to explain myself. Why are there these blank spots in my work record? I finally asked a career counselor about this several years ago. She told me, "Primarily they want to know if the reason you weren't working was you were in jail." Wow! That never occurred to me. I can easily reassure them of that. I think there are also plenty of corporate managers who don't feel comfortable with someone like me. They're go-getter, career-minded folks, who always want to be working. They probably look at me and go, "Who the @#$! is this guy?" It's part of my reputation. Fortunately I've been able to find people to work with who don't really care about that. They just care if I can do the work.

  7. @steve - nice. (but I think this is the link.)

    @reg - I've been in the leisure classes at both ends of the social spectrum, and they both have their advantages.

    @joe - a teenage girl in gang colors tried to hit on me.

    @mark - Tim Ferriss' "Four Hour Work Week" has an awesome solution to this. fill in the missing time by bragging about all the fun stuff you did while they were rotting in their cubicles. muahahaha! (be sure you can brag without putting anybody down, though, otherwise the theory backfires.)

  8. Mark... its very easy. Just describe to them the amazing "startup" you created. Usually during my 6 month time offs, I spend a few weeks coding something I think up. I then pencil this project in on my resume for the entire 6 months. It also tends to be the stuff thats most talked about at interviews as I can bullshit about it indefinitely.

  9. Primarily they want to know if the reason you weren't working was you were in jail.

    And this is because if you actually have spent time in prison, you are likely to tell your new employer that comparing prison to BigCo:

    - You had more freedom in prison;
    - You had less pressure to conform;
    - The politics were easier, the shivs are easier to spot than a poisonous powerpoint presentation;
    - The people were more true to their word.

    Just kidding, I suspect these things are only true in the kind of cliché movies I watch!


Note: Only a member of this blog may post a comment.