Motivated to find an internship for summer vacations, I googled about data science internships in Silicon Valley. The search finally took me to information about internships at most popular employers in Silicon Valley, California. What took my interest is a website *glassdoor.com* where you can find described experience of candidates applying for various jobs in the US.

So, basing on the descriptions at the *glassdoor* page [http://www.glassdoor.com/Interview/Facebook-Interview-Questions-E40772.htm], I decided to write down all possible technical and nontechnical questions which can be asked during job interview for **Facebook**. I will try to keep this list updated, and maybe categorized by the exact job position registered by glassdoor user. Please note, that together it is a lot of questions, but I will try to catch all of them in a snappy way. Maybe later with answers also.

**Software Engineer Intern**

- Reverse double linked list.
- Design / start coding mathematical expression calculator.
- Given a file with 3-letter words, print all 3×3 with each row, column and diagonal being one of the words from given file.
- Given n+1 buckets with n of them with ball inside and move(a,b) function, that moves ball from bucket a to bucket b. Each ball has a different number from [1,n] on it. Move balls, so each bucket has a ball with matching number in it.
- Find the center of graph(vertex, that is connected with every other vertex, but edges are directed to the center of graph).
- Compute square root of a integer, without using the built-in sqrt method.
- Print binary tree level by level.
- Finding the maximum tree length, closest path to various sets of nodes, along with being able to detect levels of all nodes as efficiently as possible.
- Given a list of strings, return a list of lists, where each list consists of words that are anagrams.” Example: Given [“cab”, “cz”, “abc”, “bca”, “zc”] the output should be: [ [ “abc”, “bca”, “cab”] , [ “zc”, cz”]].
- Check if two strings (including caps, whitespace, punctuation) are palindromes without doing any preprocessing.

**Data Scientist Intern**

- With certain rows in a DB table being bad and we wanted to filter them out. The interviewer asked how, at a high level, we could determine which rows were bad.

**Software Engineer / Applications Developer**

- Imagine you have 10,000 servers and need to monitor the performance of each one, how would you do it?
- How would you implement division without +, – or multiplication
- Given 10,000 servers containing a Billion integers each how would you find how to find the median?
- Given a List structure where each node contains a Next node and optionally a pointer to another list, flatten that list

- How would you implement the “ls” Unix function in your language of choice. It should take the input:

>ls a/b/c/*/e/*/f/*/*/g

and the output should be similar the the output given by unix. - Regex matching function
- Given an encoded message containing digits, determine the total number of ways to decode it.
- What’s a linked list, how it looks like, how do you implement it, in what it differs from an array and to explicitly a use case that I would pick a list instead of an array.
- Interviewer picks a number between 0-1000 and wants to know what would I do to guess it (binary search).
- Develop, in 45 minutes, an algorithm able to print a tree level by level, each level in one line.
- Compare two general trees and making sure they have the same elements.
- Regular expression with . and * . Given a pattern and input string, check if they are match.
- Check if one binary tree is a bst.
- There is two dimensional array where each sub array (row) is sorted, i.e. [[1 1000 2000] [20 10001 5000] [55 10002 222222]] Find a minimum range contain a number from each row. For above array it should be (1000-1002) range.
- Design how to use 1000 bots to crawl wikipedia with some restrictions.

**IOS Engineer**

- (Views) A square subview is centered when viewed in landscape. When the device is rotated to portrait, the square ends up closer to the top-right corner. What’s wrong?
- (Memory) What memory management policy do you use for an object’s delegate? Why?
- (UX) When would you use a home-screen navigation or tab-bar navigation?
- (Understanding of platform) What is toll-free bridging?
- How objects can send messages to each other in Objective-C?

**User Experience Engineer**

- Favorite app and why?

**Production Engineer**

- What options do you have, nefarious or otherwise, to stop people on a wireless network you are also on (but have no admin rights to) from hogging bandwidth by streaming videos?

**Intellectual Property Specialist**

- If you were an animal, what would you be

**Product manager**

- Design a product to help people find apartments
- Investigate a Metric anomaly

**Account Manager**

- What’s your favorite Excel function?

**Events Manager**

- What do you need to be successful in your current job?