Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Are they allowed to look at the whole source code? or are they given only some small tasks to do? If it is this the case they how do they do that task as it is requested exactly?

share|improve this question

closed as not a real question by Yannis Rizos Apr 29 '12 at 19:08

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

You deserve a badge for asking the most pointless questions o here. I'd immediately vote to close this, but I've run out of votes. In this case, Facebook is simply a company. Companies decide the work their employes do and how they do it. The answers you'll receive here will be people guessing at the generic work structure for Facebook (unless someone working for Facebook can elucidate). –  Jonathan Khoo Mar 11 '11 at 23:06
I don't think it's pointless - it's more of a "how does stuff work in a big company?" question. Nothing wrong with that. –  Colen Mar 11 '11 at 23:10
@Jonathan I would somewhat dispute your statement, simply because Facebook is Facebook - the article in the answer I posted gained much attention (several hundred comments, attention from FB developers, even being emailed around for discussion by developers at my company) because it was so interesting to so many. –  NickC Mar 11 '11 at 23:12
@Jonathan Thanks. I kinda think it answers all three - though you have to do some inferring. It says that in boot camp they just fix bugs but after that, they pretty much pick what they want to work on. It also mentions (for the "how do they do that task" part), that engineers are responsible for the entire feature - if they need help, they have to lobby for it. –  NickC Mar 11 '11 at 23:34
@Renesis: Thanks for your explanation, but I think I'll always feel a little irksome with this question. The poster has mentioned Facebook just as an example. Your answer was still superb and the way you've disagreed with me is respectable. –  Jonathan Khoo Mar 11 '11 at 23:42
show 4 more comments

3 Answers

There is a now semi-famous article called How Facebook ships code that answers this exact question and more. Some of it was disputed and there are several updates with corrections.

Some of the highlights regarding software engineer authority/responsibility and picking up of tasks (all quotes from the article, emphasis mine):

  • all engineers go through 4 to 6 week “Boot Camp” training where they learn the Facebook system by fixing bugs and listening to lectures given by more senior/tenured engineers. estimate 10% of each boot camp’s trainee class don’t make it and are counseled out of the organization.

  • after boot camp, all engineers get access to live DB (comes with standard lecture about “with great power comes great responsibility” and a clear list of “fire-able offenses”, e.g., sharing private user data)

  • any engineer can modify any part of FB’s code base and check-in at-will

  • “All changes are reviewed by at least one person, and the system is easy for anyone else to look at and review your code even if you don’t invite them to. It would take intentionally malicious behavior to get un-reviewed code in.”

  • very engineering driven culture. ”product managers are essentially useless here.” is a quote from an engineer. engineers can modify specs mid-process, re-order work projects, and inject new feature ideas anytime.

  • Engineers handle entire feature themselves — front end javascript, backend database code, and everything in between. If they want help from a Designer (there are a limited staff of dedicated designers available), they need to get a Designer interested enough in their project to take it on. Same for Architect help. But in general, expectation is that engineers will handle everything they need themselves.

The whole article is worth reading, it's about four times this long.

share|improve this answer
@In silico Unfortunately I can't agree with you there - they may be liberal with default permissions on new features, but they don't open up data that you previously closed. –  NickC Mar 12 '11 at 0:52
I was being a smartass; what I meant was that they could put in more thought about how their code handles user data, especially with the default permissions that you talk about. They have been burned more than once with respect to this. Of course they're not going to consciously share user data outright. –  In silico Mar 12 '11 at 0:56
@In silico Yeah, I understand what you mean. But some of it is definitely FUD - people end up believing that what you are saying is actually true and that Facebook shares their data outright. –  NickC Mar 12 '11 at 1:06
Right, my wording was rather harsh, and I didn't mean to spread the FUD. One can mitigate the concerns with proper (albeit convoluted) privacy settings. Still, I'd wish they thought their design decisions more thoroughly with respect to user data. –  In silico Mar 12 '11 at 1:11
@In silico - Agreed. I also didn't mean to target you as the source of the FUD. I meant that the misinformation is out there in many popular media articles and people read it and believe it. –  NickC Mar 12 '11 at 1:18
add comment

Here's a google cached version of how it works at Microsoft, which isn't facebook but is still "a big company":


For some reason the original article has vanished, not sure why.

share|improve this answer
add comment

It almost sounds like you're thinking of facebook as an open-source project... working for them is actually a paid position. There are career links on their website and you can apply to work there.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.