Thursday, July 19, 2012

Internship at Facebook...

... and why it sucks if articles are edited and published without consulting the author

    This post has the unedited version of an article I wrote for The Fifth Estate - IITM's campus news body. I do realize and totally understand that our goals and motives differ and from T5E's point of view, the editing was perfectly justified. They want to provide concise, to the point and factual information useful to the reader community (mostly the students), while I want to insert poor jokes, ill conceived puns, double meaning titles, comp. sci. specific jargon and most importantly, self boasting in as many places as possible. Also, my excessive use of smilies and exclamation marks probably would not have been suitable for a "formal" article. But I kinda sorta believe that you should write the way you talk. And if you have talked to me, you would realize that text without exclamation marks and smilies won't at all sound like it came from me! ;) Obviously, the aim of this post is not to criticize T5E (and if it sounds like I am doing that, I apologize), they are perfectly right in their place, the goal is to get one more post on my long dormant blog, apart from the obvious aim of publishing the original article (albeit full of 'phart')! Having said that, along with the article, let me discuss what all was edited and why I liked the way it originally was. Blue's what was edited/chopped off.

   They edited my intro! 
Sujeet Gholap is a 4th year B.Tech student in Computer Science and Engineering department. Apart from his goal in life to crack worst PJs possible, he loves to code, socialize and watch movies. A wannabe photographer and blogger, he is an emotional fool struggling hard to get rid of that trait. When not biking around the campus listening to audio books for hours together, you can catch him in his room crashing off at unusual timings. After finishing his "official" internship at (now almost defunct) Yahoo! Labs last year, this year he is doing an internship at... wait for it... Facebook!
   It was so exciting to write about myself in third person! Well, agreed that the part about me being a PJ maniac and an emotional fool and the useless info that I crash at arbit times (sleep at unusual timings) in my room was very well justified for removal; but C'mon! they even removed that I blog. Regarding the audio book listening habit, I believe it is an interesting piece of information, something which people might not have thought of before and would like to do. Sad that they had to remove it as well. After all, I spent countless hours biking around the institute's beautiful campus listening to audio books. Read great books while you burn away your calories, not to mention the dose of refreshing air! I listened to all the three Lord Of The Rings books and all the seven Artemis Fowl books that way. No denying the fact that reading books does not compare well with listening to audiobooks, but still one can look at it as a handy and useful optimization. I must agree that these guys at T5E are pretty good at chopping off narcissistic statements. As much as I would like to boast that last year, I did an internship at this awesome research lab they call Yahoo! Labs, it did not escape their scissors either.
Selection, sort of...
    Looks like it should be a matter of pride for our insti[tute] that out of total 9 interns from India, 4 are from IITM! Being a part of the Internship Representatives team, I can safely say that the Facebook internship selection procedure was the most mysterious and quirkiest of all. There was an initial online coding round hosted on Interview Street along the lines of programming contests. Unlike the year before when they had given an NP complete problem and no one could get through, this year's problem was relatively easy... out of the 50+ participants, only one (Arijit, who represented India in the world finals of International Collegiate Programming Contest) could solve the problem! Surprisingly, his name was not there in the initial list of shortlisted candidates! Of course, once brought to their notice, they included it, but the mystery of the basis of selection remains. One can not but notice that none of the shortlisted candidates had a CGPA below 9, although nothing can be concluded from that (but it won't hurt to say that a good CGPA is always a plus). The next two rounds consisted of online technical interviews by Facebook hackers. For most of the part, the questions were of low to moderate difficulty level and anyone with a fair grasp of algorithms and data structures would be able to solve them. The interviewers were friendly and encouraged you to think aloud, and helped out in reasoning process. After joining Facebook and talking to the recruiters, we found out that during the interview, apart from correctness of the solutions, the key things they look for are whether the candidate uses meaningful variable and function names, whether the candidate splits the code into manageable and meaningful functions et cetra (unless of course you solve a N^2 problem in N*log(N))
   Coming to the heavily edited second paragraph, they edited my favorite title! When you make "Selection, sort of..." into "The selection process", you have already lost a reference to our good old familiar selection sort! And the contents of this paragraph were, in my opinion, turned upside down. Again, I can understand them removing my attempted boasting about being an "Internship Representative"; but conveying something totally different than what was intended is something they should have watched out for. First, it was annoying when I got blocked on a small detail about the selection process. As much as hate waiting on others, after I had written the article, I waited for three whole days just to get confirmation of what I was going to put in the article was factually correct and not just a theory (as it turned out, it was a wrong theory and good that I waited before going ahead and submitting the article). All this was no use! At the end, the T5E version ended up concluding blatantly that "CGPA matters for FB internship". All I was saying is that "look, shit happens! And however rarely, when it happens, it might have helped us just a tiny bit that we had a good CGPA". To put it plainly, although for such kind of internships, your coding skills are of paramount importance, this year, due to various funny circumstances, Facebook ended up selecting based on an unknown and mysterious criterion. I know that this is no help for aspiring interns, but after all those are the facts. Also, it is not every year that a team from our insti competes in ICPC wold finals, something to be proud of, but alas! references to that were removed too. 
The "main course"
    The sheer diversity of the enormous amount of work being done at Facebook makes it impossible to single out a course from department curriculum as the most important course. But as far my work here is concerned, Principles of Software Engineering is the only relevant one. And although depending on the project other courses might gain importance, the aforementioned course is simply indispensable. The associated lab, if done with sincerity and interest, helps immensely while working here, where wading through millions of lines of code and pursuing apparently bizarre bugs is the rule of the day. The concepts of modularity, object orientation, separation of concerns, orthogonality of modules taught in class come in handy when you want your code to get shipped as quickly as possible.
Okay, agreed that "The 'main course'" is a pretty lame title, still, it had double meaning :P and the sacred word for every programmer : main!
Making a mark
    The biggest plus point of working at Facebook, in my opinion, is what I would call "instant gratification by amplification of impact"! To put it simply, within a week of joining, the code which you have written goes live and the mere fact that around 900 million people are using your code and potentially benefitting from it makes your chest swell with pride. My internship started off with fixing tiny annoyances here and there on the site and making small small changes here and there. These small tasks helped me get comfortable with the code base and gave me a sense of getting some work done simultaneously. As far as my project and other projects which I am working on are concerned, all I can say is keep your fingers crossed! This brings me to another cool aspect of working here : you get to be on the bleeding edge of Facebook! You get to see the new and shiny features as they evolve, get polished, and ultimately shipped. For the last year interns, it was timeline, this year it is something, and next year it would be something else!
Here, again, the part about working on the bleeding edge features was completely dropped! In my opinion, even from a student's point of view, that description would have been exciting and enticing. Making one feel like doing an internship at Facebook. I seriously have no damn clue why it did not get through.
Bad allocation
    I was given a choice of working on either a C++ backend project or a frontent project involving PHP, CSS, HTML and JS. Having seen how frustrating working with C++ can be, I chose the later. My project was split roughly into two loosely coupled sub project. Halfway through the internship when I was done with the initial prototype of my project, we came to know that another intern from the photos team was working on a project exactly same as the first part of mine! Boom! The approach taken by our team was to build the feature from scratch, while photos team had some tools already built up, which they intended to use for the same thing. And just like that, I had to chuck away my code, forget about the first part, jump onto the second part of the project, which later would be integrated into the Andrew's (the other intern) work... Good? Bad? Who knows! I was relieved! Half the workload!
Of events and listeners
    Always abuzz with various activities, the company has events for everyone. If you are a good listener, you stand to accumulate a lot of technical know how. The various talks ranging from the first in which they told various ways to get fired to how javascript can be made to work at blazing speeds are interesting and captivating. Even better, interns have many more events arranged especially for them. Those included outings to places like the golden gate bridge, the aclatraz island and yosemite national park. Not to forget team specific events, just last month my team went on "cooking wars", where we were split into groups and each group was given a professional chef for guidance, the team to cook the most delicious food being the winner. No wonder that the group yours truly was part of "almost" won! One of the biggest annual events at Facebook, the game day, aslo happens to be during the internship time. The whole company is split up in four giant teams which compete against each other in an outdoor festival consisting of an assortment of games like capture the flag, tug of war, football oops... soccer. Enthusiastic people go overboard with their team pride and paint themselves with as much of team color as possible. From my picture at the beginning at the blog post, you could guess that I was part of the blue team, which, again "almost" won! Another event worth highlighting here is the weekly Q&A sessions with Mark Zuckerberg, where he and the management team answer any questions asked my employees. Just for the heck of having a conversation with Mark, I asked him what he thinks about the domain name "face.book"! No need to say that a burst of laughter followed. It is truly amazing, the amount of transparency and sense of truest the company has internally. For people who work there, there are no company secrets and no question is a forbidden question. During one of these sessions, somebody even asked Mark about his honeymoon plans!
Coroutines
    Apart from the main routine of code - get reviewed - ship - code, one can easily arrange for a colossal waste / quality investment of time here at Facebook. There are arcade gaming machines, tabels full of chessboards, cabinets filled with interesting technical books, a slew of board games, not to mention foosball and pool table, heck! they even have a piano lying around! And if you are into food, or for that matter getting as much food into you as possible, again, you are at the right place! Every floor of all the buildings have several places called micro-kitchens where you can find racks full of various chocolates and chips, fridges overflowing with soft drinks as well as energy drinks not to mention some three various types of milk and seasonal fruits. At the same time, it can get quite frustrating for vegetarians when many of the times you get sick of the bland veg food and end up eating pizzas all the time! Yep, they have a free pizza shop and burrito bar which come to rescue of poor vegetarians like me.
"Coroutines" made much more than just sense here... Y U change it??
Continuation or a breakpoint?
    Unlike other tech companies, Facebook does not have a separate procedure for offering jobs for interns. There are no additional interviews or tests to be written. You are judged by how you have worked during your internship here, how is your code in general, your enthusiasm level and your tendency to take initiatives et cetra. If they are satisfied, you will be made an offer you can't refuse. That's it!
The US of A
    Initially it took time to get over the feeling of everything being so damn expensive. It was quite some time before I stopped thinking like "Oh my god! A sandwich for 500 rupees!". But once you get over the habit of converting everything into rupees, life in US is pretty smooth. Once you have a bike, you are all set to go! Roaming around in the sprawling lush green campus of Stanford University, hanging out in San Francisco and window shopping in huge malls keeps your mind at calm and at peace. Silicon valley and especially Menlo Park is very neat and beautiful. Clean and broad roads, flowers everywhere, huge trees and noise free trafic make you want to keep on biking. Facebook sure knows how to pamper the interns. They housed us in an expensive corporate housing which costs around 3.6k USD per month! Another thing I found to be noteworthy and sorely lacking back in India is tap water is potable here!
Pascal said, what BEGINs must come to an END
    So let me conclude by narrating an interesting incident. It was late in night and we were coming back from theater after watching "Avengers". Aboard the the Stanford shuttle (insti bus), a man suddenly started talking animatedly to us interns! (I was the only one from IITM gang present, most other interns being from Canada) He said, and let me quote, "Do you know, in India, there are these schools called IITs, damn talented people I tell you! There was this guy from IIT Madras, genius! Went back to India to help his people after studying here and now he is big shot there. What Stanford needs is more IITians..." That was the proudest I ever felt to be an IITian! :)
The funniest part? The did not spot "... Having seen how frustrating working with C++ can be, I chose the later..." 

15 comments :

  1. I would have loved to see the title of the 3rd section written as "Making a Mark". That would have been a zucking good pun! :D

    Reply Delete
    1. What else did you think I was referring to? Just thought a capital M would be not subtle at all.

      Delete
  2. An interesting and well conveyed anecdote on your sojourn there. Kudos!!

    Reply Delete
  3. What is the procedure for getting intern qt facebook?

    Reply Delete
  4. i would like to make internship with fb so how do i can ??? help me

    Reply Delete
  5. Hi Mohamed,
    In my case, Facebook came to campus to recruit for internships. If that is not the case with your college, you should apply at the Facebook careers website (https://www.facebook.com/careers/university).

    Also, if you have someone who knows you at facebook, you could get them to refer you. (Referral does not imply internship, it just implies that chances of you getting interviewed will be much greater)

    Reply Delete
  6. Hi Sujeet, nice post :)

    Do they look at CG for internship??
    Do they look at CG in the employee referral route? Please reply!

    Reply Delete
  7. Hi Arvind,

    For internship, at least in the campus procedure, your Cumulative Grade Point Average, is definitely one of the many factors involved in selection.

    I am not aware of the workings of the employee referral routes.

    Reply Delete
  8. Sir,
    I am a 3rd year computer science student , Btech. I am trying for internship at Facebook and need your help regarding it.
    I have cleared the online coding round at Interview Street and also the first technical interview. I had my 2nd interview 3 days back and the results are awaited. I just want to know how tough are the recruiters and do I hold any chances if I did both the questions correct?

    Reply Delete
    1. If you did the questions in the interviews correct, don't worry too much about it. You should have quite a good chance of making it to the 3rd interview.

      All the best!

      Delete
    2. Sir thanks for the reply.
      How many rounds are there exactly? I thought there are only two of them

      Delete
    3. Hi Sir,
      I gave the interviews as discussed with you previously, the recruiter went on a leave for 1 month till 16th December, I mailed her for her response but there is no reply yet. I even mailed to two more recruiters but didn't get a reply from anywhere. Its been 5 weeks I have not been informed of the results. What should I do?

      Delete
    4. Hi Aashna,

      Right now, here it is holiday time. Even I am waiting for a couple of companies to get back to me about internship interview results. Don't worry, the latest it would be is by first week of January. Till then, keep this topic off your head.

      Delete

Post a Comment