Better job ads

Before writing your next job ad, look at companies successfully recruiting talented engineers.

According to a recent Google job posting, here are the requirements to work at Google:

  • BS or MS in Computer Science or equivalent work experience (Ph.D. a plus)
  • Experience programming in C++, Java or Python
  • Extensive knowledge of programming for Windows and/or Mac and/or Unix/Linux environments
  • Strong computer science foundation

Here are the requirements for a typical engineering job at Facebook:

  • B.S. or M.S. Computer Science or related field
  • Knowledge of perl or PHP or python
  • Knowledge of relational databases and SQL, preferably MySQL
  • Knowledge of web technologies: XHTML, JavaScript
  • Experience with C, C++ a plus

It is entirely possible that both Facebook and Google have far more restrictive requirements than they advertize. But I am only worried about the job ads for now. What do you notice?

  1. There is no “5 years of experience required”. You know what? Linux Torvalds was 21 when he created Linux. Mark Zuckerberg was about the same age when he created Facebook. Time spent sitting in front of a computer is a really poor measure of tech. expertise.
  2. There is no long list of buzz words to match. Notice how  Google states “C++, Java or Python” and not “C++, Java and Python”. Why is that? Because it would be stupid to reject people who have not mastered C++, Python and Java.
  3. Though Facebook and Google are at the leading edge, they rarely include specifics in their requirements. You want an expert in JBoss and Hadoop. Really? Talented people pick up the specifics on the fly.

Published by

Daniel Lemire

A computer science professor at the University of Quebec (TELUQ).

2 thoughts on “Better job ads”

  1. @David

    Why are you letting them know? —

    Because these job ads rub me the wrong way. They show a lack of respect for techies.

    I may not be looking for a job right now, but I expect companies to respect people with tech. skills.

  2. Yes, the first thing I do when looking for a job is to discard all the employers that are looking for people with very specific skills to fit their needs (e.g experience with C++, MFC, MySQL and Perl) instead of a more generic (e.g {Bachelor, Master’s} degree in plus experience in one of the following languages: ).

    I found that these companies usually work on a hire lot indiscriminately in good times and fire equally indiscriminately. It indicates that they are not willing to hire a smart person, invest in him, and keep him happily employed and rewarded appropriately: they want a disposable employee that can hit the ground running.

    Why are you letting them know? — it as a great filter to use :).

Leave a Reply

Your email address will not be published.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    Markdown is turned off in code blocks:
     [This is not a link](

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see

You may subscribe to this blog by email.