Facebook Interview Experiences - Hyderabad


Folks,

As many of you already know that Facebook is starting its operations in India.Bloomberg UTV news.It has already started recruiting full time employees for its Hyd office.

In this post, I'm gonna share some interview experiences and the selection procedure for Facebook.

Here is the career page of Facebook, where you can have a look at the job requirements and responsibilities.

Interview Process:

First, apply (for a position you choose) online on the careers page of Facebook by submitting your resume. If your resume gets shortlisted, you will receive a mail asking you to take a written test. The test is basically to test your written communication skills(you will need access to a computer/the internet during this time), it will have two questions regarding Facebook's India expansion and another question will test your knowledge of Facebook.

EX: 1 What are the advantages of Facebook's entry to India
2.Select a Facebook application and draft a mail to user giving him steps to use that application.

Note: Don't copy information from web, you will be automatically disqualified upon doing so.

Your test will be evaluated by linguists team and the results will be returned within 1-2 weeks. They will schedule time to speak once the writing test results are confirmed.

You will have two rounds of telephonic interview, where most of the questions will be on your current work experience. 
Upon clearing those two rounds, you will have 3-4 face-to-face interviews in some hotel.

Here are some questions that were asked during those rounds

1) What are you strengths and weaknesses?
2) Why Facebook?
3) How do your current job duties carry over to this position?

4) What experience do you have with platform analyst?
5) What would your current boss say if I asked him why I should hire you?
6) What is a recent project you are really proud of?
7) Why would your current boss recommend I hire you?
8) How would you change facebook? How would you change the help center?
9) What would you improve on the site?
10) Tell me about a time you disagreed with your manager about an issue, and what did you do to overcome it?
11) Can you explain a situation where you didn't meet your goals or objectives ?
12) If your current manager has to tell about your strengths and weaknesses what would be your strengths and weaknesses?
13) Explain a situation where you faced conflict or difficult communication problems ?
14) Have you ever had a conflict with a boss / colleague /professor or with your family members? How was it resolved?
15) How would you compare Facebook advertisements to competing advertisement outlets such as Google or Yahoo?
When you think about the Web, the Web promised engagement. No longer would it be static. No longer would you just watch the TV commercial, but you would interact. But there is not a lot of advertising on the Web which is truly interactive. There aren't that many places where an advertiser can connect with users and do so as a part of their experience and as part of the sharing. Facebook actually offers that ability.
16) What sets facebook apart from other networking sites?
17) Describe your favourite feature/application. Try to write it as a letter/email to a user asking for your advice.
Here are some useful links

I hope this information is helpful to you. Please share your experiences by leaving a comment. Thanks for reading my post.





Real-Time Reactive Control Layer Design or Intelligent Silver-Mate Robot on RTAI



Abstract:



               Intelligent robots are capable of handling complex tasks that includes recognition of vocal commands, logical inference, autonomous navigation and manipulation, etc. To accomplish intelligent behaviors, researchers have proposed a number of control software architectures such as tripodal schematic control architecture (TSCA). To achieve real-time performance for robot's navigation, we have implemented software components in the reactive layer of TSCA on RTAI (Real-Time Application Interface) for our intelligent robot. In this article, we present our structures of the reactive layer components. Real-time performance of the designed reactive control layer is demonstrated via experimental results.

Introduction :

             As medical technology advances with reducing birthrate, many countries are becoming aging or aged societies. To help solve problems of aging society, more and more researches are conducted on development of helper robots namely Silver Robots. These Silver Robots should be capable of handling complex tasks including human-robot interaction via voice and gesture, sensing environments using various sensors, logical inference, as well as performing jobs using manipulation and navigation. In order to perform such complex tasks within given time limits, solid software architecture should be used. Tripodal Schematic Control Architecture (TSCA) developed has been successfully implemented on three versions of their Public Service Robot (PSR) series.
           TSCA uses a hybrid approach with three layers for its control: Deliberate layer, Sequencing layer and Reactive layer. The deliberate layer includes software components for human robot interaction and task planning. The sequencing layer has low-level configuration and process supervisor that manages reactive layer components. The
Reactive layer consists of real-time components such as resource components for sensor management, controller components for actuator management, and sets of behavior components for basic real-time control. TSCA of PSR series robots were implemented
on a Windows-based PC, where the reactive layer is not explicit.   To achieve real-time performance for robot's sensing, navigation and manipulation, design and implementation software components in the reactive layer using Real-Time Application Interface (RTAI) on Linux. Software components in the reactive layer require real-time performance, since sensing and movement of mobile-base or manipulator have direct effect on the safety issue of Silver-Mate Robots.











FIGURE 1: Modified TSCA with Real-Time Capabilities in Reactive Layer


2 Robot Platform:


2.1 Hardware Architecture:


             Research on real-time reactive control architecture was targeted to a versatile mobile platform. Platform consists of three single board computers (SBC) using P-4M 2.2GHz processor and 1GB SDRAM. Head part consists of two stereo vision cameras, a pan-tilt module, and sixteen microphones for voice processing. vision and voice hardwares are each controlled Separate SBC for application with algorithms requiring heavy computations. All other hardware Components which are largely related to real-time software components are connected to Main SBC as shown in Figure 3. A gyrois connected through data acquisition (DAQ) board. Two laser range finders (LRF), two infra-red (IR) scanners and two sonar controllers, each in charge of six sonar sensors are connected to Main SBC through an 8-port serial board. Two BLDC motors, the only actuators currently on the platform, are controlled by a DSP-based BLDC control board which is also connected through the serial board. BLDC control board also manages encoders attached to each BLDC motors, two front bumper sensors, and also battery voltage.
                                                                                                                                                                                                                                                               
                                                    

                                                           
 Silver-Mate Robot Platform





                                                    
                                                                           
Main SBC











2.2 Software Architecture


               Software components comprising the proposed real-time reactive control layer on Main SBC are structured as shown in Figure 4. Each Resource components configures a given sensor hardware for periodic data, acquisition, manages hardware operation, and also stores the sensor data in shared memory for other software components. An Actuator component configures and manages actuator hardware and sends generated control outputs. A Behavior component is a basis of reactive action which uses the sensory data to compute the control output. Finally, a Behavior Coordinator (BC) component collects outputs from a set of Behavior components and fuses them for Actuator component. There are ten Resource components, one for each sensor hardware attached, one Actuator component for the actuator on the platform, one BC component, and two Behavior components. To communicate with components in sequencing layer, RT Task Supervisor (RTTS) component is used to manage all real-time tasks and handle service requests issued to reactive layer.
                                                     
                                                               
Reactive Layer Software Components



2.3 Real-Time OS and Drivers:

         Designed reactive control layer was implemented using RTAI. Version 3.1 of RTAI distribution was used, along with 2.4.27 version of Linux kernel and 0.7.69
Version of COMEDI3 drivers for the DAQ board. Since the Main SBC uses an 8-port serial board, real-time serial driver included in RTAI distribution was modified accordingly. COMEDI driver was also modified to support hardware timer functionality of the DAQ board.





3 Reactive Control Layer Design

3.1 Resource Modules

      3.1.1 Gyro Resource:
               A gyro sensor is connected to the system through DAQ board. Hence Gyro Resource module uses modified COMEDI driver to convert analog sensor output to digital value periodically, using hardware timer functionality of the DAQ board. Registered Callback function is called when a sensor data is available; hence the callback function stores sensor data in shared memory for other software components.
                                            
                        

     3.1.2 LRF Resources

                  Two LRF sensors, LMS200 model from Sick, are connected through 8-port serial board. LMS200 can operate in continuous scan mode, so once LRF Resource
Module configures LMS200 upon initialization, sensor data is received periodically. LRF Resource module largely consists of two parts. One is callback function registered to RTAI serial driver, which collects low level serial bytes from LRF to form a serial packet. Second part is the RT task, which is woke up by the callback function upon reception of complete packets and parses them to extract sensor data. Extracted data is stored in shared memory for other software components.


     3.1.3 IR Resources

            Two IR scanners, PBS-03JN model are also connected through 8-port serial board. PBS-03JN does not support continuous scan mode and requires virtual link management. Data receiving part of IR Resource module uses a callback function and an RT task as in LRF Resources, but it has additional RT task with 200ms period to generate commands to request sensor readings and manage virtual link. Data extracted by reception RT task is stored in shared memory.    



                                                                        




   


      3.1.4 Sonar Resources

                  There are two sonar controller boards on the system, one in charge of six sonar sensors around the front half of the robot platform and the other in charge of six sonar sensors around the rear half. To obtain a sonar data periodically, an RT task is used. At every given time interval, RT task issues are command, waits for some time and issues read data command for each sonar sensor. Reception of serial data is handled using a callback function and an RT task, similar to LRF or IR Resource modules. Extracted sonar data is stored in shared memory.

                              
                                                   
                                                                 Sonar Resource Structure
                                             
                                                        




         3.1.5 Encoder, Battery, and Bumper Re-sources
                   Two encoders of BLDC motors, two front bumper sensors and battery voltage sensor are connected via BLDC control board, as shown in Figure 3. Hence they can only be accessed through serial protocol provided by the BLDC control board. Software component that manages BLDC control board hardware is MBase Actuator module, which is explained in Chapter 3.2, hence Encoder, Battery, and Bumper Resource modules depend largely on functionalities provided by MBase Actuator module. MBase Actuator provides functionalities to register or unregistered a callback function for each of encoder, battery, and bumper hardware. These three Resource modules register their callback functions upon initialization. When a new data is generated, callback function is called and it stores the sensor data in designated shared memory. Periodic generation of sensor data is a job of MBase Actuator and no other functions are needed for these three Resource modules.
Encoder and battery data are generated periodically. However, unlike other sensor hardwares, bumper event is a sporadic event. Therefore, a new bumper sensor data is only generated when there is a change in bumper status. Reading current bumper data" can cause blocking of the calling task.

3.2 Actuator Module:

Only one set of actuators exists on the platform as shown in Figure 3, thus only one Actuator module exists. We call it MBase Actuator in short for Mobile-Base Actuator. MBase Actuator manages a DSP-based BLDC control board. BLDC control board is connected via serial port and it uses a layer of serial protocol for exchanging command and status data. MBase Actuator module provides a layer of abstraction for the underlying serial protocol by providing a set of API functions. A data structure for command buffer, a serial callback function, and a packet-parsing RT task are used.
As mentioned earlier, MBase Actuator module is in charge of generating encoder, battery, and bumper data. An RT task is used to periodically generate data request commands and a set of callback registration
API functions are provided. Registered callback functions are called within the packet-parsing RT task. In case of emergency, hardware reset button in the BLDC control board may be pressed. To detect such event and re-initialize MBase Actuator module, a watchdog RT task is used to monitor periodic exchange of serial packets.










3.3 Behavior Modules:

A Behavior is a basis of action used to determine actual movement of the robot platform. Many different kind of Behavior can co-exist, such as Move Behavior that tries to move in a certain direction, Go To Behavior that tries to move to a certain position or Obstacle Avoid Behavior that tries to avoid static or dynamic obstacles in its path. All Behavior modules have similar execution flow. When it wakes up, it reads sensor data needed,
Computes control output, passes it on to BC component, and suspends itself as shown
Current implementation of Move Behavior receives translational and rotational velocity commands from the sequencing layer and outputs them for BC. Obstacle Avoid Behavior reads LRF data to and location of the nearest obstacle and generates an output to avoid it
                                          
                                                          A Behavior Execution Flow
                                      
3.4 Behavior Coordinator Module:
                    A Behavior Coordinator (BC) manages all Behaviors and fuse their outputs to generate actual control output for Actuators. We implemented MBase BC for MBase Actuator, which has a few operational modes. For each operational mode, different sets of Behaviors are used. For instance, when MBase BC operates in Move with Obstacle Avoidance Mode, both Move and Obstacle Avoid Behaviors are active. For simple Move Mode, only Move Behavior is active.

3.5 Real-Time Task Supervisor
                 The reactive control layer components were implemented as kernel modules. In order to exchange messages with sequencing layer components, IPC mechanisms provided by RTAI must be used. Real-Time Task Supervisor (RTTS) component's job is to interface these two layers. RTTS component is made up of a kernel module and a C++ class. RTTS module uses RT-FIFOs to receive service requests issued to the reactive layer and to report status of the reactive layer back to the sequencing layer. RTTS C++ class is used to abstract complex RT-FIFO communication protocol into simple class methods that can be used by other sequencing layer components. Current implementation provides methods.



                 Method                    Description
          
           SetOpMode Set New Operation Mode
           GetOpMode                  Get Current Operation Mode
           Move                             Issue a Move Command
           Set Position                    Set Current Position
           Get Position                   Get estimated position
           Stop                              stop gracefully


                                   RTTS C++  Class Methods


4 Experimental Results :


               To analyze the real-time performance of implemented reactive control layer, two experiments were conducted: one to demonstrate performance of Resource components and the other to demonstrate performance of Actuator-related components. 



           Resource   Min     Max   Period    Pmax

            Gyro        12.63    29.0   20.81   8.18
            Battery     2007.9  2031.6 2019.8  11.9
            Encoder   34.375  44.125  39.250  4.875
            IR            94.06   206.88  200.47  6.41
            LRF        207.56  217.69  212.62   5.06
            Sonar      100.81  121.25  111.03  10.22 


                                                Measured Sample Interval



4.1 Sensor Data Acquisition:
One of the important job of the reactive layer is to manage sensor hardwares and gather sensor data as periodically as possible. There are six kinds of Resource components in our reactive layer. While running all Resource modules at the same time, over a thousand consecutive data samples were collected every three seconds from each Resource odules. Table2 shows the minimum and maximum values of measured time interval between two consecutive samples. From the relationship among actual sample period, P, difference between maximum and minimum sample delays, Pmax, minimum sample interval, min
and maximum sample interval, Imax, the values of P and Pmax can be calculated as shown in Table 2. Calculated actual sample period, P, and worst case delay in sample data, Pmax, shows that generation of sample data using implemented reactive layer is periodic and deterministic.
                                              


4.2 Response to Velocity Commands:

To prevent robot platform from damaging itself, BLDC control board uses accepted velocity commands to create modified velocity pro les with increasing or decreasing slopes. Four step translational velocity commands from 0.1m/s to 0.4m/s were issued
and resulting velocity were measured by reading encoder values every twenty  milliseconds. Resulting step velocity responses are shown in Figure 10, where velocity command of 0m/s were issued three seconds later to stop the platform, and acceleration/deceleration time is set to 0.25s. Figure11 shows velocity response to a series of velocity commands. These results show that implemented reactive control layer can accomplish navigation commands from sequencing layer within predictable amount of transition time.









Conclusion:


                In this paper, we explained how we implemented the real-time reactive control layer structure of modified TSCA architecture for Silver-Mate robot using RTAI. Experimental results demonstrates that our implementation is able to obtain sensor data periodically in a predictable manner and execute navigation commands in real-time. As a further work, exhaustive testing will be performed on our implementation. Furthermore, our implementation will be integrated with resulting software components of other researches for final integration and test. Our research will focus on use of Controller Area Network (CAN) and Ethernet for distributed computing environment for intelligent mobile robots.

Newer Posts Older Posts Home

Followers

Mi perfil

My photo
People who read my blog regularly know what kinda person I am. For others who don't - I'm an information junkie..who likes to dig deep into things to find out what's happening in the world of education, business and management. I like investing in shares. I'm kinda sociable person - I go well with all kinda ppl..It's all about passion :)

Recent Comments