
The new way to land a job at Facebook - svm33
https://www.kaggle.com/c/FacebookRecruiting
======
3pt14159
They are asking you to build a recommendation engine. One tailored for a
specific type of problem.

Using some startups api aside (spirit of the competition and all that), anyone
interested in completing this should pick up the Springer book Recommender
Systems Handbook, it's a very good place to start.

Depending on the size of the Facebook dataset, you will need either a graph
library like networkx or a graph database (there are many).

You should probably use python because, let's face it, nothing else will have
as many opensource libraries, be as fast, and as accessible from C as python
is (use cython for painless compiled code and to link to other C libraries).

Don't use recursion unless your language is specifically built for it. Stay
away from ILP graph traversal unless you really know what you are doing.

If you are using some sort of context token/vector similarity approach, be
sure to know that the number of tokens you are going to need will be huge, and
furthermore you will likely need some hard coded rule sets for low
follower/following users.

Try to introduce a time-based decay factor or something similar, and of course
take advantage of degrees of "closeness" if there are repeated interactions
between nodes.

One last thing: if your approach uses some sort of map reduce solution, it
might be better for _real world_ applications, but it will _significantly_
slow down your progress. Just load a box up with RAM and use fast algorithms.

Best of luck to all you out there!

~~~
pepsi_can
You seem to be very knowledgeable in this area. May I ask what your background
is? I would like to take on some self study in this area. Would you have any
advice?

~~~
kubrickslair
Besides the excellent suggestions by the parent, I might also look at the
awesome work done by Jon Kleinberg for a more theoretical understanding. One
may start with his pretty concise Networks book:
<http://www.cs.cornell.edu/home/kleinber/networks-book/>

~~~
3pt14159
Excellent book. Definitely recommend if you want to develop a deeper
understanding.

------
tluyben2
I'm not trolling here, but I have to ask i'm seriously wondering what is 'so
great' about landing a job at Facebook? They have a nice tech stack, but it's
a social networking site. How is it interesting to be a cog in the machine
that is Facebook? Again; serious question; I'm curious. I'm a bit older :) and
I would not want to work for any company other than a startup; I learned in
life it is not the right dope for me. And so I am interested what makes it so
interesting to work for this (Edit: scrapped [kind of]) company.

Edit: I mean; so interesting that you want to jump through hoops to get in.

~~~
kmavm
Hey, my name is Keith Adams, and I'm an engineer at Facebook.

I work on the HipHop virtual machine, a dynamic compiler and runtime for the
PHP language. It is the hardest challenge I've tackled professionally, and the
people I'm working with are brilliant and work like animals.*

I think the larger significance of our work on HipHop is in the context of
software as a whole. PHP is one of those "developer productivity languages,"
like Python, JavaScript, LUA, etc. And, though I was skeptical before I came
here, developers really are more productive in these languages. It would blow
your mind what world-class people working in this medium can accomplish in
compressed timeframes. This means that increasing these languages' performance
is incredibly leveraged; to the extent we're successful at making PHP faster,
we change the set of problems that PHP can address. Moving a problem from the
"must be solved in C++" category to the "can be solved in PHP" category frees
up our fellow developers to get more done with their finite professional
lives.

*Edit: By "like animals", I mean, "with a survival-level sense of urgency." It doesn't necessarily mean long hours.

~~~
Slix
One thing that turns me off of seriously pursuing a career at Facebook is PHP.

I haven't learned PHP yet (and I'm only in college), but I've heard bad things
about its design, and it seems to be overshadowed by Ruby and Python in my
programming news sources.

Is PHP a dying language? Even if it is, it makes sense for Facebook to
continue using it instead of throwing out all their code.

But it seems like it might be a waste to spend time at Facebook using PHP if
the rest of the tech and start-up world has moved on.

~~~
jc4p
I'm going to apologize in advance if any of this seems too stern or rude.

You seriously don't have the correct mindset about this. You are thinking in a
way that a lot of other people share, but it's not practical. In the real
world you have to learn new technologies and languages consistently. Every day
something new comes out or gets improved that makes doing a difficult task
easier, and people/companies that can adapt and not be left behind do well.

If I were in your position (which I guess I kind of am, I'm also college-age
but I've spent just under half my life doing some level of professional
programming) I would be learning EVERYTHING I can or at least everything
mainstream I can so that if I come by a cool piece of code online or at work I
can tell exactly what it does.

It's true that PHP isn't as a strictly written language as some of the other
languages (by this I don't mean syntax, I mean that doing two analogous
operations have completely different names/attribute orders in the standard
library) but it's still used by tons and tons of people. PHP isn't dying. I
hate the term "dying language" because there's always something else out there
that's good for that each specific language.

I'm assuming that Flash is also "dying" in your POV but just today I had to
whip up a quick SWF to allow copying something to a user's clipboard because
it was the simplest and quickest way to allow one-click clipboard access that
I could think of and I have spent time learning Flash/AS in the past so I had
that knowledge.

Now, when you say:

    
    
      it seems like it might be a waste to spend time at Facebook using PHP if the rest of the tech and start-up world has moved on
    

I have no idea what you mean. Do you mean that Facebook not restructuring
their entire codebase to a cooler and more popular language is a waste of
Facebook engineers time? Or do you mean that you learning PHP to work at
Facebook would be a waste of your time? I don't understand how either of these
two statement could be argued so if you meant something else I'd love a
clarification.

There is absolutely nothing that Facebook _can not_ do with PHP that they
could do with Python or Ruby. Any business logic can be written in a myriad of
ways. And I believe to be a strong candidate for a "wow" employee after you
graduate you should be able to drop head first into any codebase and at the
very least quickly get a simple grasp of what's going on.

If Facebook gave you an internship today would you reject it because you've
heard bad things about PHP?

Sorry about the rant, but I've spent a lot of time working to hire other
developers and it really irks me when I hear something like "oh so and so's a
dying language, it's useless to learn it" because it shows that you don't have
the drive and love of technology that my ideal person would.

~~~
Slix
I do want to learn lots of different technologies, including PHP! That's part
of the reason I read Hacker News in the first place.

But I'm doubtful of its real-world application these days. Most news I see
never mentions it, but Ruby and Python are mentioned near constantly.

I'm sure working at Facebook would be amazing. I mean, it's _Facebook_. But if
I also got internship offers at Google and other high-tech companies, then the
language I use at work will factor in.

And PHP doesn't seem nearly as significant as these other languages, so then
why take a job where I'll learn and use it in-depth for months when there are
other languages?

~~~
jc4p
You're going to be sorely disappointed when you find out that the majority of
user-facing applications at Google are in Java, which you'll hear even less of
on places like here.

The reason you don't see mentions of PHP all the time on places like here is
that Python and Ruby are considered "hip" languages right now. Every one and
their mother wants to learn it to show off how cool it is. Which is freaking
awesome because the more people that learn nice scripting languages the
better, but it means people aren't being driven to build new services on PHP
to show off because instead of listing off 10-20 buzzword plugins by other
people, you have a limited amount of mature things you can use to make a PHP
application. This is not saying that Python and Ruby don't have mature
platforms and extensions.

Have you done any professional programming in the past? I absolutely guarantee
that even doing an short term internship at a company using a programming
language you don't know, the nuances of that specific language won't be what
you take away from you but rather the different ways to think about a specific
problem.

Maybe once every month I face a problem at work or on personal projects where
I can say "Hey, I remember this, it's a really obscure PHP fault!" versus many
many times a times a day when I think "hmm I could build this as a singleton
or a factory or a ....." and can use my previous experience programming in
those fashions at previous jobs to figure out what the best way to do it
currently is.

Learning a new language isn't about dedicating your life to it. It's about
learning new methods of completing tasks, which you can almost always apply to
other languages.

------
georgemcbay
When Netflix did this back in 2006 you could win a million bucks!

Now all you win is a job at post-IPO Facebook.

Talk about a down economy!

~~~
noonespecial
No, you get an _interview_ that might lead to a job...

------
picklefish
"The challenge is to recommend missing links in a social network. Participants
will be presented with an anonymized, directed social graph from which some
edges have been deleted, and asked to make ranked predictions for each user in
the test set of which other users they would want to follow."

When has this kind of data ever been successfully anonymized?

From Netflix's attempt: <http://www.securityfocus.com/news/11497> (First link
I googled, but has the gist)

~~~
dsl
You deleted the important part from your quote: directed social graph _(no,
not Facebook, keep guessing)_ from which some edges have been deleted

My guess is the data is either something public or a non-user facing dataset
they collected internally (like what coworkers have you bought lunch for)

------
heyrhett
The LSE has a good talk about what they're doing here:

[http://www2.lse.ac.uk/newsAndMedia/videoAndAudio/channels/pu...](http://www2.lse.ac.uk/newsAndMedia/videoAndAudio/channels/publicLecturesAndEvents/player.aspx?id=1229)

It helps them find high school dropouts in Maine who might be great employees,
but would otherwise never have shown up on their radar.

------
dabent
This looks like it's effectively a newer version of the old puzzles, which
look like they've encountered problems:

<https://www.facebook.com/PuzzleMaster/notes>

------
sireat
It does seem strange that the only reward is a chance at an interview. Most
other contests at Kaggle at least offer something tangible. One of the first
contests at Kaggle was a chess ratings prediction which offered signed book by
Kasparov, Karpov et al.

I suppose it is one way to weed out those who would not be likely to apply to
Facebook even if they did well at the contest.

------
jhspaybar
Rather than the puzzles which are now discontinued, I recently did an online
timed puzzle through interview street I believe. By solving the problem
properly within 2 hours I received a series of phone interviews, and once I
start my senior year at college will be able to begin the remaining full time
interviews, so they've had something like this for a while.

------
paulhauggis
I would rather put the time and energy into my own startup.

------
sparknlaunch
Really like the kaggle platform. First heard about them from a techzing with
the founders.1

The challenges can help corporations and others from solving complex problems.
No reason why Facebook cannot take advantage of this process.

1 [http://techzinglive.com/page/927/166-tz-interview-anhony-
gol...](http://techzinglive.com/page/927/166-tz-interview-anhony-goldbloom-
and-jeremy-howard-kaggle)

------
jsavimbi
Can we just please have the Netflix recommendation engine?

