Sometimes people ask me what I do for a living, and “engineering hobo” doesn’t make sense to most.
I joined Facebook in the TI (traffic infrastructure) team where I work on proxygen (layer 7 load balancer), thrift (RPC and serialization framework), and perf (which focuses on client to edge performance). There was a recent post from Facebook Engineering titled, “Secure browsing by default”. This touched on a lot of work done by TI (as well as other teams) over the past year, some of which has just been landing.
The proxygen team did a lot of the OpenSSL/crypto work so that we could build SPDY support and roll it out widely. This helped enable SSL for a number of clients (since SPDY runs on top of SSL). This post also talked about efforts from the perf team (and other parts of TI) to build out an edge network. The Facebook edge network is what allows clients to terminate connections locally (at an edge POP), thus avoiding the expensive SSL handshake being even more expensive (by having to make multiple round trips across the world). This allows SSL handshaking to be network cheap and CPU distributed. Pair this with SPDY, where you have multiplexed requests over a single secured connection, and you have a pretty performant SSL infrastructure.
The article also talked about some of the upcoming security related work for Facebook, much of which TI will be building. This includes things like 2048-bit RSA keys, ECC (elliptic curve cryptography), PFS (perfect forward secrecy) via ECDHE key exchange, and a bunch of others as well. I’m particularly excited about ECDHE because it uses ephemeral keys on a per session basis, which makes retroactively decrypting recorded data a much more difficult problem.
It’s really fascinating to work on software that a billion people get to touch. Things that aren’t an issue with a million users or a hundred millions users become enormous problems. Scaling software to handle millions of requests per second is really challenging. The proxygen team is like ~4 people, the perf team is 3 people. Tiny teams solving huge problems. This is some of the stuff I get to work on. It’s pretty fun.