[Baypiggies] Programming Puzzles (discussion forked from Salary Ranges)

Andrew Akira Toulouse andrew at atoulou.se
Wed Feb 17 23:06:14 CET 2010

Getting rid of puzzles at Facebook is a suggestion they are unlikely
to agree with, as it has worked well for them. I know firsthand that
the puzzles have helped the recruiters find several highly skilled
candidates who have become productive employees there. They are not
only looking for the best communicators, but excellent
problem-solvers. When I said their hiring practices haven't scaled, I
meant that there are more false negatives than false positives - that
is, they pass over good hires but very rarely make poor hiring
decisions, and have fired very few people for incompetence, which they
are not afraid to do. I know a lot of people at Facebook and the only
person I can think of who started to approach the lone ranger
stereotype was someone who was working on an extremely hard
optimization problem that required heavy engineering experience and
rare algorithmic talent.

 That said, I asked if you have any bug reports for the puzzlebot, as
I can pass them on. I'm not a representative of Facebook, and my
internship ended a few months ago. but I still have connections.


On Wed, Feb 17, 2010 at 12:53 PM, Fred C <fred at bsdhost.net> wrote:
> A good start will be to stop using these puzzle. A good 1/1 with people is the best to find talents. The only purpose of a puzzle is to shield the hiring team from management, when someone incompetent is hired. It can then say: "I don't understand, he successfully passed all our toughest tests". At the end a good team is a collection of individual who can interact and work together, with complementary skills. Not a bunch of puzzle solvers. I don't count the numerous times I had to work with someone very skilled at solving puzzle but incapable of working in a team.
>> On Wed, Feb 17, 2010 at 12:01 PM, Don Bennett <dpb at donbennett.org> wrote:
>>> After failing to get a Python solution to pass the Puzzlebot, and
>>> switched to C++ and received a 'pass' with the same algorithm; I
>>> haven't gone back to any of my other solutions to see if I can get a
>>> passing solution in Python...
>>> Don
>>> On Wed, Feb 17, 2010 at 8:33 AM, Roderick Llewellyn
>>> <roderick at sanfransystems.com> wrote:
>>>> I applied to one job (Calypso Technology, in the financial communications
>>>> space), for which I had very good qualifications IMHO. They had a typical
>>>> automated form, which required about 30-40 minutes of cutting and pasting
>>>> from my resume, as it had separate entry fields for each job, each employer,
>>>> dates, etc (rather than just pasting my entire resume), and also asked for
>>>> skills ratings for various technologies. They had the requirement of filling
>>>> in a numerical desired salary (you could not proceed without doing so). I
>>>> entered $100,000, not believing in low-balling either. At 9:34 in the
>>>> morning, moments after submitting the form, I got an automated reply
>>>> acknowledging my submssion. At 9:37 -- three minutes later -- I got a
>>>> rejection notice from the same mailing address. Obviously no human looked at
>>>> my qualifications. I was rejected by a computer program that said "IF
>>>> desired_salary > tiny_amount_we_want_to_pay THEN Reject(candidate)".  The
>>>> good news is it took only 3 minutes instead of waiting around for weeks and
>>>> never hearing back from the employer, which is more typical American
>>>> practice. Should I have "low-balled" the salary requirement? Tried to
>>>> out-guess their program?
>>>> Just for fun, here's another horror story. I was contacted by Facebook (thru
>>>> LinkedIn), by an internal recruiter, someone named Yancy Rivera. (I don't
>>>> mind naming names!). After some discussion, it sounded like I qualified for
>>>> the position, so he told me the next step was to go on their engineering
>>>> page and solve one of two "puzzles" held therein. These puzzles are computer
>>>> programs you must write in any of several languages. I chose Python (doh!)
>>>> In case anybody is familiar with these, I picked the "User Bin Crash"
>>>> problem. It's a typical NP-complete type problem.You prepare your program
>>>> and submit it to its "Puzzlebot" which every 4 hours runs your program and
>>>> presents it with various test cases. If your program doesn't pass, the bot
>>>> gives you a rejection email. You are told nothing else; you are not given
>>>> test data, you are not given exceptions, you are not even told that your
>>>> program took too long to run. Is this a realistic debugging scenario?
>>>> Now my mistake was not doing what every modern programmer would have done:
>>>> cheated. I should have just downloaded a solution off the web. Maybe that
>>>> was the real test. After all, few companies actually want you to do any real
>>>> programming these days, they want you to download free software and tweak
>>>> its XML configuration parameters. Anyway, after many submissions, I was
>>>> still unable to pass their bot, tho my program passed every test case I
>>>> threw at it. So I finally broke down and downloaded a Python solution off
>>>> the web that supposedly passed Puzzlebot. I analyzed this solution and
>>>> discovered a flaw! If your test case contained a large prime number, it
>>>> would blow memory and could take a very long time. Sure enough, when I gave
>>>> it the largest prime < 1 billion (there's a table on the web, of course),
>>>> the "working" solution failed by blowing memory but it passed my solution
>>>> handily. However, for many cases, the "working" solution was somewhat faster
>>>> than mine. Almost certainly that was why my solution did not pass Puzzlebot.
>>>> So I wrote to the recruiter explaining this, saying that "this is the
>>>> problem with using a machine to judge a man". With my mind, I was able to
>>>> analyze a supposedly working solution, one that had passed Puzzlebot,
>>>> discovering a major flaw. Letting Puzzlebot decide who gets hired would not
>>>> have brought in the most analytical mind, merely one good at fooling a
>>>> machine. He promised to contact Engineering and, at long last, actually run
>>>> my resume past a technical person. About 15 minutes later I got a "thanks
>>>> but no thanks" from them. After 20 hours of programming, they spent a
>>>> quarter of an hour of their technical people's time on me. Maybe much less.
>>>> Needless to say, I won't be using Facebook anymore!
>>>> Have fun,
>>>> Rod Llewellyn
>>>> _______________________________________________
>>>> Baypiggies mailing list
>>>> Baypiggies at python.org
>>>> To change your subscription options or unsubscribe:
>>>> http://mail.python.org/mailman/listinfo/baypiggies
>>> _______________________________________________
>>> Baypiggies mailing list
>>> Baypiggies at python.org
>>> To change your subscription options or unsubscribe:
>>> http://mail.python.org/mailman/listinfo/baypiggies
>> _______________________________________________
>> Baypiggies mailing list
>> Baypiggies at python.org
>> To change your subscription options or unsubscribe:
>> http://mail.python.org/mailman/listinfo/baypiggies

More information about the Baypiggies mailing list