Jun 16 2009

Why I chose Facebook over Google

May was a busy month, and not in a “fast-track-to-finish-dissertation” kind of way. I zoomed to Florida for a family reunion, then zoomed across the country to San Fransisco for an interview at Facebook, then the next week zoomed over to NYC for an interview at Google in their Manhattan office. Then, lest the last week in May should feel left out, I zoomed up to Utah for an interview with AST. As May drew to a close and June entered the scene, I found myself with four offers of employment, including Google and Facebook (Boeing just did a phone interview). Wow! I was feeling pretty pleased with myself.

Now dear casual reader from yonder internet, I know what you’re thinking. It’s exactly what I would have thought a few months ago. “No-brainer. Work for Google.” But I found myself perplexingly unable to decide between Google and Facebook. It didn’t help that Google was in New York and my wife wasn’t keen on New York, and that the Google position offered was a Site Reliability Engineer (SRE) which is, to grossly oversimplify, a glorified systems programmer. Not faced with an attractive competing offer like the one from Facebook, I’d have been headed to Manhattan to be an SRE in a heartbeat. But as it was I was torn.

I applied for the Facebook position on a whim. I had been on Facebook only a month or two and I noticed an ad on the side about how they were hiring. I clicked on it, looked at their careers page for awhile, liked what I saw, and decided to apply for a Machine Learning Engineer position. I came home and told my wife, who was instantly convinced I had lost my marbles. She is not a programmer, so how could she know that although I’m not a big social network guy and had only grudgingly signed up for Facebook a month or two before, I could be intensely interested in working on such a site.

Theoretically speaking, I love networks, and that includes graph theory, computer networks, and yes even social networks. I knew Facebook problems would be about networks and about scale. They would be hard problems. They would be fun problems. The perks page looked good, and I think it would be fun to be in Silicon Valley. So I applied.

Facebook called and had me do one of their pre-screening programming puzzles (you can enjoy them even if you’re not being considered for employment). I got a little obsessed and did 3 over the better part of a week. Then there was a phone screen, and then the invitation to interview on-site (This all happened over several weeks time, of course, and more or less in parallel with a similar process for Google, except that Google didn’t have a puzzle step).

I’ll skip to the end, lest I bore you. Facebook continually impressed me the more I interacted with them and the more I saw. I was similarily surprised at how enjoyable, useful, and private Facebook was as a user since I had signed up. Facebook skyrocketed from just another one of those pesky social networking sites to a daily habit and potential employer in a few short months.

Still, it can’t compare to Google right? Well, actually they try very hard to compare to Google. It’s quite obvious that most of the perks and benefits are directly inspired by Google’s, compensation was comparable, and I found that they have smart people working on hard problems just like Google. In addition, there are two things they have that Google doesn’t anymore: they’re still small and they’re pre-IPO. Of course, Google has more smart people and Facebook is more-or-less a one-trick pony. Publishing would probably be easier at Google. Here I go again… I was back and forth for a solid week. It drove me and my wife crazy. I talked to people at Facebook who had been at Google (at my request). I talked to people at Google. I talked to friends and family. I tried every decision making trick in the book. Both sides sweetened the deal a bit to make it easier for me to choose them (Google switched the offer to be in Mountain View as a Software Engineer, Facebook offered a bit more money). I just couldn’t make up my mind.

Well finally I did, and this is what it came down to: time off, impact, and stock.

Although both were generous with paid time off (PTO) compared to most US companies, Facebook offered more, especially in the area of paternity leave (my wife is expecting). As much as I anticipate enjoying either job, I enjoy being at home or on vacation with my family more.

Facebook is small—they’re hiring like crazy because they’re smaller than they want to be. Because of that, I feel that my wacky background in system administration, agileish pragmatic open-source programming, and high-brow CS theory and research would be more broadly brought to bear than in some team at Google responsible for some small part of one of the many wonderful Google products. I would have more impact—not on the world at large but on the thing that we are doing. Then there’s also the draw of quick seniority in a small and fast-growing company.

Finally, although both companies offered restricted stock units to vest over 4 years, Facebook’s offering has the potential to be worth several times what Google’s offering would. Or, Facebook’s offering could be worth about what Google’s would be. Or, in a really really bad scenario, worth less. I ran the numbers, pulled some probabilities out of the air, and decided at least as good as Google and possibly much better was the most likely scenario. Since they’re RSUs and not options, the only risk is in making less extra cash than I would have made at the other company. Google was the safer choice, Facebook the more potentially lucrative. I tried to leave this out of the decision making process as much as possible, because I didn’t want my decision to be about money. I wanted it to be about the work. But I have to admit there’s a draw here.

I believe more strongly now than I did before that Google is a fantastic place to work, and I would reapply there in a heartbeat down the road if my path takes me there. I wish I could just be in two places at once and work at both, at least long enough to know for sure where I really want to be. But life doesn’t work that way. I’ve decided to take the path that seems the most exciting and unsure out of a sheer sense of adventure. Google will be there in a few years if I want to reapply, and they may even want me then as they do now. The time to really make a difference at Facebook is now, while they’re small.

You may think I’m crazy to turn down Google. I think that sometimes too. One thing is certain: the next few years will be an amazing adventure that I never dared dream would come to me. Thanks to everyone who has helped me to this point in my life, especially my loving and supportive wife and kids, my parents who taught me to love learning, and my brothers who “let” me hog the computer when we were young (ha!).

Well, I think I have a dissertation lying around here that needs finishing.


Apr 24 2009

Crunch Time

I’ve been writing my dissertation in earnest for a couple of months now, for some definition of in earnest. As expected, things have come up to slow the process down—research that after closer scrutiny needed refinement, job hunting, sickness (my family and then I got the flu), presenting at a conference (remotely), some procrastination and writer’s block, and a general inability to write faster than is humanly possible. Just in case you were wondering, the rule of thumb to multiply coding estimates by 3 applies to writing as well.

That said, I’m still on track to graduate in August and making good progress. But because I don’t want that to change, and because I don’t know how the next few months will pan out with the job hunt and potential on-site interviews, I am going into super crunch mode. It’s like when they tried to make Knight Rider more exciting by modifying the car by adding extra drag so it would go faster. But not as glamorous.

This means that during the day when I should be working I won’t be haunting the usual haunts: IRC, Instant Messenger, email. I will of course check my email at least a few times a day, but when I’m writing my MUA will be closed. I will keep at least Jabber (Google Talk) online, set as away, as I have done previously. All this is not because I want to hide from you but because I want to minimize the event-based distraction mode I sometimes find myself in—constantly jumping between IRC, IM, email, social networks, RSS, etc. looking for the next communication task. If you do need to contact me urgently don’t hesitate to hit me up where you find me, or in the worst case talk to Erin, who will know how to get ahold of me.

While I’m on the subject, I’ll bore you with the methodology I’m employing in the never-ending battle against procrastination. First and most importantly, I have a goal to write 15 minutes every day, as a bare minimum. Even on otherwise-unproductive days (whatever the reason) I can squeeze in 15 minutes which means at least a little progress. More importantly, it means my mind keeps engaged on the problem and my dissertation doesn’t get swapped out. I’ve been doing this since January and it has made a huge difference in my productivity. I highly recommend it to anyone. For more information, check out the workshop homepage, read the summary, or grab the book. Or just write 15 minutes a day and let your success speak for itself.

15 minutes a day is great, but when you’re writing a dissertation and nothing else, it’s not sufficient. So I’ve had to kick it up a notch. Eddie Jung has some good advice: “Don’t get distracted. Keep starting. That’s all.” We’ve already talked about the public face of my efforts to not get distracted. I also have a plan for doing the “keep starting” part, which is I think the hardest part. Once I’m started and in the zone, you could be screaming my name in IRC or calling me on the phone and I won’t even notice let alone be distracted. So I think it boils down to “Keep starting. That is all.”

So how does one keep starting something that is frequently uninviting? “Just do it,” I can hear you say. That’s easy for a construction worker or someone doing something physical, but it’s hard for those of us who work with our brains, especially creative work. Because the very instrument we are trying to bring to bear is the instrument that is so easily distracted.

I like the metaphor of a train getting started. It’s big, it’s heavy, and at first the wheels spin and things move very slowly. Some glorious days, I wake up already rolling down the tracks. Maybe I went to sleep at the top of a hill, I don’t know, but I’m off and running before I’ve finished rubbing my eyes and the day is an outstanding success. Other days I sit down and keep trying to start without ever starting.

My plan to keep starting is to set up a ritual. A personal algorithm, if you will, for beginning to write. Just as the dog turns around three times before lying down to sleep. It has to be something that I can consciously do to trigger myself to begin writing. It has to be a trigger, and facilitate writing. It has to be portable—I have to be able to do it on my couch, in my “office” (the rocking chair in the kid’s room), at school in my real office, in the library (sometimes when I’m having a hard time focusing going to the library for a change of scenery helps), a café (ditto, but close to home), or just about anywhere. It has to be quick, like turning around three times and not like doing 30 minutes of yoga and upside-down meditation or something.

I have no idea if it will work, but here’s what I came up with: prep, timer, visualize. By prep I mean close my email client, IRC, etc., get situated, and get my water bottle filled if necessary. Minimize distractions and optimize the environment. By timer I mean grab my timer and set it for 15 minutes or whatever minumum chunk of time I feel up to. When the timer goes off, I can take a short break if I need to. It’s my sanity escape hatch—you can do anything for 15 minutes, even write. It’s also my distraction safety net—if the timer goes off and I am not writing, I got distracted and it’s time to start over. The visualization step is to close my eyes and engage my brain on the task, and not open my eyes until I have an action to perform. With my eyes closed, none of my distractions can reach me even if they made it through the cracks.

I have high hopes for my new plan. I know some parts work already, and I’m optimistic about the rest. I think it’s simple enough to actually work. Maybe my sharing it with you will inspire you to refine your process a little bit.

How do you avoid distractions and keep starting?