Archive

Archive for October, 2011

A series on interviewing

October 1, 2011 Comments off

This series of several blog posts will cover topics in interviewing for undergraduate Computer Science majors looking to get their first technical job. It’s based on a talk and lecture notes that I’ve given about twice a year for the last four years of my graduate school career.

Before returning to graduate school to work on my Ph.D. in pursuit of creating a gigantic, compilers-focused research group, I worked at Microsoft. I was a developer and manager of developers (and testers) in the Developer Division, which makes Visual Studio and a bunch of other tools for software developers. In that time, I performed well over 200 interviews of new college graduates. Some were part of a day-long loop, but many were also half-hour screening interviews during 8-10 hour days on college campus during those “interview days” the larger career centers put on.

While your mileage may vary, most of the advice I will give is based on real situations and mistakes new college graduates routinely make. In the talk version of these notes I provide colorful anecdotes of real-life Darwin Career Award candidates. Unfortunately, in the infinite-life web version, I’m reluctant to provide them, even without names, as I give them in the talk. While all candidates I rejected from interviews at MSFT were rejected based solely upon their ability to perform the job at hand, I’d prefer to avoid any legal conversations.

In this post, I discuss resumes. Over the next couple of posts, I will also cover interviewing tips and actually landing an interview in the first place.

Resumes have two purposes: the first is to get the interview, and the second is to give you something to talk about with your interviewers.

Getting past obvious screening

Except in the cases I’ll talk about during the discussion about landing an interview in a later post, you should assume that your resume is being read by a cruel, hung-over reddit grammar fiend. Most college students imagine that their resume will go from their editor into a generic e-mail address or web form and then onto the desk of a technical hiring manager who will then make a decision about them. At all but the smallest firms, that couldn’t be further from the truth! You know that jobs@company.com alias? It gets hundreds to thousands of e-mails. Each day. I can only imagine things are worse now, given the job market and incredible increase in CS enrollments over the last few years (which I couldn’t be happier about!).

Skills

At MSFT, the recruiting department had specific tools to recognize “chain submitters” and filter them out. But even lacking that, most companies will end up putting either human resources or a dedicated recruiter on the front lines, filtering resumes to a more manageable level. So, what do you have to do to get past them? To be honest, this is where that ridiculous skills section comes in. Take a pass over your resume and ask the following question:

If someone at the company you wanted to work was scanning your resume, but had no idea about how the products were built other than the basic names of technologies involved, would they bring you in?

So, even assuming you have a CS degree from a good school and a 3.8/4.0 GPA, if they have 25 other candidates from similarly good schools with similarly good GPAs, do you have even a passing familiarity with their tools? If they’re a Unix shop and you only list Windows-based tools in your skills, that will probably prevent you from getting even a phone screen.

It’s not that they don’t think you’re good. It’s that they only need to hire a couple of people, and due to the number of applicants to competitive companies, they can afford to be selective.

As an example, until recently, I thought that all of the Stanford CS kids did the five year dual Bachelor/Master’s degree program, but I have since learned that many of the BS-only students couldn’t even get past the on-campus screen.

No typos or grammar errors

Seriously. It’s one page. Get someone else to proof it closely in exchange for checking theirs and be very careful every time you change it.

Don’t give anyone along the way a stupid, petty excuse to reject you.

Have something interesting and CS-related

Particularly for engineering schooles (due to their accreditation-friendly curriculum), everyone took the same classes. With the same content. And basically did the same projects, since there are just a few books catering to each of the mid-to-upper-level courses.

How are you different?

Find that, and point it out. Hopefully it’s CS-related and involves a significant hacking project of some kind (see the later section on driving the conversation), but even if it’s a background in statistics that has made you particularly good at rigorous performance profiling, call it out. You need to find a way to make your resume stand out from the rest of the ones in the pile, and cinnamon-cookie scented paper isn’t the trick.

Well, that would’ve worked for me, but you shouldn’t count on it in general.

Miscellaneous content

One page is an ideal length for a new college graduate’s resume. If you have so much CS content that there’s no room to put on your crew team, debate club, and residential college leadership roles, omit them. They won’t be missed. As a rule of thumb, that also applies for your first few years in industry. Your resume will see its college section shrink down to just the major research projects you participated in (if any) and that space filled with your first job or two.

Don’t add unnecessary things. Gap in your schooling due to personal issues? Leave it out unless it adds something to the conversation (i.e. you traveled the world while using your custom geo-tweet app every 500 paces taken). No hiring manager I’ve ever met will change their opinion of you based on whether it took you four or six years to get through school. And if you’re worried, and anyone asks during the interview, just reply, “personal issues, which are resolved now.” That, by the way, is interviewee-speak for “if you keep asking me questions along these lines and later refuse to provide me a job, you’ve given me grounds to retire off of the legal settlement.”

Drive the conversation

The number one reason recent college graduates are subjected to stupid questions is that they failed to provide something interesting to talk about. And it’s a true shame. Your resume is a tool to drive an interview. If you list no projects? Stupid questions the interviewer makes up. If you list some open source projects or research you participated in, they will ask you. In an uncoordinated interview, you may even be asked several times.

So, first, get on a project! Got Federal work-study money? Go talk to a professor from a class you did well in and tell them you have it and want to work on something for them. You’re free labor, and any (particularly systems) professor worth their salt has a nearly infinite supply of undergraduate-sized projects available. And if you don’t have work-study? Offer to do the work for credit. You will learn more fixing the network interfaces for the basis library of your local Standard ML implementation than you will in even a graduate-level networks class.

Further, you’ll have something to talk about. So, be prepared! Imagine that it’s the first time seeing your resume, and the interviewer will say, “tell me about your work with the networking libraries in SML/NJ.” You should be prepared to describe the overall project, how your code fit in, what you fixed, what you added, and what was remaining. Information about how the code is used by callers is a bonus. Trust me, being able to do that will separate you from the other candidates, most of whom give one of the same two sob stories: “I worked on a group project in my databases class but I was the only one who did any work” or “my courses did not have any large hacking projects.”

If you can, make sure you have at least one deep technical bug or persnickety detail in your mind. Odds are decent if you have something such as a networking-related project that a great company will schedule your interview loop so that one of the random members later in the day will be the primary author of WINSOCK or the person who put together the FTP support for FireFox. Talking about that detail, how it threw your for a loop or broke your code, and how you finally tracked it down should lead to a great conversation (or friendly argument!). A vote of technical confidence from people with that kind of background can easily wipe out a mistake you made earlier in the day when implementing newspaper line justification on a whiteboard.

BONUS: Own your online presence

Assume that interviewers will use Google and Bing to search for your name. Own the first page of results for you. Both of those engines allow you to request removal of pages you own (honored within two days).

Most dubious content cannot legally be used to make a hiring decision and it won’t be by large, well-trained companies. But, do you really want them asking who’s got the “weaboo DDR wizard” next?

Categories: Uncategorized
Follow

Get every new post delivered to your Inbox.