SIGA-ME

sexta-feira, 2 de setembro de 2011

Construir coisas que vai se acostumar.



Juntei-me Facebook para que eu pudesse fazer a diferença. Tão grande quanto o Facebook é em termos de usuários, ainda é pequeno em termos de engenheiros. Há tanta coisa para fazer aqui. A cultura foi fundada em pequenas equipes trabalhando em conjunto, e as pessoas gastam seu tempo construir coisas incríveis, em vez de girar as rodas. 
Quando eu comecei no Facebook em outubro de 2007, foi cerca de duas semanas antes do lançamento do nosso sistema de anúncios novo. Como o mais novo membro da equipe de Anúncios, parecia tentar saltar para um trem em movimento. Comecei a aprender sobre todas as peças diferentes, e reparei que para cada pessoa com quem conversei, houve todo um novo conjunto de regras para aprender sobre a construção de sua parte do codebase.

Na época, não havia mais de 30 pessoas na empresa trabalhando no código backend, mas parecia que quase todo mundo tinha sua própria maneira de fazer as coisas. Algumas pessoas costumavam fazer. Algumas pessoas usavam SCons. Algumas pessoas usavam Automake. Ninguém sabia como compilar o código de outras pessoas. Que pesadelo!

Anúncios com a equipe parecendo que tinha o lançamento sob controle, eu comecei a fazer compras em torno da idéia de criar um sistema de construção comum. Algumas pessoas com quem falei estavam céticos e disse que nunca iria trabalhar no Facebook. Outros viram o potencial. Passamos as próximas semanas concepção, prototipagem, e coletar feedback, e algumas semanas depois de que tínhamos um conjunto de ferramentas totalmente funcional construir feitos no Facebook (com integração nativa Thrift!).

Lançando as ferramentas foi muito mais fácil aqui do que teria sido quase que em qualquer outro lugar. Não há muita bagagem penduradas em torno de sistemas antigos que toda a gente tem usado há 10 anos. Podemos descobrir qual é a melhor maneira de fazer as coisas daqui para frente, e depois ir fazer isso acontecer. O que realizamos é basicamente um dado adquirido agora, e isso é uma coisa boa.

Em fevereiro eu estava de volta para trabalhar na equipe de Anúncios, onde eu escrevi um novo servidor para melhorar a nossa qualidade anúncios no site. O servidor aproveita todas as estatísticas que temos sobre o desempenho passado de um anúncio para melhor prever quem vai gostar do melhor anúncio no futuro. Isto pode parecer chato para alguns, mas eu amo o fato de que eu trabalhei em algo que claramente beneficia tanto Facebook e nossos usuários, ao mesmo tempo.

Agora eu estou passando para o próximo desafio - trabalhando em infra-estrutura básica para backends próxima geração do Facebook. Este vai demorar mais do que apenas um par de meses, mas estou animado para pensar em todos os novos engenheiros que estará construindo em cima do meu código no futuro, eo que vai ser capaz de fazer com ele.