Career Advice

Caveat Lector
Interview Preparation | Students | Offer Negotiation | Recommended Reading

Interview Prepataion

Study data structures and algorithms. That seems to be the most popular these days, particularly for entry-level candidates like interns and new grads. As you advance in your career, you will likely run up against design problem questions.

HackerRank (and other platforms like it) is a good resource. Practice using whichever language you are most comfortable and familiar with. If that language is a scripting language like Python or Ruby, some interviewers will object that your language of choice makes things too easy. You should be comfortable enough with one of {C, C++, Java} to muddle through competently.

Phone Interviews

Sometimes it is a recruiter doing this. If that is the case, they will either have brainteasers for you or some basic technical question & answer sheet. Hopefully, you get a technical interview with a real engineer.

During the interview itself, focus on asking clarifying questions to make sure you understand the problem and try to write code that will actually compile and run. You should think out loud as much as possible. Silence is particularly awkward during a phone interview.

Google tends to give you a shared Google Doc. I recommend setting the font to something with a fixed-width like Courier New. Most other companies use a more sane shared code environment.


A few employers care about your GPA for your first job. No one cares after that point. Internships, open source contributions, and side projects are far more important to your career success than getting straight A's.

The recruiting season for the following summer usually begins at the end of August or beginning of September the previous fall. The main reason for this is that if an intern has a return offer, they usually have a short window to accept or reject it. Sometimes, that offer will come right after the internship ends. The other reason is that it is easier to miss a lecture or two at the beginning of the semester. This makes September and January/February the best time for student candidates to fly out.

The top companies will keep recruiting until all of their entry level positions are full and until they physically can't handle any more interns. They might stop interviewing candidates as early as December or they might continue through February and March. It depends a lot on the year and the company. If you are waiting until March to start looking for work when your last exam is in April or May, you might be out of luck.

Offer Negotiation

First, read what Patrick Mackenzie has to say on this.[0]


One important concept to understand is "BATNA" — Best Alternative To Negotiated Agreement. This is a fancy term which basically means what you'll do if the offer falls through. The best BATNA is, of course, a competing offer from a similar company. A credible threat to go work for a competitor is the best way to improve your offer; even if you have no other leverage. Grad school is another good BATNA. Other (weaker) possibilities include starting a startup, or taking time off to travel.

Recommended Reading

Steve Yegge

Five Essential Phone Screen Questions
Get That Job at Google

Patrick Mackenzie

Salary Negotiation: Make More Money, Be More Valued
Don't Call Yourself A Programmer, And Other Career Advice