
Get that job at Facebook (2012) - sauravt
http://www.facebook.com/notes/facebook-engineering/get-that-job-at-facebook/10150964382448920%22
======
kubrickslair
Never interviewed at Facebook but have been offered roles at similarly hard to
get places. Though I am working at my own startup now, the absurdness of the
interviewing process at majority of such places confounds me.

In short, I can't cope up with them well without going through quite a few
glassdoor type questions of that respective company. And partially it is
because most interviewers already have a set of solutions that they are
looking for, and can't appreciate novel solutions and at times even better
time/space complexity if they do not fit the standard mold. In my experience
only some very hot startups had smart/ open enough interviewers to appreciate
new solutions or see the relevance of new CS research results that may solve
their question.

Before one starts attacking me on being a CS philistine, I want you to ponder
on my background- current work involves designing & implementing pretty
intricate & complex algorithms, and earlier research & publications in a range
of ML related sub-fields, mainly NLP & recommender systems. I also read CS
papers for pleasure, code in multiple languages and did reasonably well in
programming competitions- no longer participate, latter is many years ago.

For a similar experience, though from a far more accomplished person, see
Tanya Khovanova's blog post on hiring 'the smartest people in the world':
<http://blog.tanyakhovanova.com/?p=402>

Also, FYI I don't resent the system a lot. It is better than it being an old-
boys-club; I just dread going through the bootcamp of memorizing/ revisiting
trivial stuff in case I ever have to look for a job again.

~~~
CoolGuySteve
The thing that really bothers me about these postings is the advice that you
should 'prep'. Conceivably, many applicants will already have a job that
requires them to code 8 hours a day. But somehow, the skills required to pass
their interview are so out of line with what a programmer does day to day,
that extracurricular studying is required.

It would suggest that the interview itself selects for mostly irrelevant
skills if that is a problem they're having with the process.

~~~
kubrickslair
Another reason I am not fond of this- it is easily hackable. I know some
pretty average people who prepared for months, went through all questions they
could find online, ignored their day jobs and cleared the interviews, while
some really talented people could not.

Funny that this got brought on the Facebook thread. Though I never applied at
FB, I have 'mentored' two people who made it through the process. Mentoring as
in, helped them make sense (and see the general pattern) of the solutions
which they saw online but could not appreciate/ understand on their own.
Though I guess they had lesser trouble regurgitating the solutions in the
interviews.

~~~
kamaal
Its very easy to game the interview at big web companies. I mean even if they
ask all these text book academia related questions- Algo/DS ones etc.

I remember once there was a question on Quora about an IIT BTech guy who had
offers from all major web companies. Some one asked him how he did it. And his
advice was that you had to simply 'practice'. Simply go out on the internet
check for good interview forums work on it an hour every day. Even if you are
actually a worthless programmer on the ground. You can pretty much ace any
interview with simply practice.

This also reminds of my Math classes in pre-university college here in India.
I would generally try to solve a problem in more than one way and show it to
my lecturer. One day she scolded me badly, that my experiments might end up in
me scoring less marks. Her point was the evaluators were used to seeing a
certain pattern of answers over years. And if the student had a new innovative
answer, they would simply mark it wrong because it didn't their 'one true'
answer, even if the solution was more elegant and better than the common
pattern. Therefore the only way of scoring high marks was to practice all the
common patterns.

Rote learning works at all levels.

I remember some days back I watched a interview of RMS on youtube, and he was
asked a question on how you could be a good programmer and what books you had
to read. And he gave a straight reply- You had to simply work on some hard
real world problems/projects and bring them to closure. That was his advice.

Too bad these days we check people on everything apart from their actual work.

~~~
kubrickslair
Agree on all points.

Interesting that you brought IIT up. Though I barely cleared IIT JEE and did
not attend it for I could not get CS at any of the good schools, I had the
feeling that it was becoming more and more hackable with the proliferation of
coaching institutes. When I was in a top 5 PhD program which attracts the best
of IIT K/B/M guys the quality drop became more evident over the years. There
were and are still very bright IITians at my school, but I saw more noise
coming in at later years.

And for those who are not aware- there are cram shops in India which 'train'
you to clear Google/ Microsoft interviews. And this has been going for at
least 6 years, if not more. Now from talking to my friends in India I get the
impression that the superficial interview difficulty is higher in India than
the Bay Area for similar companies. And that is despite the work quality being
much higher in Silicon Valley.

It's all very funny and ironic.

~~~
kamaal
>>there are cram shops in India which 'train' you to clear Google/ Microsoft
interviews.

This is so true, that I can't even find ways how to assert it more.

As a fresher, I attended a off campus interview here in Bangalore(Those who
don't know- these are generally mass hiring drives, where hundreds/thousands
get hired) where I happened to talk to a guy between written test sessions who
even had taken very elaborate 'class notes' on clearing these interviews. He
had gone through something like a 3 months coaching class just to attend these
interviews. There are standard coaching materials, which are updated pretty
frequently. Pretty much anything that they can ask you in these interviews
will be covered. They have made you hard practice it so much it will be cake
walk to you make it through.

>>And this has been going for at least 6 years

I can assure this has been going on for a very long time now.

>>It's all very funny and ironic.

Its all about the volumes. A recruiter told me, if a resumes falls down during
a mass hiring drive they don't even bother to pick it up. We live in an era
where recruiters search monster.com based on some keywords and pick up
candidates based on that. So we are now down to SEO optimization for resumes.
And then coaching classes to game the interviews.

As a side note, in all major IT services companies in India you have to take
'certification exams' for pay hikes and promotions. I've seen people drop
everything they do and practice clearing these for months. The worst part is
you have to 'memorize' the whole material. Later I would see those people go
on to get promotions and hikes, while the actual who go the work done fail(due
to lack of time to practice) in the certification exams.

~~~
kubrickslair
>> where I happened to talk to a guy between written test sessions who even
had taken very elaborate 'class notes' on clearing these interviews.

Pretty sure there would be coaching classes to get into coaching classes with
higher hit rates of finally clearing the interviews. It's that broken.

Whenever people talk about the madness of India's youth, I can't help not
quoting Soumen:

"It's hard to overstress the liability of a nation of a billion people out of
which 700 million are functionally illiterate and the rest have no wish to
follow instructions, even when they are asking for a favor."

[http://www.cse.iitb.ac.in/soumen/APKGKAH/illiterate/Applicat...](http://www.cse.iitb.ac.in/soumen/APKGKAH/illiterate/Applications.html)

>> As a side note, in all major IT services companies in India you have to
take 'certification exams' for pay hikes and promotions.

Hope you are fortunate enough to be not working for such places anymore.

~~~
Evbn
Broken? It sounds exactly how optimization systems work :-)

------
ritchiea
I hope this doesn't sound facetious, but what I hear over and over again is
that places like Facebook have difficult technical interviews that are
algorithm focused to create more false negatives than false positives because
they work on hard problems.

What are some concrete examples of hard problems tech companies face that
require novel solutions and why are algorithms problems the best way to find
the people qualified to solve them?

I know these seem like a naive questions, but these two things seem to be
taken for granted in every interview discussion (or even if someone argues
against them it's mostly a "this is how I find good people" argument). I think
it's pretty clear this isn't the only way to find good people, I'd just love
to hear more about the thinking behind this interview style and what it really
means to these companies when they say "we deal with hard problems." The only
concrete example I've ever been given is someone at another big Valley company
speaking about difficulty of master-master writes between data centers at a
large scale. Which certainly qualifies but I'd love to hear what other "hard
problems" are out there.

~~~
BadCRC
one I was given in an interview:

You're working on the front-end development for a chatting website. Each
conversation gets it's own 100x200px div and they are placed on the screen
such that two conversation windows are never intersecting.

We want to display a new conversation window, write an algorithm to determine
where a conversation can be placed such that it does not overlap with any
current conversations. Assume that the website is being displayed at
1024x1280px.

~~~
jiggy2011
You can fit at most 60 chat windows on the screen. So surely you can just
start at the top left and wrap around every 10 windows? When you get to 60 you
can't display any more.

Or is the problem different? For example you already have some arbitrary
number of windows already displayed at arbitrary locations that you cannot
move?

~~~
btilly
I would assume that you have an arbitrary number of windows already displayed
that you cannot move.

~~~
jiggy2011
In that case, it's probably most space efficient to place each new window next
to an already visible window or at an edge of the screen.

So keep a list of possible candidate positions. Each of these positions
represents either an edge of the screen or a position directly above/below/to
the left/to the right of an existing window. You will need to calculate
different offsets for each of these circumstances to generate candidate
positions. You easily eliminate ones that fall outside of the screen.

Each time you attempt to add a window you iterate the list of candidate
positions. If a candidate position can fit a window (just use brute force 2D
AABB collision detection against all windows, or a quadtree/spatial hash to
optimise) then place the window there. If it cannot fit remove the position
from the candidate list.

Once you have added the window, calculate all the candidate positions (for
each side) and add these to the list of possible positions for later windows.

Well it's late and that's the best I can manage.. I know somebody will point
out a flaw here :)

~~~
chacham15
You know, for people who have taken graphics classes, this seems like a much
easier question because they know about AABB trees. That is the problem at the
heart of the question. Also, your idea about candidate positions is wasteful.
Just invert the tree so that it contains empty space instead of full space.
Then, on insert, remove from the tree.

~~~
jiggy2011
I guess you still need to find empty spaces that would overlap between
branches at various levels. Under some circumstances you could end up
backtracking around the tree quite a lot to find somewhere to park when you
have a lot of nodes with some free space but not enough.

------
kamaal
>>Take your time preparing. Do code katas and practice interviewing with
friends. Try solving the interview questions on our site.

This makes me wonder, who or what kind of a candidate the person even trying
to hire. Programming or any career for that matter is by and large a kind of
job that requires you to perform everyday, you have to be consistent. Its not
an Boxing match or America's got talent contest which happens once an year for
which you do all the preparation for 12 months and then perform on the last
hour. Software projects or any project for that matter simply don't work that
way. You don't read books for months, decide to do the project and then hammer
out all the code in an hour.

>>Impress us with your mastery of whatever language you're best at.

Again, whom are you trying to hire?

>>Hard training makes for an easy battle. Brush up on techniques that you may
not use every day, but are very useful when you need them: recursion, graph
theory, tree traversal, combinatorial problems, etc.

Sorry but this is getting boring. This algorithm thing is so badly gamed, it
doesn't even make a good point of testing a candidate anymore. I've known
people who work an hour everyday practicing these interview problems and can
ace through such interview in a breeze, but wouldn't even last hours in a
demanding work environment.

The best way to check if a candidate is good for you is to do a through check
on the quality and kind of projects/problems they have worked on in the past.
If they have done well, hire them. Else regardless of whatever they might know
from the text books, if they can't get the job done or haven't in the past.
They are worthless to you anyway.

~~~
jaimebuelta
The problem with the previous work done is that could be difficult to show or
check. If you worked on a regular company, the work done is not available. I
agree that a discussion about previously done software can be very
interesting, but that could be gamed too...

I'm afraid that interviewing is never going to be easy for both...

------
jamesaguilar
One thing I have seen repeatedly in interviews for engineering positions of
all levels is people who have not gone back and reviewed the basic algorithms
they learned in second year. I know coding questions as posed in interviews
are not the best measure of job performance, but they are also one of the few
we have that is guaranteed to be sourced from the candidate in question. To
perform well at these sorts of questions, you should be familiar with basic
algorithms and techniques. It's a common language that you and the interviewer
can speak. Not knowing that language is gimping yourself unnecessarily. Don't
know what a graph or a queue is? You're gonna have a bad time.

Take a few hours to study up before interviewing at the big engineering-
focused companies.

~~~
strandev
If you agree that these types of questions are not a good measure of job
performance, why encourage this line of questioning? Wouldn't it be better for
the industry as a whole to discover better ways to determine future job
performance?

~~~
tezka
knowing these are not going to guarantee good performance. But not knowing
them is a clear indication of incompetence. A programmer who doesn't know
basic algorithms and data structure is a bad programmer.

~~~
scarmig
Obviously more knowledge is good knowledge. And perhaps the bar for being a
good programmer involves being able to

1) Implement a red black tree on a white board

I would argue, though, if that's the bar, there are probably other bars that
are a bit lower that at least some of the algorithm triumphalists would fail,
such as to

2) Throw up a basic and secure Wordpress site on an Amazon EC2 instance

or

3) You're running into an issue where you're getting an error message about
running out of file descriptors. Tell me what's the issue here and what you'd
do about it

or

4) write a basic, safe script that makes backups of each file in a given
directory and its subdirectories

or

5) tell me what the fuck is the clearfix?

Now, if intermediate algorithms is something that people should be able to do,
surely you'd agree 2-5 are even lower bars to meet (since they're things that
virtually all of those "bad programmers" are able to do). By the same token,
though, it's absolutely the case that many hires at the BigCos actually
wouldn't be able to respond to 2-5.

I wouldn't say that those people shouldn't have been hired; after all, people
learn! But if algorithms are actually part of the everyday job, someone could
also learn them, no?

To the extent that you're testing for raw intelligence--which is the most
important aspect of any of these types of jobs--algorithms are a good ruler.
But to equate the measurer with the measure is somewhat foolish, because it's
a means to an end, not the end itself. If you can use other probes of raw
intelligence, those function just as well as being able to vomit up algorithms
and data structures that, as people point out, any person who spends a month
or so studying can get a solid grasp on and then never need again.

------
zoba
> "Practice writing code in a simple text editor without syntax highlighting
> or completion macros."

Maybe applicants shouldn't be able to "undo" during the interview? Or maybe
applicants should be able to manually convert the code to assembler? Or, heck,
have them use one of those behemoth computers with the blinking lights that we
have to plug wires into sockets to program?

I mean...why should we rely on any technology that has been developed to make
software engineers more effective and that the majority use daily? That would
be like if we let sales people use tools they rely on, like charisma, during
interviews!

The only sensible argument I've heard for why companies interview with
programming puzzle questions is that it "takes too long" to do an interview
better (like the way simonsarris pointed out Sencha does). At the point a
company is unwilling to look at applicants as humans, and instead treats them
as numbers/percentages, I wonder if they're a company worth working for any
way.

~~~
btilly
Here is one answer for you.

Many programmers will take longer to configure their environment than you have
available for the interview. Therefore if you tried to let them interview in
the programming environment of their choice, there would be no actual
interview. (And you'd have to undo whatever they did before the next
interview.)

~~~
robrenaud
Let the candidate bring a laptop?

~~~
btilly
There are lots of good reasons why you might not want random people plugging
in their laptops on your computer, and likewise reasons that you wouldn't want
them to walk away with your interview materials loaded on their personal
computer.

~~~
LockeWatts
Most interview questions are verbal, and a laptop is capable of compiling
code. Your problems with it seems factitious.

------
coldcode
Why? Work 70 hours a week finding new ways to put more ads in people's lives.

~~~
jonathanjaeger
Don't trivialize Facebook. There's no other place online that so easily melds
chat, messaging, wall posts, and general keeping up with those closest to you
(even when they're not close to you physically). Despite its problems,
Facebook provides a lot of utility for many people without having to be
cynical about it. I'll put up with all the ads that are somewhat relevant and
are not so obtrusive to the extent that they are popups.

~~~
cantankerous
I don't think anybody who trivializes Facebook is speaking to the problems
they have to tackle at the scale they're at. I think the real cynicism comes
from the real added value coming from Facebook at the cost to society it
brings (i.e. lost time, ad sales, impact on human interaction, etc.).

~~~
jonathanjaeger
Impact on human interaction is a concern in the age of social media. We will
always find a way to lose time. I'm not sure if any generation is/was immune
to that.

------
taftster
My interview technique is this; I look at their resume for the typical
buzzwords. Next, I ask them to explain about said buzzword, what they worked
on, what they thought of the technology.

Then, we dig deeper. Anything they say, I continue to ask them followup
questions. Eventually, we dig deep enough to know whether this person truly
knows said technology or just put in on their resume for buzzword compliance.

It might go something like, "Oh, I see you've had some experience with REST.
What is REST?" ... "How does REST relate to HTTP? Is HTTP required?" ... "What
HTTP verbs are considered idempotent? What does that even mean, how is this
useful?" ... "How would you implement a {insert} application using REST?"

There's no "tricking" the candidate this way. If they know their stuff, they
get to talk in depth about it allowing them to shine. You will recognize this
person, as we all love to talk about things we actually know something about.

And the other type will also be spotted. They get nervous when you start
probing deeper on what they said they should know. They start giving really
bad, contradictory and even laughable answers as you go.

------
sriramk
I should also point out that Facebook is hiring not just engineers but also
designers, product managers, infrastructure people,...

I just joined a couple of weeks ago as a product manager and in the short time
here, I've loved it.

~~~
dudurocha
How is the interview for a product manager?

~~~
therandomguy
I was hoping to get an answer as well.

------
overgard
I'm sort of disappointed that this is #1 on the board.

I don't have a problem with the piece per se, I just have the general feeling
that an article on how to impress mid level managers to get a job at some
giant established company is considered "hacker" news is.. I mean, am I the
only one that thinks that's the antithesis of hacker ethos? There's no "hack"
to this, it's like reading a pamphlet on how to get a job after college or
something. It's not /wrong/, per se, but there's no real special insight here,
and it basically reads like a PR piece.

------
tricolon
This was posted 2012-07-20. The link title ought to reflect that.

------
simonsarris
I really like this _kind_ of post and I wish more companies would write about
their expectations before you actually get to the interview.

Still, it seems like rather run-of-the-mill process. It will certainly filter
out the bad, but you may miss some very good workers who work in different
ways. Facebook still seems to be totally focused on code problems, and doesn't
even mention if what you've already built is important.

In my opinion, _stuff that someone has made_ should probably be considered the
most important thing by miles. It doesn't have to be open-source code, but
that certainly helps.

Second most important is communication skills, especially how well they can
explain things they have worked on.

From this post, Facebook seems more interested in making sure developer can
re-re-re-implement merge-bubble sort-reduce, I'm sure while occasionally
printing "Buzz". I understand why these tests can be necessary for a lot of
people[1], but I imagine the caliber of people that get past screening at
Facebook aren't of that type.

~~~

The most delightful interview I ever had (I was being interviewed) was one
where the development team didn't even ask me any general programming
questions. They took what I had written as fulfilling that pass, and went
straight into several conversations with different developers about the ways
we go about making libraries. They asked me to talk about decision making
process and how I might explain or advocate for various concepts. I'd like to
think if they had any suspicions they might have switched gears to a FizzBuzz
level, but I can't know for sure.

These talks got very in depth, and whiteboard-writing was had, but at no time
did they ask a programming question that wasn't rooted in the concrete. It was
always directed: _"How did you...?" "How might we...?" "Didn't you run into
problems with...?"_

Never did they ask me to implement a common algorithm, which feels silly. I
can't remember all of them (or even most of them), and if I needed to in the
course of my work I'd consult Professor Wikipedia long before I touch my own
corruptible memory. Never did they ask me to implement an obscure algorithm,
which popular companies seem to enjoy but I imagine filters out a lot of good
candidates who happen to have spent time knowing the wrong things. I do not
understand why obscura in itself might impress.

Instead, they had me _make worthwhile claims_ about (my or other's) code and
then _prove them._

Then they showed me what each of them was working on, ensuring there was two-
way discussion on each. They showed me problems they were having, what they
were doing, and asked my opinion. They showed me bugs, and we sat down and set
breakpoints, talked it over and stepped through until the issue was resolved.

This process lasted two days, and the entire time I was _delighted._ They did
an incredible job of making me feel accepted as a fellow professional
developer. I ended up not taking the job for personal reasons, but the entire
process and people involved were all wonderful.

(The company was Sencha).

[1] Jeff Atwood's "Why Can't Programmers.. Program?" has a good discussion on
that [http://www.codinghorror.com/blog/2007/02/why-cant-
programmer...](http://www.codinghorror.com/blog/2007/02/why-cant-programmers-
program.html)

~~~
lbrandy
Hi. I work at facebook and do many interviews.

 _Facebook still seems to be totally focused on code problems_

I would say that statement is categorically false. In fact, the article lists
4 criteria, only one of which would be "code problems". The interview
certainly has a focus on coding, but it most assuredly is not a total focus.
And people can, have, and will pass the coding bar, and still fail to get an
offer.

 _stuff that someone has made // communication skills, especially how well
they can explain things they have worked on._

Both of these are critical parts of every facebook interview.

 _From this post, Facebook seems more interested in making sure developer can
re-re-re-implement merge-bubble sort-reduce_

I don't think that is a well supported inference from the post in question.

~~~
zerr
The main downside of these kind of interviews is that the candidate has to
_prepare_.

This may be well suited for fresh grads, but not for mid-career senior
engineers.

You should seek good candidates as is. But, you already assume that one needs
to prepare...

~~~
aristus
Hi, author here. With respect, I am a mid-career senior engineer too. I
trained for a few weeks before interviewing at Facebook because, well,
changing jobs is important. There is zero harm spending some time warming up
mentally.

I recommend that people prepare because I've seen many many obviously smart
people not make it through. It's like showing up for a singing audition
without warming up your voice. You might have a beautiful voice, but you have
to show it in the best condition possible.

------
rdl
The comments on that post are an excellent indictment of Facebook
comments/public posting. They're almost Youtube level.

~~~
rozap
They're sub youtube level. 80% of those people are either illiterate or spam
bots. It was cringe worthy.

------
myko
I didn't realize Facebook did tech talks, I'm glad to see they do and they're
linked from this site:

[https://www.facebook.com/media/set/?set=vb.9445547199&ty...](https://www.facebook.com/media/set/?set=vb.9445547199&type=2)

My only complaint is I wish they were on Youtube, I'd like to make playlists
and watch them on my TV.

------
lifeformed
Those comments at the end... geeze.

"pls give me job at facebook call me 5551231234"

"send link to aplication to email@email.com"

~~~
adamnemecek
All Facebook blog comments are of similar nature. It's pretty astounding.

------
7Figures2Commas
Here's a question: at companies with these kind of approaches, how many of the
founders and early employers would have done well in these interviews
themselves?

Obviously, services grow and the Facebook of 2013 is very different from the
Facebook of 2004, but it's kind of funny to see companies that succeeded
because the original team was able to ship (period) evolve to focus on hiring
CS majors who can reinvent the wheel on a whiteboard.

~~~
randartie
If you inspect the actual early employees, a majority of them were ivy league
grads who most certainly could solve these easy interview problems (It also
helped that they could ship code).

~~~
nilkn
That doesn't mean they would have done well in the interviews. Quite a
different thing entirely, really. I mean, there's some correlation, but it's
not that strong.

------
cdjk
I interviewed at Facebook (a while ago - they were still on University Ave).
This article is a pretty accurate description of the interview process that I
remember, but could apply equally well to technical interviews most places.

The "fit" category is fairly vague, but a better description of it (and what I
think about when interviewing candidates) is "how would I feel if I had to
stay late fixing a live site issue with this person?" Ideally that doesn't
happen, but I find it helpful framing question.

For coding questions, I generally have a pretty low bar - and it's gotten
lower. Generally I look for understanding of basic data structures, and the
ability to manipulate them. I realize that's slightly biased towards recent
grads, but I think linked-lists, binary trees, and pointers are fair game even
for experienced candidates. I'm sometimes amazed at how many people have
problems with what I think are simple questions.

SQL and schema design questions are also good, and lend themselves very well
to iterative questions. It's easy to start with simple problem statement, have
someone get a reasonable solution, and then throw additional requirements in.

~~~
rhizome
_I'm sometimes amazed at how many people have problems with what I think are
simple questions._

Simple is not the same thing as relevant.

------
apunic
Is there anything like HN for tech entrepreneurs only, maybe a subreddit
somewhere? I see here regularly posts regarding jobs/interviews/etc. which are
all great ressources but since they got so many upvotes -- this one is on #1
right now -- I wonder sometimes how many on HN are full-time (tech)
entrepreneurs and how many are employed/freelance coders.

~~~
shmageggy
I'm in neither of those demographics, but I'd imagine part of being a good
entrepeneur is understanding the hiring processes of companies that you will
be competing with for talent, so this article should be popular on your
hypothetical website too.

------
sravfeyn
Communication from Facebook recruiting team is ZERO after applying. Not even
an automated reply.

About a week back, I applied to Facebook after solving a puzzle on their
Interviewstreet page successfully within given time.

Sadly I didn't get any kind of acknowledgement from their recruiting team,
neither saying I am rejected nor that they have received my application.

------
dokem
Does anyone at facebook know how the full time hiring of interns works? I'm
starting an internship in the bay area office in a few weeks and it looks like
the odds of coming out with an offer are pretty slim. Right now there are ~500
people scheduled for the summer intern block and I believe that facebook
currently only has about 1000 fulltime engineers. My understanding of
internships at 'lesser' tech companies seems to be that if you impress your
superiors you'll probably come out with an offer. The idea that i'm getting
from facebook is that I have to compete against basically everyone else. I'm
very excited by also a bit nervous.

------
orangethirty
Does facebook still use PHP?

~~~
bbillings
Yes, but no. Since moving to HipHip which is a translated/compiled version of
PHP, we have been able to fork the language to clean it up. We have a strongly
typed version, Generators, etc.

Syntactically it looks a lot like PHP and is backward compatible for many
thing, but it's not really PHP anymore. The HipHop team has done a ton to make
the language a lot more enjoyable to work in.

~~~
orangethirty
I did not know you went to such extent. At that scale that makes sense. Do you
plan to open source it?

~~~
bbillings
<https://www.youtube.com/watch?v=Dwek7dZDFN0> is a pretty good talk about
everything coming down the pipe. Generics, Strict typing, Collections, etc.

Too my knowledge (I'm not directly on the Hip-Hop team) it will be open
sourced, additionally we also generally present a PHP patch as well to allow
it in future versions of standard PHP.

------
vonmoltke
Interesting and informative post, but it seems to be focused on software
engineers. What is the process and screening like for hardware engineers?

------
ciupicri
> Give feedback. We regularly survey candidates about the interview process
> and take feedback seriously.

Yet so few companies give feedback.

~~~
thedufer
From a legal perspective, that's a dangerous move. There are any number of
ways an interviewer's feedback could be misinterpreted (or correctly
interpreted, I suppose) as being an illegal reason for issuing a no-hire. Even
if you're careful, there's a non-zero chance of a really bad outcome. It just
isn't worth it.

~~~
ciupicri
I know about this legal thing, but still.

By the way, I'm wondering why do some people insist of working at a company
which doesn't want them? Besides money from a lawsuit, of course. Even if the
interview wasn't "fair", it's someone else's company, so they should be able
to hire whoever they want.

------
dgbsco
I need to use Facebook to login to take their 'programming' test. I'm PISSED.

------
Sven7
Facebook needs to be asking candidates just 2 questions. (1)Can you increase
the number of minutes per hour your mom spends on Facebook? (2)How much do we
need to pay you to feel comfortable doing that?

------
rodrigoavie
I wish more companies shared their hiring process for developers. Anyway, I
hope they do not stick too much the puzzles.

I'm looking forward for the time I'll be able to solve their problems, too.

------
waltz
How many people do you actually need to run a website? The whole thing can be
maintained by a small team probably.

~~~
randartie
You're greatly underestimating the complexity of Facebook. I bet they have
greater than 200,000 machines. Creating the infrastructure to just manage and
deploy to those machines would already go beyond your 'small team'.

Not sure how you imagine a 'small team' managing a system that has an exabyte
of data. From network infrastructure all the way down to cold storage, a
'small team' would be needed for each.

------
brokentone
I left after "elemental awesomium," someone TL;DR?

~~~
danielsamuels
TL;DR: You'll never work at Facebook because you don't have the attention span
required to spend 5 minutes reading an article.

~~~
brokentone
Well good, I was worried they'd forcibly hire me, so good to know I'm safe.
The issue is less attention than having 5 minutes of time available to read
obvious self-congratulatory posts filled with annoying startup-y words.

------
orangethirty
Working at fb sounds like cool experience. Though im wary of companies who
still make one suffer through such interviews. Thats what keps me as a
contractor. None of that interviews funny business.

Fb recruiter, if you read this, shoot me an email.

