While I politely declined, and notified them that I had already accepted an offer somewhere else, this got me thinking of exactly how many companies suck at university recruiting.
I’m a Junior at UCSD, so this post is mostly regarding on my experiences looking for an internship; though obviously, this is relevant to recruiting new grads as well.
I intend to shed light on this topic from the perspective of a student, and discuss how CS students find, apply to, and evaluate offers. This is a perspective I haven’t seen covered here or anywhere else, and seeing the cluelessness in university recruiting displayed by some, I’d say is needed.
Firstly, its important to note that the candidates you want working for you probably have offers already, or won’t have problems getting other offers as well. Right now, the market is firmly in favor of the developers. So it’s your best interest in making the process easy and efficient.
Finding Prospects:
There are ways the vast majority of students find opportunities. In order from best to worst, they are, career fairs, on campus recruiting events (info-sessions/tech talks), and the CS mailing list.
Career Fairs are great.
You get personal contact with a recruiter or an engineer, get to hand off your resume, and it doesn’t take too much time on my part. If you have a booth at a career fair, you can either staff it with recruiters, or staff it with good engineers.
Obviously, one costs more than the other, but if you intend to give technical interviews to perspective candidates on the spot, do it with your best foot forward. Do not bring your B engineers. I distinctly recall with one “career fair screen”, where I was tasked with writing a function that found how many levels deep a binary tree went. I wrote
int depth(node in){
if(in == null)
return 0;
int l = depth(in.left);
int r = depth(in.right);
d = l > r ? l : r;
return d + 1;
}
The engineer interviewing me said, “how does that work?”. I explained it to him. He then followed up with “You can’t do it without a stack, it’s gotta be wrong!”. I figured this was a test, so I talked to him about the call stack, and confidently defended my answer. He shook his head at me and said, “alright, this is over”, and motioned at me to leave.
I’ve shared this story with quite a few people, and we’ve had a good laugh at the expense at that particular company.
On another note, one of my friends talked to this company, did the initial screen, talked to the manager, and was hired on the spot. While she is indeed competent, please don’t do this. If you hire candidates by “gut feelings” without an extensive technical interview, it makes me wonder how stringent your hiring standards are.
Do not have HR people ask technical questions. The only technical questions HR people ask are trivia questions with easily verifiable answers, and these are irritating, pointless, and a total crapshoot in terms of signal to noise. If you must screen out some candidates, use the face time to talk about projects or membership in engineering organizations. Note that this will have a substantially worse signal to noise ratio than having engineers on-site.
Make your booth visually attractive and interesting; handing out cool swag is a great way to make people drop by when they otherwise would not. Obviously if you’re Google, or Facebook, people will drop by your booth anyways, (though google always has great swag). If you’re a small startup, you might be ignored if all you have are two people sitting at a table.
I firmly believe if you can afford the investment ($750), you should buy a booth at a career fair. This is especially important if you are a smaller company, as there exists a “Halo effect” at career fairs, because Google, MSFT, and other big name firms are there, you might be able to get in touch with students who would otherwise ignore you.
Infosessions are on campus recruiting events that generally involve renting out a room, and giving a presentation to a large group of people. I consider these inferior to career fair tabling, because they cost more, and demand a larger time on my part than merely hitting up your table.
If you are a startup, don’t bother. Not only are they expensive, if students have not generally heard of you, only the ones desperate for work are likely to show up.
Companies often try to get around this by offering free food. I’m not sure this improves your signal to noise ratio substantially. You now have the hungry and the the desperate - though, I would bet that | hungry ∩ talented | > | desperate ∩ talented | is true.
A side not about offering food: please have healthy options available. While its true that some engineers will eat just about anything, there are those of us who do not eat junk food. Some of us treat our body like a product, and know our bodyfat percentage precisely. (11.9%). We’d go to your infosession, but we’d rather be having a healthy dinner.
The CS mailing list is the cheapest of all the options, if you want to recruit from UCSD, just send out an ad to cse-student-jobs@cs.ucsd.edu. Please note however, many people filter out anything sent to this mailing list, quite possibly because of the sheer amount of garbage that comes through it. Its free, and takes you about 5 minutes.
Please define exactly what you’re looking for, where you’re located, and if you’re a name that isn’t generally recognized, tell us what level of funding you have.
Half the ads that come across the mailing list are business majors looking for a gullible “co-founder” to work for pennies. If you come across remotely like this, I’m pressing the delete button.
Part 2: Interviewing Candidates.
You now have a stack of resumes, you might have filtered some out at the career fair or info-session where, hopefully, you took advantage of face to face contact to screen out people.
Depending on your process, you might either rent out a room and hold interviews on campus, or go to a phone screen. Whatever you do, do it promptly. Nobody likes waiting around, and if you want to perceived as agile, you better do recruiting in an efficient manner.
As for the actual content of the interview, much has been said about this, and I’m no expert on interviewing. But, its important to remember that a college student likely has far less interviews under his belt than a professional, and is therefore, far less confident during the interview.
Please take extra time to get to know us before springing the technical questions. I know when I first interviewed, I failed two technical screens that were dead simple, because the interviewer jumped into the technical questions and I panicked.
Today, after going through enough interviews, this wouldn’t remotely be an issue. I’d be very comfortable jumping immediately into technical questions. Keep this in mind especially if you are interviewing candidates early in the season (early fall and winter), for interns, there is a good chance this is the first technical interview they’ve ever done, and are likely nervous and jittery.
Do not ever do a panel interview. I don't know why companies ever bother with this. It puts the prospective under even higher pressure, and wastes even more engineer time.
As for the content of the interview? The usual goes. Make the questions challenging, fun, and exciting. They should test me to my limits. Do not make them require any form of specialized knowledge, anyone who has taken a basic data structures and algorithms course should be able to pass them.
Students do gossip about the interviews, and if your interviews are fun and challenging, I’ll recommend my smartest friends to apply to your company. If your interviews aren’t difficult, I’ll be recommending my friends who are hard up for jobs to apply.
Some examples of companies who I’ve greatly enjoyed speaking to, are, in no particular order, Cloudera, Quora, Palantir, and Campfire Labs. I’ve recommended all these places to my brightest friends.
Making the offer:
Do not lowball. While it may be tempting to think of us as naive college students, and try to see how low of an offer you can get away with, understand the internet does exist, and that everybody knows the going rate for an internship or job. If you lowball, I’m going to negotiate you up to an acceptable market rate, but you’ve already damaged your reputation in my eyes.
If you give me a good offer, I’ll negotiate anyways. It never hurts to try.
If you’re a startup, doing open source work, or have a particularly compelling vision, you can get away with less monetary compensation than otherwise. You probably know what you have to offer.
Make the offer fast, and please don’t try the exploding offer. If I tell you I have an interview coming up, and just somehow, you need an answer 3 days before that interview, I’m going to almost immediately decline your offer. The students you are after are going to be the ones who won’t have issues getting offers in other places, and we know this.
Most of us, (or at least the ones you want), have a very well developed sense of ethics. We want to be fair to you, and we expect you to be as fair as possible to us. Remember that by using a shady negotiating tactic on one of us, the story will be shared among our friends as well - and this might end up making it far more difficult to recruit the talent you want.
In closing, I’m no expert at recruiting, and my suggestions should probably be taken with a grain of salt. But I’d like to give my perspective as an undergrad, and I hope some of these suggestions are of use.