Live data from Hacker News

Get that job at Facebook (2012)

facebook.com

61–70 of 174 posts

Re: Get that job at Facebook (2012)

#61

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 import…

This sounds awesome. The next time I interview for a position somewhere, I really hope it's closer to this, than to obscure problem solving trivia.

The next time I interview someone to work for me, I really hope I can make the experience as collaborative and rewarding as it sounds this was for you.

The kinda person who I can work through this interview with is exactly the kinda person I wanna work for / employ.

Re: Get that job at Facebook (2012)

#62
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.

Re: Get that job at Facebook (2012)

#63
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.

Re: Get that job at Facebook (2012)

#64
>>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.

Re: Get that job at Facebook (2012)

#65

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 quali…

This is a great question. I can't speak to Facebook, but I ask hard algorithm questions and this is why I do it.

The point of these hard questions is not to assess if you know some obscure algorithm. The algorithms in these questions are obscure precisely because you're not supposed to know them. If the candidate clearly knows the algorithm I switch to a new question.

The point of these questions is to assess your ability to perform under pressure in an unfamiliar situation, which is a fundamental skill that all productive engineers require. I expect that any engineer I greenlight to encounter novel situations. These are not necessarily Hard Problems dun dun dun, but these situations will challenge your problem solving skills and you won't be able to look up the right answer on StackOverflow. I expect candidates to have the ability to deliver a solution that works and makes the right tradeoff between time, quality, and scope.

I have also had interviewers ask hard problems for the wrong reasons. Frowntown to that.

Re: Get that job at Facebook (2012)

#66
post #36

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 quali…

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. Assum…

Naive solution: There are 924x1080 px as possible candidates for the upper-left corner of the new rectangle. Test each of these candidates to see if a rectangle placed there is a valid position. The complexity would be O(W * H * n) where W,H = dimensions in pixels of the screen, n = number of already placed windows. For practical purposes i think this would be a good solution, assuming the need for a new window is not very frequent. I suspect the complexity can be improved though, maybe with some sweep line algorithm.

Re: Get that job at Facebook (2012)

#67

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 quali…

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?

This is best answered by awesome example. See http://research.google.com/people/jeff/ for a list of some the problems that one Google programmer met, and solved. Many of said problems were novel at the time, though many have now learned the answers that Jeff came up with.

These kinds of problems and answers are simply not understandable to people who don't understand algorithms. And you can tell people without a deep understanding of algorithms how to solve those problems, and they will consistently get it wrong.

Re: Get that job at Facebook (2012)

#68

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 quali…

In my experience, I've seen 3 kinds of jobs that demand engineers who can solve "hard" problems:

1. Obviously hard, and needs no explanation e.g. self-driving cars. 2. Basic problems done at ridiculous scale. Quickly matching keywords to web pages is not a hard problem; quickly matching keywords to every web page on the internet is a hard problem. 3. The problem is that (forgivably or not, depending on circumstances) we have no idea what we're trying to do.

Re: Get that job at Facebook (2012)

#69
post #60

Earlier quoted context omitted.

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?

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

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 :)

Re: Get that job at Facebook (2012)

#70

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 soluti…

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 s…

(Author of the post) Consider this: In any job you're going to do "normal" stuff the majority of the time. The other times, you have to pull out A-level work. It's not 24x7, but when the time comes you have to be able to do it, eg writing a parser for an obscure query language that will get executed $X billion times per day, so it better be small, correct, and fast.

We ask people to prep because we want to know if you can do that level of work.

Post reply on HN