Processing Internship Applications

The senior developers at Fog Creek are spending much of this week evaluating the 400+ applications we received for our five available summer internships.

We got about half as many applications as last year. This is mainly because we were careful to keep our job listings off of and eRecruiting. I’m not 100% sure of this, but it seems like when you post an internship to Monster or eRecruiting, candidates can apply for that job simply by clicking one link. As a result, last year we got flooded with seriously unqualified candidates. This is not just Joel Being an Elitist Snob. I’m talking about people whose only experience was working at Dunkin’ Donuts and who had no programming experience.

We did get a lot more good applications. Really good applications. Not just kids from Indiana. Students from all over. Illinois. Missouri. Well, OK, maybe not Missouri. Missouri is crazy talk.

During the first stage of evaluating resumes, we go through looking for six objective things (I won’t tell you what they are) that we think are good predictors of success. Each candidate gets a letter code indicating which of these six things they have, for example, ADF or BCF or ABCDEF. Again, these are all just things that you can tell objectively from a cover letter and resume, so there’s not too much controversy at this stage.

The system is designed to be flexible, so we don’t just rule people out because they didn’t go to the right school or get the right grades. When we find a candidate who is officially missing something, but who looks like a great candidate for some other reason, we add some + signs… someone who doesn’t have E or F but who has a really good excuse and looks “smart/gets things done” might get ABCD++.

That said, we’re not going to tell a student with perfect grades from MIT or Stanford or Rose Hulman to take a hike just because “grades aren’t everything.”

When we finished that process this afternoon it looked like we had 60 candidates with either 5 or 6 scores (which we consider “equivalent within a margin of error”). So the next stage is whittling down that list of 60 to about 30 that we can phone interview. For this whittling phase, each cover letter and resume is scrutinized by three senior developers. They assign a score of +1 (“I want this person”), -1 (“Unlikely to work out”), or 0 (indifferent) to each candidate. Here it’s a lot more subjective, but when you’re looking at a small pile of resumes sometimes you just know who the great ones are and who the good-on-paper ones are. When we add up all the scores for each candidate, they end up with a number between -3 and 3 and we simply sort by that number and then work down the list in numerical order until about 15 have passed a phone screen.

The phone screen stage takes between half an hour and an hour. Anyone who gets through that gets flown out to New York City, all expenses paid including up to three nights in a luxury hotel, and goes through the wringer in person.

Elitist, Arrogant Bastard

Some people feel like our process is elitist, or arrogant, or overkill. I’ve heard comments along the lines of “why do you need such superstars for writing a [holding nose] bug tracking application?”

Well, part 1. It’s not my fault that 400 people applied. Well, OK, it is my fault: we have free housing, lunches, Broadway shows, unlimited free subway passes, high salaries, a boat trip, a Yankees game, two parties and a walking tour. But once all those students applied, it’s the least we can do to consider each application with the utmost care and fairness, and give the internships to the people we think have the best chance of working out well, for them and for us.

Part 2, if you think Fog Creek is still about bug tracking applications, you’ve lost the plot somewhere. Last summer’s interns developed, pretty much all by themselves. Copilot is our fastest growing business.

Our FogBugz team spends a lot of their time these days doing Ajax development. Our newest hire Stefan is developing a pretty shockingly sophisticated automatic testing system and actually needs Don Box books to get his work done. When you work on FogBugz you’re just as likely to be working on Thistle, our Java-based VBScript compiler (which now emits two things: PHP and a form of VBScript with tracing information built in for testing code-coverage tracking).

And finally part 3, when you hire superstars you make a lot of money in terms of revenue-per-employee. That means we can have cushy private offices and high-end workstations and Aeron chairs without running out of money.


… I’m still not happy with the traditional “cover letter/resume” system, because it discriminates against the non-traditional, and many of the most brilliant programmers and software developers I know just look awful on paper. Adam Bosworth likes to make fun of me, because he majored in, oh, I don’t remember, History? Whatever, and he says to me “you never would have hired me, or Anders Hejlsberg, etc…” because supposedly Adam and Anders are lacking in the “ABCDEF” qualifications on my list, but actually, that’s kind of absurd, because of course we would hire Adam and Anders to work on our stinkin’ bug trackin’ application if they wanted to, and in fact, when we started Fog Creek, one of our actual real-life business goals was “to create a company where someone like Adam Bosworth would want to work.”

He’s at Google, now, by the way.

I don’t really think we can reinvent the application process. A couple of years ago we asked interns to submit writing samples (like a paper from any class), recommendations from professors, and transcripts, but we found that they gave us no additional information we didn’t already have.

More on Calendars

One online calendar I neglected to check out is Airset. Thanks to a couple of alert readers who emailed me, I tried it out tonight. It’s much, much better than the proof-of-conceptware that people are hyperventilating about. In fact, it’s the first online calendar I’ve found that seems like it might work for me.

Why didn’t I evaluate it before? Well — to be honest — I went to the website, and couldn’t find any screenshots or specific technical information, or an easy way to try it without signing up, so I gave up. It didn’t help that Walter Mossberg had chosen Trumba over Airset and for some reason I let that influence me into not trying Airset. Dang, that was dumb.

I still have a list of feature requests for the Airset developers, though! If you know someone who works over there let me know.

VMWare Server Now Free!

I have always been a huge fan of VMWare Workstation. “The basic idea is that it lets you run a whole PC inside a window, with its own operating system and hard drive.”

I’ve dreamed of the day when I could use something similar for servers. VMWare has had a couple of server products for a while now, GSX and ESX, but they were expensive and complicated.

No longer. VMWare Server is going free. Wow. Mike Gunderloy explains why this is “a market-changing move.” This is great stuff, and it’s not half baked.

Too Many Ajax Calendars

For all the Ajax calendars that are appearing, it’s a shame I can’t find one which really meets my needs.

I tried out Trumba, Kiko, 30 Boxes, Yahoo! Calendar, and Spongecell. I couldn’t recommend any of them.

My needs are probably weird, but not that weird. Here’s what I need a calendar to be able to do:

  • Enter flights. Many of these calendars only lets me enter things that start on 15 minute intervals, and flights are just not scheduled that way. Many of these calendars insist I specify the duration, which I don’t know — I know when the flight lands, but not the duration.
  • Understand enough about time zones so I can enter a flight. Flights from New Zealand to Los Angeles arrive before they departed. It’s confusing but it’s true and if I can’t enter them properly on my calendar I’m back to typing itineraries in Word.
  • Allow my assistant to enter appointments and see my schedule, although some things may be private. Many calendars have this feature.
  • Notify me in advance of a meeting using some reliable mechanism. Surprisingly many of the hot new Ajax calendars omitted this basic feature because they’re web apps. At the very least, I’d like something to pop up on Windows, which means a downloadable widget, and an SMS message on my cell phone. Different meetings need different advance warnings … I need to be notified 3 hours before a flight at Kennedy but 3 minutes before a meeting in my office.
  • Print out something reasonable that I can take with me before a trip listing my complete schedule for the trip. Some of my appointments have driving directions or complicated notes attached. I just want a list of where I need to be, when, and it’s surprising that very few online calendars can handle this.

Listen, I know that everybody is saying that the cool thing to do these days is Ship Early and Often, but when you ship half-baked ajax calendars that don’t do much and then get Scoble to go nuts about how great they are, well, you’re going to have a lot of people like me checking it out and realizing that, for example, no thought whatsoever has gone into printing, which is fine, it’s a 1.0 release, but you know what? I’m not going to look at 30 Boxes again — I’ve spent enough time evaluating it. G’bye. I’ve talked about this before — it’s the Marimba phenomenon — when you get premature publicity, lots of people check out your thing, and it’s not done yet, so now most of the people that tried your thing think it’s lame, and now you have two problems: your thing is lame and everybody knows it.

Why so many Ajax calendars? My theory is that about a year ago, there was a lot of buzz (possibly true, possibly false) about Google shipping a calendar, and everybody thought, oh gosh, it’s gonna be really good, like Gmail, and then Yahoo! is going to be embarrassed again, and run out and buy the best Ajax calendar company they can find, just like they did with Oddpost, making those very funny kids millionaires overnight. So people aren’t really building calendars to sell to people like me who need calendars: they’re building calendar companies to sell to Yahoo!, which, for some reason, has given up on the old concept of hiring programmers to write code, and is going with this new age concept of buying entire companies on the hopes that they might contain a good programmer or two, which, by the way, is a sure sign of trouble for a technology company.

But anyway, how many Ajax Calendar Companies do you think Yahoo! is gonna buy? You don’t build a product for one customer. It’s just too risky.