Technical recruiting is broken.

Three weeks ago, I went to a UC Berkeley career fair and dropped off a copy of my resume with a certain startup. I’d put a lot of effort into selling myself with this particular resume, and trying to stand out from the crowd (most of the attendees were undergraduate CS majors–most probably with better technical chops, but little to no real-world experience, sense of design, or communication skills). While I was at the fair, I had a nice chat with the startup guy there about the company and web development and Python and I figured I had a pretty good shot.

Payoff! The next day, I received this email (a few bits redacted):

Hi Karen,

Our engineers really enjoyed meeting you at the career fair yesterday! (Also, I have to say that I love the graphics on your resume, and the “But wait! There’s more!” :))

You definitely stood out from the crowd as one of the most talented engineering students and we think that you would be a fantastic contribution to the future of (Startup).

I would like to schedule you for a 45-minute Skype interview with an engineer next week. What is your availability Monday, 9/26 through Friday, 9/30 from 10:00am – 5:00pm PST? What is your Skype user name?

I will forward your availability to our recruiting coordinators, (John) and (Jessie), as soon as I hear back from you and you will hear from one of then them shortly after confirming the date & time for the interivew.

If you have any questions regarding the interview process or (Startup) work life, please feel free to contact me at (Jane)@(Startup).com.

I look forward to following up with you ASAP after your Skype interview next week!

Thanks & have a great interview!

(Jane Smith)
(Startup) Technical Recruiter

“One of the most talented engineering students”. What. I suspected that they were just mistaking pretty-and-organized for competency, but even so, my ego was fit to burst. Huzzah! Maybe I could get a job I’d actually enjoy, with a cool company, that could pay me enough money to pay back my student loans! I was super excited.

But then I actually had the Skype interview. Despite the fact that I was applying to do front-end web development work, my interview was with a backend engineer. And instead of talking about the web projects I’d worked on in the past, or anything relevant or interesting, I got grilled with the so-standard-it’s-frickin’-trite Computer Science questionnaire.

Things I was asked about that have little or nothing to do with being an actual web developer:

  • Red-black trees.
  • Multithreaded processing in CPUs.
  • Different types of sort functions. (I was like “I sort of remember learning about that stuff seven years ago, but I program in Python. I just use the sort() method and assume Python knows what it’s doing.”)
  • Lots of Big O questions.
  • The difference between a linked list and an array.
  • SQL queries. (Well, that could be relevant, but I’ve always used Django or another ORM so I don’t really know any raw database stuff.)

One of the questions seriously started with “In a language such as C++ or Java, how would you…?”. If you read my resume, or know anything about me, you know I don’t *do* Java. (Well, I did some Java when I took a couple CS courses in college, and hated it, and notably chose not to major in the subject. But that was seven years ago.) I do *Python*. (And HTML/CSS/JS/RoR/BBQ.) Which I mentioned, and then answered the question Pythonically.

It wasn’t that I couldn’t answer the questions. It happens to be the case that I *have* taken a couple traditional CS courses, so most of them I could at least fudge by on what I remembered from seven years ago and from INFO 206 last year. But answer or no, none of it had anything to do with the actual, real web apps I’ve coded and contributed to over the last two years, and yet it was the standard by which I was judged.

I emailed back the startup today to ask what my status was. Five minutes later I got a rejection email. In that phone interview, I went from “A fantastic contribution to the future of (Startup)” to useless reject in forty minutes flat. Because I don’t remember hardly anything about bubble sort or merge sort and frankly don’t give a rat’s ass.

So now I don’t even know whether or not to bother applying for other web developer jobs. I’ve seen this perfunctory pop quiz on CS canon before–I got another version of it when I interviewed with Google and another (stealth) startup last year. It’s likely that *anywhere* I apply, I’m going to be subject to that test, and more importantly, companies will judge my ability to do the job based on it. Not on, say, my documented open source software contributions or web app projects for class or PyCon speaking or experience teaching Python and web programming to newcomers. That would be silly.

Maybe I should just discount all my technical experience and re-enter the job market as some “UX/interaction designer” / “web designer” / “product manager” weenie. Then it’d be easier for companies to classify me. (And also pay me ~$20k less to do nearly the same damn job.)

I am a *programmer*. I am not a fucking computer scientist. It’s utterly disheartening how many Bay Area tech companies can’t tell the difference.

If you believe that there’s a shortage of programmers and other technical workers right now, consider to what degree your recruiting process assumes that the “best” applicants fit the stereotype of a dorky computer science major who’s been coding since he was 10 and solves Rubik’s Cubes for fun and thinks that job ads calling for “rockstars” and “ninjas” aren’t utterly puerile and inane. (And let’s not even get into how age, race, gender, and culture stereotypes feed into this.)