Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Presentations Evolution of Code Design at Facebook

Evolution of Code Design at Facebook



Nick Schrock presents how Facebook’s code evolved over time, explaining some new constructs – fbobjects, Preparables, Ents - introduced to address the complexities of a large social graph.


Nick Schrock is an engineer at Facebook, working on the Pages, Profile, Privacy, and the general product architecture of Facebook. Nick studied Computer Engineering at the University of Michigan, and Economics at the London School of Economics. Prior to joining Facebook, Nick worked at Microsoft, CareEvolution, and co-founded BitYield, a financial technology start-up.

About the conference

QCon is a conference that is organized by the community, for the community.The result is a high quality conference experience where a tremendous amount of attention and investment has gone into having the best content on the most important topics presented by the leaders in our community.QCon is designed with the technical depth and enterprise focus of interest to technical team leads, architects, and project managers.

Recorded at:

Apr 28, 2011

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • DTO?

    by Robert Sullivan,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Nick is a good speaker, thanks for the presentation. Some of the objects, like Preparables, remind me of J2EE patterns like Data Transfer Objects, although I'm sure these patterns are also in the GOF book. Interesting to see their implementation at facebook, and the unique constraints and requirements they face due to the, (in best Carl Sagan impression) "billions and billions" of page views.

  • Re: DTO?

    by Jaron Schut,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Well if I understand correctly there is a succinct difference. The multi-pass framework is specifically designed to make use of multi-get capabilities of key-value stores. The multiple 'components' of a webpage can request data from their memcache layer in parallel over the same data request. I think this is quit original. There are frameworks that allow multiple page components to render in parallel with multi threading. But there is no other framework that allows multiple page components retrieve data in paralel.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p