Category Archives: Job Depression

a tale of two programmers: the Rock star and the Ditchdigger

Recently, I've seen some true words about the term "Rock Star" developer.  That is, the company tarts up a job description by calling their programmers 'rock star' and think they'll get a higher quality of candidate for open positions.  The truth is: bullshit.

Let's say you're hiring for a startup.  Resources are limited.  Your office space, if you can call it that, is five square meters of closet space that you rented from your aunt because it was the Decent Thing To Do.  Devil-may-care about the lack of heating or the moldy carpet or the fluorescent lights, the point is, you got a good deal.  You found that desk at a yard sale.  The chairs were donated from a church.  Let's not even get into phones, computers, or security.

So where was I?  Resources.  Right.  You have none.  But you have a vision.  And you are sure that it will KICK ASS ON THE WEB as soon as you can get it to work.  To work your way.  No exceptions.

But for that to work out, you need a hot-shot developer.  Someone who can make the code sing, or at least bend it to your will.  You already have some code out there, but the last developer you had quit on you, they got a year of experience and got to the next rung in their career.  Away from you.  And that armpit of an office you work in.

But you need to attract someone better than the last one.  And you need him to clean up that code, and make it work the way you want.  And you need to get a good deal.

You want someone who is cheap.

You want someone who won't protest, at least not as badly as the last developer.

And he/she has to put up with your jokes, your office, the ghastly coffee you make in the kitchenette in the morning.

You're not really looking for a "Rock star" at all.  You're looking for the Ditchdigger.  The developer who, when given an assignment, won't balk or fight back or anything, but just work work work.  You can't say that out loud though.  No-one graduated with a CS degree from Yale or MIT and said 'ditchdigging here I come!' so you have to dress it up a bit.  Give it some flash-bang, some gee-whiz.  Some instant cool.  So you figured out a name that would evoke a little rock-n-roll, something that smacked of fandom.

And hey, you didn't have to invest any time in hard things.  Things like company culture.  Things like passion for the idea.  Things like a community for the product.  Things like infrastructure.  These things don't cost money, but they take time to build and hey, let's face it, they're hard to do.

So, instead of calling the developers 'cattle' or 'sheep' or 'Ditchdiggers' you called them 'Rock stars' because you wanted to attract the best with all that you had going for you – smoke and mirrors.  Pat yourself on the back for that one.  You'll probably get a few good eggs.  Two employees, maybe three, maybe five.  Just watch out when you start landing larger and larger projects.

Why be cautious?  Because 'Rock stars' are individuals, after all, they want all the fame, all the attention, all the glory for themselves – and they don't necessarily work in teams.  Ditchdiggers can get along; rock stars often don't.

Reflect on this, for a moment, and think about putting more effort into that job description, besides the words Rock and Star.

Reposted from Hooray for the bleeding edge via email.

A true gem about engineering management and ‘always be hiring’

Found a true gem while surfing Hacker News today:, Engineering Management at Facebook from 2006-2009. I especially liked the Hiring part. Here are a few quotes about why hiring should be foremost in everyone’s mind, from the CEO down to the janitor:

“The quality of coworkers is the single greatest determinant of workplace happiness”

“Hiring is a zero-sum game. Candidates that don’t join your company will join a competitor’s, and your loss will be their gain. If hiring isn’t your number one priority, it’s unlikely you’ll be number one at hiring”

“Successfully hiring the best people at all levels means that down the road, your internal promotion pipeline is strong” – which means that people won’t walk out the door on the first opportunity.

All interviews suck

Like most of you, I have a job.  Like most of you, I had to pass an interview to get that job.  Like most of you, I failed many interviews before passing the one that got me here today.

If it were up to me, I’d never go to another interview ever again.  I’m sure many of you feel that same way – otherwise we’d never do things like YCombinator.

However, interviews test us.  They put pressure on us.  Only then, do we find out a little more about ourselves.  

I talked my way into an interview with Red Hat in early 2002.  Was it the Red Hat that flies you down to NC for a full-on, multi-day interview?  Not exactly.  This was with the team that had been ‘bought’ by Red Hat from ArsDigita Corp not two months before, and was located on route 495 in Massachusetts.  I use the term ‘bought’ loosely, since Philip Greenspun pointed out that it wasn’t really the case in his chapter of Founders At Work.

For this interview, I had to submit a code sample.  I forwarded a piece from my last project, a Java servlet which I had slaved over for a few months in the basement of where I worked in 2002, of which I’ll talk about later.  (Or never.  Imagine ‘The Office’ plus ‘IT Crowd’ plus, oh hell I don’t know, ‘Deliverance’.  I’m just kidding, maybe.)

I realize now that this code sucked.  It was a Magic Servlet, about as magic as they come, with SQL and HTML and all the rest of the crud mixed in there.  I shouldn’t even have gotten my foot in the front door, but I did help one of their engineers move furniture, so I suppose all that back pain was worth something.

So, when I walked in the door that morning, I had about a half-year experience coding ‘in the industry’ and a lot of practice coding all sorts of projects at ArsDigita University.  I was not, in other words, a Non-programming Programmer, I could work with it, but there was definitely room for improvement.

There were seven engineers on the team.  They needed an eighth.  I was interviewed by every single one in one day.  On the face of it, this didn’t seem like a bad idea until, oh, after interview number 5.  Interviewer #5.  I’ll never recall his name, but I’ll never forget him. 

Up until him, the interviews had been fairly upbeat – there was the Databases Guy, the Systems Guy, the Internationalization Guy.  There had been some technical questions but nothing that really stressed me out.  Number 5 had a different beat altogether.  Definitely what you’d call ‘down tempo’.

First of all, he wore the Brass Rat.  The thing about the Brass Rat in Massachusetts is that, since there are so many MIT grads there already, you can already sniff them out without the extra bling.  Most MIT grads I know got their Rat, wore it for a while, and then put it away when they realized a) it wasn’t going to get them laid, and b) it wouldn’t get them ahead in the job market in Massachusetts, because there’s this liberal arts college down the road named Harvard that puts out pretty smart graduates too.

However, Interviewer #5 didn’t get that memo.  He seemed pretty proud about that ring.  Especially since he started to tap it repeatedly against the table as we were having the interview.  To add insult to injury, he pulled out the printout of my code.  Marked up.  With comments and highlighting.

I don’t remember much about that part of the interview except the tap tap tapping of that ring against the table.  Snatches of it come back to me sometimes in horrible dreams: “I see this block of code here…” tap tap tap “…seems purely procedural in nature…” tap tap tap “…could you explain to me why you are accessing the session so many times?”

It was like Chinese water torture.  I completely came unglued and couldn’t come up with any concise or confident answers at all.  It didn’t help that the interviewer after him was the UML Guy, who was all over me to come up with a correct UML Diagram for my code.

I walked away with some bruised pride, and a wasted day.  But it did teach me to get a little better at what I did.  I read the Bitter Java book.  I started to learn about MVC.  More importantly, I kept interviewing.  I finally got another job – the job I have now, actually – and I’m still programming, Tags: ,,,

More on the Java Job Trend

A long-ish thread on Dzone opened up due to my pontification on Java Jobs in the previous post. James from DZone makes a super valid point in saying that while Ruby jobs may have increased, they are still an insignificant part of the market compared to the sheer number of jobs dedicated to Java or J2EE. Rick adds that it’s all ‘lies, damn lies, and statistics’.

The data, I will admit, is inherently biased, since it is only based on SimplyHired’s own job listings. If you created a trend searcher that polled jobs from, say, Monster + any number of job sites that have sprung up in the last 18 months or so, you might get a more representative trend. And then, you would only get a trend that had a good picture of US job markets, or at least a highly ‘wired’ job market (like the EU).

Note that in the above links I haven’t even gotten into places like craigslist. I have a long-standing theory that posts on Craigslist == a region’s social digital capital, but I have been too lazy to track it.

This graph displays the percentage of jobs that contain your search terms. Since August 2006, the following has occurred:

  • Mortgage jobs decreased 56%
  • Java jobs decreased 29%
  • Zookeeper jobs increased 284%
  • Groovy On Grails jobs increased 4508%

resume workaround

<P>Jason Alba over at JibberJobber is running a set of five articles about writing the perfect resume, and I was struck by all the comments on Part 3: <a href="">Formatting</a>. The best quote I have read so far is <a href="">Carl Chapman's fight to end the two-page resume</a>:
<P><code>"what happens if the pages of your resume get separated? With a single page resume, that can't happen. another plus is that you are forced to remove boring drab statements and replace them with powerful statements that are more likely to garner interest."</code>
<P>Interestingly enough, I came across a one-page technical resume that I actually like <a href="">here</a>. It's something for me to work on when I have some time to reorganize.

Time Zone Confusion

<P>I've experienced this lately, but maybe not as extreme as Web Worker Daily puts it though; <a href="">What to do about Time Zone Dementia</a>. From the article, they describe the following problems (and then provide some solutions):
<P><code>Early morning wakeups. You get up at 6:45 am to dial into a conference call scheduled for 7 am Mountain Standard Time. But you live in New York. </code>
<P><code>Midday confusion. You go for lunch with a friend on Tuesday at noon, trusting the open space on your calendar. You miss an important online developer chat because you didn?t convert the time when recording it. </code>
<P><code>Self-centered meeting planning. You ask your colleague in Sydney to call in for a mandatory 8 am PST meeting, forgetting that it would be 3 am to her. </code>
<P><code>Disorientation when traveling away from home. You diligently record the details of an important webinar onto your calendar, but miss it anyway, because while you?re traveling your calendar still reflects your home time zone. </code>
<P><code>Socially inappropriate behavior. You plan a springtime brunch, only to be surprised in your pajamas by the guests who remembered to ?spring forward? for daylight savings time.</code>

more on where do we go from here

<P>In a <a href="">a recent post</a> I linked to an article that stated we coders only had three career paths ahead of us; another blogger expands this: <a href="">Twelve Career Moves for Developers</a>.